/* * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ /dts-v1/; #include "am4372.dtsi" #include #include #include #include / { model = "Generic AM43 (Flattened Device Tree)"; compatible = "ti,am4372","ti,am43"; //"ti,am437x-gp-evm", aliases { serial1 = &uart1; }; vicor_15: fixed-regulator-vicor_15 { compatible = "regulator-fixed"; regulator-name = "VICOR_15"; regulator-min-microvolt = <15000000>; regulator-max-microvolt = <15000000>; regulator-always-on; regulator-boot-on; }; vddr_cpu: fixed-regulator-vddr_cpu { compatible = "regulator-fixed"; regulator-name = "VDDR_CPU"; regulator-min-microvolt = <1350000>; regulator-max-microvolt = <1500000>; regulator-always-on; regulator-boot-on; vin-supply = <&vicor_15>; }; cpu_1_1v: fixed-regulator-cpu_1_1v { compatible = "regulator-fixed"; regulator-name = "CPU_1_1V"; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; regulator-always-on; regulator-boot-on; vin-supply = <&vicor_15>; }; cpu_3_3v: fixed-regulator-cpu_3_3v { compatible = "regulator-fixed"; regulator-name = "CPU_3_3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; vin-supply = <&vicor_15>; }; cpu_1_325v: fixed-regulator-cpu_1_325v{ compatible = "regulator-fixed"; regulator-name = "CPU_1_325V"; regulator-min-microvolt = <1325000>; regulator-max-microvolt = <1325000>; regulator-always-on; regulator-boot-on; vin-supply = <&vicor_15>; }; cpu_1_8v: fixed-regulator-cpu_1_8v{ compatible = "regulator-fixed"; regulator-name = "CPU_1_8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; vin-supply = <&cpu_3_3v>; }; vref_ddr3: fixed-regulator-vref_ddr3{ compatible = "regulator-fixed"; regulator-name = "VREF_DDR3"; regulator-min-microvolt = <675000>; regulator-max-microvolt = <750000>; regulator-always-on; regulator-boot-on; vin-supply = <&vddr_cpu>; }; // gpio_keys: gpio_keys { // compatible = "gpio-keys"; // pinctrl-names = "default"; // pinctrl-0 = <&gpio_keys_pins_default>; // #address-cells = <1>; // #size-cells = <0>; // switch@0 { // label = "power-button"; // linux,code = ; // gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; // }; // Uncomment this section if we want to use gpio-keys driver instead of sysfs GPIO // oled@0 { // label = "oled-button"; // linux,code = <0>; // select a more appropriate key value than 0! // gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; // }; // Uncomment this section if we want to use gpio-keys driver instead of sysfs GPIO // profi-int@0 { // label = "profi-interrupt"; // linux,code = <0>; // select a more appropriate key value than 0! // gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; // }; // }; }; &am43xx_pinmux { // gpio_keys_pins_default: gpio_keys_pins_default { // pinctrl-single,pins = < // 0xb8 (PIN_INPUT | MUX_MODE7) /* (C20) dss_data6.gpio2[12] - Profibus INT input */ // 0x180 (PIN_INPUT | MUX_MODE7) /* (K21) udart1.rxd.gpio0[14] - OLED button input */ // 0x1b8 (PIN_INPUT | MUX_MODE7) /* cam0_field.gpio4_2 - User switch SW1 on IDK */ // >; // }; i2c0_pins_default: i2c0_pins_default { pinctrl-single,pins = < 0x188 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 0x18c (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */ >; }; i2c0_pins_sleep: i2c0_pins_sleep { pinctrl-single,pins = < 0x188 (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x18c (PIN_INPUT_PULLDOWN | MUX_MODE7) >; }; i2c1_pins_default: i2c1_pins_default { pinctrl-single,pins = < 0x20c (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE3) /* cam0_data1.i2c1_scl */ 0x208 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE3) /* cam0_data0.i2c1_sda */ >; }; i2c1_pins_sleep: i2c1_pins_sleep { pinctrl-single,pins = < 0x20c (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x208 (PIN_INPUT_PULLDOWN | MUX_MODE7) >; }; mmc2_pins_default: pinmux_mmc1_pins_default { pinctrl-single,pins = < 0x80 (PIN_INPUT | MUX_MODE2) /* gpmc_csn1.mmc1_clk */ 0x84 (PIN_INPUT | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */ 0x3c (PIN_INPUT | MUX_MODE2) /* gpmc_ad15.mmc1_dat7 */ 0x38 (PIN_INPUT | MUX_MODE2) /* gpmc_ad14.mmc1_dat6 */ 0x34 (PIN_INPUT | MUX_MODE2) /* gpmc_ad13.mmc1_dat5 */ 0x30 (PIN_INPUT | MUX_MODE2) /* gpmc_ad12.mmc1_dat4 */ 0x2c (PIN_INPUT | MUX_MODE2) /* gpmc_ad11.mmc1_dat3 */ 0x28 (PIN_INPUT | MUX_MODE2) /* gpmc_ad10.mmc1_dat2 */ 0x24 (PIN_INPUT | MUX_MODE2) /* gpmc_ad9.mmc1_dat1 */ 0x20 (PIN_INPUT | MUX_MODE2) /* gpmc_ad8.mmc1_dat0 */ // 0x (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ >; }; mmc2_pins_sleep: pinmux_mmc1_pins_sleep { pinctrl-single,pins = < 0x80 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn1.mmc1_clk */ 0x84 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn2.mmc1_cmd */ 0x3c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad15.mmc1_dat7 */ 0x38 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad14.mmc1_dat6 */ 0x34 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad13.mmc1_dat5 */ 0x30 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad12.mmc1_dat4 */ 0x2c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad11.mmc1_dat3 */ 0x28 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad10.mmc1_dat2 */ 0x24 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad9.mmc1_dat1 */ 0x20 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad8.mmc1_dat0 */ >; }; uart1_pins_default: uart1_pins_default { pinctrl-single,pins = < 0x178 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0) 0x17C (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE0) 0x180 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart1_rxd.uart1_rxd */ 0x184 (PIN_INPUT | PULL_DISABLE | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart1_txd.uart1_txd */ >; }; uart1_pins_sleep: uart1_pins_sleep { pinctrl-single,pins = < 0x178 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 0x17C (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 0x180 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart1_rxd.uart1_rxd */ 0x184 (PIN_INPUT_PULLDOWN | SLEWCTRL_FAST | DS0_PULL_UP_DOWN_EN | MUX_MODE0) /* uart1_txd.uart1_txd */ >; }; cpsw_default: cpsw_default { pinctrl-single,pins = < 0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */ 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */ 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */ 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */ 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td2 */ 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td3 */ 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rmii1_rclk */ 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */ 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */ 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */ 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd2 */ 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd3 */ >; }; cpsw_sleep: cpsw_sleep { pinctrl-single,pins = < 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) >; }; davinci_mdio_default: davinci_mdio_default { pinctrl-single,pins = < /* MDIO */ 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ >; }; davinci_mdio_sleep: davinci_mdio_sleep { pinctrl-single,pins = < /* MDIO reset value */ 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) >; }; /* These pinmux settings are piggy-backed onto the normal mmc1 pinmuxes just to get these setup properly for the ICSS0_PRU1 to drive the OLED display using memory mapped driver in userspace */ // pruoled_pins_default: pruoled_pins_default { // pinctrl-single,pins = < // 0xe0 (PIN_INPUT | DS0_PULL_UP_DOWN_EN | MUX_MODE7) /* dss.vsync gpio2[12] - Yellow LED */ // 0x1d0 (PIN_INPUT | DS0_PULL_UP_DOWN_EN | MUX_MODE3) /* Reset */ // 0x1d4 (PIN_INPUT | DS0_PULL_UP_DOWN_EN | MUX_MODE3) /* SPI Clk */ // 0x1f4 (PIN_INPUT | DS0_PULL_UP_DOWN_EN | MUX_MODE4) /* SPI dout */ // 0x1fc (PIN_INPUT | DS0_PULL_UP_DOWN_EN | MUX_MODE4) /* SPI CS */ // 0x204 (PIN_INPUT | DS0_PULL_UP_DOWN_EN | MUX_MODE4) /* C/D */ // >; // }; }; //&i2c0 { // status = "okay"; // pinctrl-names = "default", "sleep"; // pinctrl-0 = <&i2c0_pins_default>; // pinctrl-1 = <&i2c0_pins_sleep>; // clock-frequency = <100000>; // at24@50 { // compatible = "at24,24c256"; // pagesize = <64>; // reg = <0x50>; // }; //}; &i2c1 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c1_pins_default>; pinctrl-1 = <&i2c1_pins_sleep>; clock-frequency = <100000>; }; &epwmss0 { status = "okay"; }; //&ecap0 { // status = "okay"; // pinctrl-names = "default"; // pinctrl-0 = <&ecap0_pins_default>; //}; &gpio0 { status = "okay"; }; &gpio1 { status = "okay"; }; &gpio2 { status = "okay"; }; &gpio4 { status = "okay"; }; &gpio5 { status = "okay"; }; &uart0 { status = "disabled"; }; &uart1 { // pinctrl-names = "default", "sleep"; // pinctrl-0 = <&uart1_pins_default>; // pinctrl-1 = <&uart1_pins_sleep>; status = "okay"; }; &mmc2 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&mmc2_pins_default>; pinctrl-1 = <&mmc2_pins_sleep>; vmmc-supply = <&cpu_3_3v>; bus-width = <8>; }; &mac { pinctrl-names = "default", "sleep"; pinctrl-0 = <&cpsw_default>; pinctrl-1 = <&cpsw_sleep>; status = "okay"; }; &davinci_mdio { pinctrl-names = "default", "sleep"; pinctrl-0 = <&davinci_mdio_default>; pinctrl-1 = <&davinci_mdio_sleep>; status = "okay"; }; &cpsw_emac0 { phy_id = <&davinci_mdio>, <0>; phy-mode = "rgmii"; }; &rtc { status = "okay"; ext-clk-src; }; &usb2 { dr_mode = "host"; status = "okay"; }; &wdt { status = "okay"; }; &cpu { cpu0-supply = <&cpu_1_325v>; }; //&sgx { // status = "okay"; //};