/* AIRAIR */ /* * Copyright (C) 2013 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. */ /* AM437x GP EVM */ /dts-v1/; #include "am4372.dtsi" #include #include #include / { model = "TI AM437x GP EVM"; compatible = "ti,am437x-gp-evm","ti,am4372","ti,am43"; chosen { stdout-path = &uart0; }; evm_v3_3d: fixedregulator-v3_3d { compatible = "regulator-fixed"; regulator-name = "evm_v3_3d"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; enable-active-high; }; vtt_fixed: fixedregulator-vtt { compatible = "regulator-fixed"; regulator-name = "vtt_fixed"; regulator-min-microvolt = <1500000>; regulator-max-microvolt = <1500000>; regulator-always-on; regulator-boot-on; enable-active-high; gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>; }; vmmcwl_fixed: fixedregulator-mmcwl { compatible = "regulator-fixed"; regulator-name = "vmmcwl_fixed"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>; enable-active-high; }; /* fixed 12MHz oscillator */ refclk: oscillator { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <12000000>; }; /* fixed 32k external oscillator clock */ clk_32k_rtc: clk_32k_rtc { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <32768>; };/**/ }; &am43xx_pinmux { pinctrl-names = "default", "sleep"; pinctrl-0 = <&ddr3_vtt_toggle_default>; /* DDR vtt toggle pin */ ddr3_vtt_toggle_default: ddr_vtt_toggle_default { pinctrl-single,pins = < AM4372_IOPAD(0xa5c, DS0_PULL_UP_DOWN_EN | PIN_OUTPUT_PULLUP | DS0_FORCE_OFF_MODE | MUX_MODE7) >; }; /* I2C0 bus pins */ i2c0_pins_default: i2c0_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0x98c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* (Y22) I2C0_SCL.I2C0_SCL */ AM4372_IOPAD(0x988, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* (AB24) I2C0_SDA.I2C0_SDA */ >; }; i2c0_pins_sleep: i2c0_pins_sleep { pinctrl-single,pins = < AM4372_IOPAD(0x98c, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (Y22) I2C0_SCL.I2C0_SCL */ AM4372_IOPAD(0x988, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (AB24) I2C0_SDA.I2C0_SDA */ >; }; /* I2C1 bus pins */ i2c1_pins_default: i2c1_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0x95c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* (T20) spi0_cs0.I2C1_SCL */ AM4372_IOPAD(0x958, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* (T21) spi0_d1.I2C1_SDA */ >; }; i2c1_pins_sleep: i2c1_pins_sleep { pinctrl-single,pins = < AM4372_IOPAD(0x95c, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (T20) spi0_cs0.I2C1_SCL */ AM4372_IOPAD(0x958, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (T21) spi0_d1.I2C1_SDA */ >; }; /* usd pins on hardware mmc0 */ usdmmc_pins_default: usdmmc_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0x900, PIN_INPUT | MUX_MODE0) /* (D1) mmc0_clk.mmc0_clk */ AM4372_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* (D2) mmc0_cmd.mmc0_cmd */ AM4372_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* (C1) mmc0_dat0.mmc0_dat0 */ AM4372_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* (C2) mmc0_dat1.mmc0_dat1 */ AM4372_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* (B2) mmc0_dat2.mmc0_dat2 */ AM4372_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* (B1) mmc0_dat3.mmc0_dat3 */ AM4372_IOPAD(0x960, PIN_INPUT_PULLUP | MUX_MODE5) /* (R25) spi0_cs1.mmc0_sdcd */ >; }; usdmmc_pins_sleep: usdmmc_pins_sleep { pinctrl-single,pins = < AM4372_IOPAD(0x900, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D1) mmc0_clk.gpio2_30 */ AM4372_IOPAD(0x904, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D2) mmc0_cmd.gpio2_31 */ AM4372_IOPAD(0x8fc, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (C1) mmc0_dat0.gpio2_29 */ AM4372_IOPAD(0x8f8, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (C2) mmc0_dat1.gpio2_28 */ AM4372_IOPAD(0x8f4, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B2) mmc0_dat2.gpio2_27 */ AM4372_IOPAD(0x8f0, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B1) mmc0_dat3.gpio2_26 */ AM4372_IOPAD(0x960, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (R25) spi0_cs1.gpio0_6*/ >; }; emmc_pins_default: emmc_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* (B9) gpmc_csn1.mmc1_clk */ AM4372_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* (F10) gpmc_csn2.mmc1_cmd */ AM4372_IOPAD(0x820, PIN_INPUT_PULLUP | MUX_MODE2) /* (B10) gpmc_ad8.mmc1_dat0 */ AM4372_IOPAD(0x824, PIN_INPUT_PULLUP | MUX_MODE2) /* (A10) gpmc_ad9.mmc1_dat1 */ AM4372_IOPAD(0x828, PIN_INPUT_PULLUP | MUX_MODE2) /* (F11) gpmc_ad10.mmc1_dat2 */ AM4372_IOPAD(0x82c, PIN_INPUT_PULLUP | MUX_MODE2) /* (D11) gpmc_ad11.mmc1_dat3 */ AM4372_IOPAD(0x874, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (B3) gpmc_wpn.gpmc_wpn */ >; }; emmc_pins_sleep: emmc_pins_sleep { pinctrl-single,pins = < AM4372_IOPAD(0x880, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B9) gpmc_csn1.gpio1_30 */ AM4372_IOPAD(0x884, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F10) gpmc_csn2.gpio1_31 */ AM4372_IOPAD(0x820, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B10) gpmc_ad8.gpio0_22 */ AM4372_IOPAD(0x824, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A10) gpmc_ad9.gpio0_23 */ AM4372_IOPAD(0x828, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F11) gpmc_ad10.gpio0_26 */ AM4372_IOPAD(0x82c, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D11) gpmc_ad11.gpio0_27 */ AM4372_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B3) gpmc_wpn.gpio0_31 */ >; }; uart0_pins_default: uart0_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0x970, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* (K25) uart0_rxd.uart0_rxd */ AM4372_IOPAD(0x974, PIN_OUTPUT | PULL_DISABLE | SLEWCTRL_FAST| MUX_MODE0) /* (J24) uart0_txd.uart0_txd */ >; }; uart0_pins_sleep: uart0_pins_sleep { pinctrl-single,pins = < AM4372_IOPAD(0x970, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (K25) uart0_rxd.gpio1_10 */ AM4372_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (J24) uart0_txd.gpio1_11 */ >; }; uart1_pins_default: uart1_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0x980, PIN_INPUT | MUX_MODE0 ) /* (K21) uart1_rxd.uart1_rxd */ AM4372_IOPAD(0x984, PIN_OUTPUT | MUX_MODE0 ) /* (L21) uart1_txd.uart1_rxd */ AM4372_IOPAD(0x978, PIN_INPUT | MUX_MODE0 ) /* (K22) uart1_ctsn.uart1_ctsn */ AM4372_IOPAD(0x97c, PIN_OUTPUT | MUX_MODE0 ) /* (L22) uart1_rtsn.uart1_rtsn */ >; }; uart1_pins_sleep: uart1_pins_sleep { pinctrl-single,pins = < AM4372_IOPAD(0x980, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K21) uart1_rxd.gpio0_14 */ AM4372_IOPAD(0x984, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (L21) uart1_rxd.gpio0_15 */ AM4372_IOPAD(0x978, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K22) uart1_ctsn.gpio0_12 */ AM4372_IOPAD(0x97c, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (L22) uart1_rtsn.gpio0_13 */ >; }; uart2_pins_default: uart2_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0x92c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE1) /* (D14) mii1_tx_clk.uart2_rxd */ AM4372_IOPAD(0x930, PIN_OUTPUT | PULL_DISABLE | SLEWCTRL_FAST | MUX_MODE1) /* (D13) mii1_rx_clk.uart2_txd */ AM4372_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (A13) mii1_tx_en.gpio3_3 */ >; }; uart2_pins_sleep: uart2_pins_sleep { pinctrl-single,pins = < AM4372_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (D14) mii1_tx_clk.gpio3_9 */ AM4372_IOPAD(0x930, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (D13) mii1_rx_clk.gpio3_10 */ AM4372_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (A13) mii1_tx_en.gpio3_3 */ >; }; uart3_pins_default: uart3_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0xa28, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* (H25) uart3_rxd.uart3_rxd */ AM4372_IOPAD(0xa2c, PIN_OUTPUT | PULL_DISABLE | SLEWCTRL_FAST | MUX_MODE0) /* (H24) uart3_txd.uart3_txd */ >; }; uart3_pins_sleep: uart3_pins_sleep { pinctrl-single,pins = < AM4372_IOPAD(0xa28, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (H25) uart3_rxd.gpio5_2 */ AM4372_IOPAD(0xa2c, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (H24) uart3_txd.gpio5_3 */ >; }; gpio0_pins_default: gpio0_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0xa70, PIN_INPUT | MUX_MODE7) /* (D24) xdma_event_intr0.gpio0[19] VIN_SENSE*/ AM4372_IOPAD(0xa74, PIN_INPUT | MUX_MODE7) /* (C24) xdma_event_intr1.gpio0[20] nGSM_RING*/ AM4372_IOPAD(0x964, PIN_INPUT | MUX_MODE7) /* (G24) eCAP0_in_PWM0_out.gpio0[7] SPI1_INT*/ >; }; gpio3_pins_default: gpio3_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0xaa4, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (N23) EMU0.gpio3[7] STATUS_LED1*/ AM4372_IOPAD(0xaa8, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (T24) EMU1.gpio3[8] STATUS_LED2*/ AM4372_IOPAD(0x9a0, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (L23) mcasp0_aclkr.gpio3[18] STATUS_LED0*/ AM4372_IOPAD(0x9a4, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (K23) mcasp0_fsr.gpio3[19] nPOR_INH*/ AM4372_IOPAD(0x9a8, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (M25) mcasp0_axr1.gpio3[20] WDTGL*/ AM4372_IOPAD(0x9ac, PIN_INPUT | MUX_MODE7) /* (L24) mcasp0_ahclkx.gpio3[21] TAMPER_IN*/ >; }; gpio4_pins_default: gpio4_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0x9b0, PIN_INPUT | MUX_MODE7) /* (AE17) cam0_hd.gpio4[0] GSM_PON*/ AM4372_IOPAD(0x9b8, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AC18) cam0_field.gpio4[2] GSM_ON */ AM4372_IOPAD(0x9bc, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AD17) cam0_wen.gpio4[3] GSM_OFF */ AM4372_IOPAD(0x9c0, PIN_INPUT | MUX_MODE7) /* (AC20) cam0_pclk.gpio4[4] UART1_DSR */ AM4372_IOPAD(0x9d4, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AD25) cam1_hd.gpio4[9] UART1_DTR */ AM4372_IOPAD(0x9dc, PIN_INPUT | MUX_MODE7) /* (AE21) cam1_pclk.gpio4[11] UART1_DCD */ AM4372_IOPAD(0x9e0, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AC25) cam1_field.gpio4[12] GSM_FSDN */ AM4372_IOPAD(0x9e4, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AB25) cam1_wen.gpio4[13] GSM_ERST */ >; }; gpio5_pins_default: gpio5_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0xa50, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (P25) spi4_sclk.gpio5[4] STATUS_LED7 */ AM4372_IOPAD(0xa54, PIN_INPUT | MUX_MODE7) /* (R24) spi4_d0.gpio5[5] TEMPSENSOR_ALERT */ AM4372_IOPAD(0xa38, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (D25) gpio5_8.gpio5[8] RELAY_ON */ AM4372_IOPAD(0xa3c, PIN_INPUT | MUX_MODE7) /* (F24) gpio5_9.gpio5[9] USB0_VBUS_DET */ AM4372_IOPAD(0xa40, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (G20) gpio5_10.gpio5[10] STATUS_LED3 */ AM4372_IOPAD(0xa44, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (F23) gpio5_11.gpio5[11] STATUS_LED4 */ AM4372_IOPAD(0xa48, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (E25) gpio5_12.gpio5[12] STATUS_LED5 */ AM4372_IOPAD(0xa4c, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (E24) gpio5_13.gpio5[13] STATUS_LED6 */ >; }; spi1_pins_default: spi1_pins_default { pinctrl-single,pins = < AM4372_IOPAD(0x908, PIN_INPUT | MUX_MODE2) /* (D16) mii1_col.spi1_sclk SPI_CLK */ AM4372_IOPAD(0x90c, PIN_OUTPUT | MUX_MODE2) /* (B14) mii1_crs.spi1_d0 SPI_MOSI*/ AM4372_IOPAD(0x910, PIN_INPUT | MUX_MODE2) /* (B13) mii1_rx_er.spi1_d1 SPI_MISO*/ AM4372_IOPAD(0x944, PIN_OUTPUT | MUX_MODE2) /* (A16) rmii1_ref_clk.spi1_cs0 SPI_CS0 */ >; }; spi1_pins_sleep: spi1_pins_sleep { pinctrl-single,pins = < AM4372_IOPAD(0x908, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (D16) mii1_col.gpio3_0 */ AM4372_IOPAD(0x90c, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (B14) mii1_crs.gpio3_1 */ AM4372_IOPAD(0x910, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (B13) mii1_rx_er.gpio3_2 */ AM4372_IOPAD(0x944, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (A16) rmii1_ref_clk.gpio0_29 */ >; }; }; &i2c0 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c0_pins_default>; pinctrl-1 = <&i2c0_pins_sleep>; clock-frequency = <100000>; tps65218: tps65218@24 { reg = <0x24>; compatible = "ti,tps65218"; interrupts = ; /* NMIn */ interrupt-controller; #interrupt-cells = <2>; dcdc1: regulator-dcdc1 { regulator-name = "vdd_core"; regulator-min-microvolt = <912000>; regulator-max-microvolt = <1144000>; regulator-boot-on; regulator-always-on; }; dcdc2: regulator-dcdc2 { regulator-name = "vdd_mpu"; regulator-min-microvolt = <912000>; regulator-max-microvolt = <1378000>; regulator-boot-on; regulator-always-on; }; dcdc3: regulator-dcdc3 { regulator-name = "vdcdc3"; regulator-boot-on; regulator-always-on; regulator-state-mem { regulator-on-in-suspend; }; regulator-state-disk { regulator-off-in-suspend; }; }; dcdc5: regulator-dcdc5 { regulator-name = "v1_0bat"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-boot-on; regulator-always-on; regulator-state-mem { regulator-on-in-suspend; }; }; dcdc6: regulator-dcdc6 { regulator-name = "v1_8bat"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; regulator-state-mem { regulator-on-in-suspend; }; }; ldo1: regulator-ldo1 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; }; }; eeprom@50 { compatible = "at,24c256"; reg = <0x50>; }; }; &i2c1 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c1_pins_default>; pinctrl-1 = <&i2c1_pins_sleep>; lm75@48 { compatible = "lm75"; reg = <0x48>; status = "okay"; }; }; &mmc1 { status = "okay"; vmmc-supply = <&evm_v3_3d>; bus-width = <4>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&usdmmc_pins_default>; pinctrl-1 = <&usdmmc_pins_sleep>; cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; }; &mmc2 { status = "okay"; vmmc-supply = <&evm_v3_3d>; bus-width = <1>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&emmc_pins_default>; pinctrl-1 = <&emmc_pins_sleep>; wp-gpios = <&gpio0 31 GPIO_ACTIVE_LOW>; }; &uart0 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&uart0_pins_default>; pinctrl-1 = <&uart0_pins_sleep>; }; &uart1 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&uart1_pins_default>; pinctrl-1 = <&uart1_pins_sleep>; }; &uart2 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&uart2_pins_default>; pinctrl-1 = <&uart2_pins_default>; linux,rs485-enabled-at-boot-time; rs485-rts-delay = <0 0>; // a for start of packet, b end of packet in ms rs485-rts-active-high; rts-gpio = <&gpio3 3 GPIO_ACTIVE_HIGH>; }; &uart3 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&uart3_pins_default>; pinctrl-1 = <&uart3_pins_sleep>; }; &gpio0 { pinctrl-names = "default"; pinctrl-0 = <&gpio0_pins_default>; status = "okay"; }; &gpio3 { pinctrl-names = "default"; pinctrl-0 = <&gpio3_pins_default>; status = "okay"; }; &gpio4 { pinctrl-names = "default"; pinctrl-0 = <&gpio4_pins_default>; status = "okay"; }; &gpio5 { pinctrl-names = "default"; pinctrl-0 = <&gpio5_pins_default>; status = "okay"; }; &spi1 { status = "okay"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi1_pins_default>; pinctrl-1 = <&spi1_pins_sleep>; ti,pindir-d0-out-d1-in = <1>; spidev@0{ spi-max-frequency = <2000000>; reg = <0>; compatible = "rohm,dh2228fv"; }; }; &rtc { clocks = <&clk_32k_rtc>; clock-names = "ext-clk"; status = "okay"; }; &usb2_phy1 { status = "okay"; }; &usb1 { dr_mode = "peripheral"; status = "okay"; }; &cpu { cpu0-supply = <&dcdc2>; }; &wkup_m3_ipc { ti,set-io-isolation; ti,scale-data-fw = "am43x-evm-scale-data.bin"; };