0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003 * Copyright (C) 2014 Texas Instruments Incorporated - https://www.ti.com/
0004 */
0005
0006 /* AM437x SK EVM */
0007
0008 /dts-v1/;
0009
0010 #include "am4372.dtsi"
0011 #include <dt-bindings/pinctrl/am43xx.h>
0012 #include <dt-bindings/pwm/pwm.h>
0013 #include <dt-bindings/gpio/gpio.h>
0014 #include <dt-bindings/input/input.h>
0015 #include <dt-bindings/interrupt-controller/irq.h>
0016
0017 / {
0018 model = "TI AM437x SK EVM";
0019 compatible = "ti,am437x-sk-evm","ti,am4372","ti,am43";
0020
0021 aliases {
0022 display0 = &lcd0;
0023 };
0024
0025 chosen {
0026 stdout-path = &uart0;
0027 };
0028
0029 /* fixed 32k external oscillator clock */
0030 clk_32k_rtc: clk_32k_rtc {
0031 #clock-cells = <0>;
0032 compatible = "fixed-clock";
0033 clock-frequency = <32768>;
0034 };
0035
0036 lcd_bl: backlight {
0037 compatible = "pwm-backlight";
0038 pwms = <&ecap0 0 50000 PWM_POLARITY_INVERTED>;
0039 brightness-levels = <0 51 53 56 62 75 101 152 255>;
0040 default-brightness-level = <8>;
0041 };
0042
0043 sound {
0044 compatible = "simple-audio-card";
0045 simple-audio-card,name = "AM437x-SK-EVM";
0046 simple-audio-card,widgets =
0047 "Headphone", "Headphone Jack",
0048 "Line", "Line In";
0049 simple-audio-card,routing =
0050 "Headphone Jack", "HPLOUT",
0051 "Headphone Jack", "HPROUT",
0052 "LINE1L", "Line In",
0053 "LINE1R", "Line In";
0054 simple-audio-card,format = "dsp_b";
0055 simple-audio-card,bitclock-master = <&sound_master>;
0056 simple-audio-card,frame-master = <&sound_master>;
0057 simple-audio-card,bitclock-inversion;
0058
0059 simple-audio-card,cpu {
0060 sound-dai = <&mcasp1>;
0061 };
0062
0063 sound_master: simple-audio-card,codec {
0064 sound-dai = <&tlv320aic3106>;
0065 system-clock-frequency = <24000000>;
0066 };
0067 };
0068
0069 matrix_keypad: matrix_keypad0 {
0070 compatible = "gpio-matrix-keypad";
0071
0072 pinctrl-names = "default";
0073 pinctrl-0 = <&matrix_keypad_pins>;
0074
0075 debounce-delay-ms = <5>;
0076 col-scan-delay-us = <5>;
0077
0078 row-gpios = <&gpio5 5 GPIO_ACTIVE_HIGH /* Bank5, pin5 */
0079 &gpio5 6 GPIO_ACTIVE_HIGH>; /* Bank5, pin6 */
0080
0081 col-gpios = <&gpio5 13 GPIO_ACTIVE_HIGH /* Bank5, pin13 */
0082 &gpio5 4 GPIO_ACTIVE_HIGH>; /* Bank5, pin4 */
0083
0084 linux,keymap = <
0085 MATRIX_KEY(0, 0, KEY_DOWN)
0086 MATRIX_KEY(0, 1, KEY_RIGHT)
0087 MATRIX_KEY(1, 0, KEY_LEFT)
0088 MATRIX_KEY(1, 1, KEY_UP)
0089 >;
0090 };
0091
0092 leds {
0093 compatible = "gpio-leds";
0094
0095 pinctrl-names = "default";
0096 pinctrl-0 = <&leds_pins>;
0097
0098 led0 {
0099 label = "am437x-sk:red:heartbeat";
0100 gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>; /* Bank 5, pin 0 */
0101 linux,default-trigger = "heartbeat";
0102 default-state = "off";
0103 };
0104
0105 led1 {
0106 label = "am437x-sk:green:mmc1";
0107 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; /* Bank 5, pin 1 */
0108 linux,default-trigger = "mmc0";
0109 default-state = "off";
0110 };
0111
0112 led2 {
0113 label = "am437x-sk:blue:cpu0";
0114 gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>; /* Bank 5, pin 2 */
0115 linux,default-trigger = "cpu0";
0116 default-state = "off";
0117 };
0118
0119 led3 {
0120 label = "am437x-sk:blue:usr3";
0121 gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>; /* Bank 5, pin 3 */
0122 default-state = "off";
0123 };
0124 };
0125
0126 lcd0: display {
0127 compatible = "newhaven,nhd-4.3-480272ef-atxl", "panel-dpi";
0128 label = "lcd";
0129
0130 pinctrl-names = "default";
0131 pinctrl-0 = <&lcd_pins>;
0132
0133 backlight = <&lcd_bl>;
0134
0135 enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
0136
0137 port {
0138 lcd_in: endpoint {
0139 remote-endpoint = <&dpi_out>;
0140 };
0141 };
0142 };
0143
0144 vmmcwl_fixed: fixedregulator-mmcwl {
0145 /*
0146 * WL_EN is not SDIO standard compliant. It is an out of band
0147 * signal and hard to be dealt with in a standard way by the
0148 * SDIO core driver.
0149 * So modelling the WL_EN line as a regulator was a natural
0150 * choice as the MMC core already deals with MMC supplies.
0151 */
0152 compatible = "regulator-fixed";
0153 regulator-name = "vmmcwl_fixed";
0154 regulator-min-microvolt = <1800000>;
0155 regulator-max-microvolt = <1800000>;
0156 gpio = <&gpio4 8 GPIO_ACTIVE_HIGH>;
0157 enable-active-high;
0158 };
0159 };
0160
0161 &am43xx_pinmux {
0162 matrix_keypad_pins: matrix_keypad_pins {
0163 pinctrl-single,pins = <
0164 AM4372_IOPAD(0xa4c, PIN_OUTPUT | MUX_MODE7) /* gpio5_13.gpio5_13 */
0165 AM4372_IOPAD(0xa50, PIN_OUTPUT | MUX_MODE7) /* spi4_sclk.gpio5_4 */
0166 AM4372_IOPAD(0xa54, PIN_INPUT | MUX_MODE7) /* spi4_d0.gpio5_5 */
0167 AM4372_IOPAD(0xa58, PIN_INPUT | MUX_MODE7) /* spi4_d1.gpio5_5 */
0168 >;
0169 };
0170
0171 leds_pins: leds_pins {
0172 pinctrl-single,pins = <
0173 AM4372_IOPAD(0xa28, PIN_OUTPUT | MUX_MODE7) /* uart3_rxd.gpio5_2 */
0174 AM4372_IOPAD(0xa2c, PIN_OUTPUT | MUX_MODE7) /* uart3_txd.gpio5_3 */
0175 AM4372_IOPAD(0xa30, PIN_OUTPUT | MUX_MODE7) /* uart3_ctsn.gpio5_0 */
0176 AM4372_IOPAD(0xa34, PIN_OUTPUT | MUX_MODE7) /* uart3_rtsn.gpio5_1 */
0177 >;
0178 };
0179
0180 i2c0_pins: i2c0_pins {
0181 pinctrl-single,pins = <
0182 AM4372_IOPAD(0x988, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */
0183 AM4372_IOPAD(0x98c, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */
0184 >;
0185 };
0186
0187 i2c1_pins: i2c1_pins {
0188 pinctrl-single,pins = <
0189 AM4372_IOPAD(0x95c, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE2) /* spi0_cs0.i2c1_scl */
0190 AM4372_IOPAD(0x958, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE2) /* spi0_d1.i2c1_sda */
0191 >;
0192 };
0193
0194 mmc1_pins: pinmux_mmc1_pins {
0195 pinctrl-single,pins = <
0196 AM4372_IOPAD(0x8f0, PIN_INPUT | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
0197 AM4372_IOPAD(0x8f4, PIN_INPUT | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
0198 AM4372_IOPAD(0x8f8, PIN_INPUT | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
0199 AM4372_IOPAD(0x8fc, PIN_INPUT | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
0200 AM4372_IOPAD(0x900, PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */
0201 AM4372_IOPAD(0x904, PIN_INPUT | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
0202 AM4372_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
0203 >;
0204 };
0205
0206 ecap0_pins: backlight_pins {
0207 pinctrl-single,pins = <
0208 AM4372_IOPAD(0x964, PIN_OUTPUT | MUX_MODE0) /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out */
0209 >;
0210 };
0211
0212 edt_ft5306_ts_pins: edt_ft5306_ts_pins {
0213 pinctrl-single,pins = <
0214 AM4372_IOPAD(0x874, PIN_INPUT | MUX_MODE7) /* gpmc_wpn.gpio0_31 */
0215 AM4372_IOPAD(0x878, PIN_OUTPUT | MUX_MODE7) /* gpmc_be1n.gpio1_28 */
0216 >;
0217 };
0218
0219 vpfe0_pins_default: vpfe0_pins_default {
0220 pinctrl-single,pins = <
0221 AM4372_IOPAD(0x9b0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_hd mode 0*/
0222 AM4372_IOPAD(0x9b4, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_vd mode 0*/
0223 AM4372_IOPAD(0x9b8, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_field mode 0*/
0224 AM4372_IOPAD(0x9bc, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_wen mode 0*/
0225 AM4372_IOPAD(0x9c0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_pclk mode 0*/
0226 AM4372_IOPAD(0x9c4, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data8 mode 0*/
0227 AM4372_IOPAD(0x9c8, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data9 mode 0*/
0228 AM4372_IOPAD(0xa08, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data0 mode 0*/
0229 AM4372_IOPAD(0xa0c, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data1 mode 0*/
0230 AM4372_IOPAD(0xa10, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data2 mode 0*/
0231 AM4372_IOPAD(0xa14, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data3 mode 0*/
0232 AM4372_IOPAD(0xa18, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data4 mode 0*/
0233 AM4372_IOPAD(0xa1c, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data5 mode 0*/
0234 AM4372_IOPAD(0xa20, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data6 mode 0*/
0235 AM4372_IOPAD(0xa24, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data7 mode 0*/
0236 >;
0237 };
0238
0239 vpfe0_pins_sleep: vpfe0_pins_sleep {
0240 pinctrl-single,pins = <
0241 AM4372_IOPAD(0x9b0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0242 AM4372_IOPAD(0x9b4, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0243 AM4372_IOPAD(0x9b8, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0244 AM4372_IOPAD(0x9bc, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0245 AM4372_IOPAD(0x9c0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0246 AM4372_IOPAD(0x9c4, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0247 AM4372_IOPAD(0x9c8, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0248 AM4372_IOPAD(0xa08, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0249 AM4372_IOPAD(0xa0c, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0250 AM4372_IOPAD(0xa10, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0251 AM4372_IOPAD(0xa14, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0252 AM4372_IOPAD(0xa18, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0253 AM4372_IOPAD(0xa1c, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0254 AM4372_IOPAD(0xa20, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0255 AM4372_IOPAD(0xa24, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
0256 >;
0257 };
0258
0259 clkout1_pin: pinmux_clkout1_pin {
0260 pinctrl-single,pins = <
0261 0x270 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* XDMA_EVENT_INTR0/CLKOUT1 */
0262 >;
0263 };
0264
0265 cpsw_default: cpsw_default {
0266 pinctrl-single,pins = <
0267 /* Slave 1 */
0268 AM4372_IOPAD(0x92c, PIN_OUTPUT | MUX_MODE2) /* mii1_txclk.rmii1_tclk */
0269 AM4372_IOPAD(0x914, PIN_OUTPUT | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
0270 AM4372_IOPAD(0x928, PIN_OUTPUT | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
0271 AM4372_IOPAD(0x924, PIN_OUTPUT | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
0272 AM4372_IOPAD(0x920, PIN_OUTPUT | MUX_MODE2) /* mii1_txd0.rgmii1_td2 */
0273 AM4372_IOPAD(0x91c, PIN_OUTPUT | MUX_MODE2) /* mii1_txd1.rgmii1_td3 */
0274 AM4372_IOPAD(0x930, PIN_INPUT | MUX_MODE2) /* mii1_rxclk.rmii1_rclk */
0275 AM4372_IOPAD(0x918, PIN_INPUT | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
0276 AM4372_IOPAD(0x940, PIN_INPUT | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */
0277 AM4372_IOPAD(0x93c, PIN_INPUT | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */
0278 AM4372_IOPAD(0x938, PIN_INPUT | MUX_MODE2) /* mii1_rxd0.rgmii1_rd2 */
0279 AM4372_IOPAD(0x934, PIN_INPUT | MUX_MODE2) /* mii1_rxd1.rgmii1_rd3 */
0280
0281 /* Slave 2 */
0282 AM4372_IOPAD(0x858, PIN_OUTPUT | MUX_MODE2) /* gpmc_a6.rgmii2_tclk */
0283 AM4372_IOPAD(0x840, PIN_OUTPUT | MUX_MODE2) /* gpmc_a0.rgmii2_tctl */
0284 AM4372_IOPAD(0x854, PIN_OUTPUT | MUX_MODE2) /* gpmc_a5.rgmii2_td0 */
0285 AM4372_IOPAD(0x850, PIN_OUTPUT | MUX_MODE2) /* gpmc_a4.rgmii2_td1 */
0286 AM4372_IOPAD(0x84c, PIN_OUTPUT | MUX_MODE2) /* gpmc_a3.rgmii2_td2 */
0287 AM4372_IOPAD(0x848, PIN_OUTPUT | MUX_MODE2) /* gpmc_a2.rgmii2_td3 */
0288 AM4372_IOPAD(0x85c, PIN_INPUT | MUX_MODE2) /* gpmc_a7.rgmii2_rclk */
0289 AM4372_IOPAD(0x844, PIN_INPUT | MUX_MODE2) /* gpmc_a1.rgmii2_rtcl */
0290 AM4372_IOPAD(0x86c, PIN_INPUT | MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */
0291 AM4372_IOPAD(0x868, PIN_INPUT | MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */
0292 AM4372_IOPAD(0x864, PIN_INPUT | MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */
0293 AM4372_IOPAD(0x860, PIN_INPUT | MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */
0294 >;
0295 };
0296
0297 cpsw_sleep: cpsw_sleep {
0298 pinctrl-single,pins = <
0299 /* Slave 1 reset value */
0300 AM4372_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
0301 AM4372_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
0302 AM4372_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
0303 AM4372_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
0304 AM4372_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
0305 AM4372_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
0306 AM4372_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
0307 AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
0308 AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
0309 AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
0310 AM4372_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
0311 AM4372_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
0312
0313 /* Slave 2 reset value */
0314 AM4372_IOPAD(0x858, PIN_INPUT_PULLDOWN | MUX_MODE7)
0315 AM4372_IOPAD(0x840, PIN_INPUT_PULLDOWN | MUX_MODE7)
0316 AM4372_IOPAD(0x854, PIN_INPUT_PULLDOWN | MUX_MODE7)
0317 AM4372_IOPAD(0x850, PIN_INPUT_PULLDOWN | MUX_MODE7)
0318 AM4372_IOPAD(0x84c, PIN_INPUT_PULLDOWN | MUX_MODE7)
0319 AM4372_IOPAD(0x848, PIN_INPUT_PULLDOWN | MUX_MODE7)
0320 AM4372_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE7)
0321 AM4372_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE7)
0322 AM4372_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7)
0323 AM4372_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7)
0324 AM4372_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7)
0325 AM4372_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE7)
0326 >;
0327 };
0328
0329 davinci_mdio_default: davinci_mdio_default {
0330 pinctrl-single,pins = <
0331 /* MDIO */
0332 AM4372_IOPAD(0x948, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
0333 AM4372_IOPAD(0x94c, PIN_OUTPUT | MUX_MODE0) /* mdio_clk.mdio_clk */
0334 >;
0335 };
0336
0337 davinci_mdio_sleep: davinci_mdio_sleep {
0338 pinctrl-single,pins = <
0339 /* MDIO reset value */
0340 AM4372_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
0341 AM4372_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
0342 >;
0343 };
0344
0345 dss_pins: dss_pins {
0346 pinctrl-single,pins = <
0347 AM4372_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1) /* gpmc ad 8 -> DSS DATA 23 */
0348 AM4372_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1)
0349 AM4372_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1)
0350 AM4372_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1)
0351 AM4372_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1)
0352 AM4372_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1)
0353 AM4372_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1)
0354 AM4372_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1) /* gpmc ad 15 -> DSS DATA 16 */
0355 AM4372_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* DSS DATA 0 */
0356 AM4372_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0)
0357 AM4372_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0)
0358 AM4372_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0)
0359 AM4372_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0)
0360 AM4372_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0)
0361 AM4372_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0)
0362 AM4372_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0)
0363 AM4372_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0)
0364 AM4372_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0)
0365 AM4372_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0)
0366 AM4372_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0)
0367 AM4372_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0)
0368 AM4372_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0)
0369 AM4372_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0)
0370 AM4372_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* DSS DATA 15 */
0371 AM4372_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0) /* DSS VSYNC */
0372 AM4372_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0) /* DSS HSYNC */
0373 AM4372_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0) /* DSS PCLK */
0374 AM4372_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0) /* DSS AC BIAS EN */
0375
0376 >;
0377 };
0378
0379 qspi_pins: qspi_pins {
0380 pinctrl-single,pins = <
0381 AM4372_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE3) /* gpmc_csn0.qspi_csn */
0382 AM4372_IOPAD(0x888, PIN_OUTPUT | MUX_MODE2) /* gpmc_csn3.qspi_clk */
0383 AM4372_IOPAD(0x890, PIN_INPUT | MUX_MODE3) /* gpmc_advn_ale.qspi_d0 */
0384 AM4372_IOPAD(0x894, PIN_INPUT | MUX_MODE3) /* gpmc_oen_ren.qspi_d1 */
0385 AM4372_IOPAD(0x898, PIN_INPUT | MUX_MODE3) /* gpmc_wen.qspi_d2 */
0386 AM4372_IOPAD(0x89c, PIN_INPUT | MUX_MODE3) /* gpmc_be0n_cle.qspi_d3 */
0387 >;
0388 };
0389
0390 mcasp1_pins: mcasp1_pins {
0391 pinctrl-single,pins = <
0392 AM4372_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
0393 AM4372_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
0394 AM4372_IOPAD(0x908, PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
0395 AM4372_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
0396 >;
0397 };
0398
0399 mcasp1_pins_sleep: mcasp1_pins_sleep {
0400 pinctrl-single,pins = <
0401 AM4372_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
0402 AM4372_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
0403 AM4372_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7)
0404 AM4372_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
0405 >;
0406 };
0407
0408 lcd_pins: lcd_pins {
0409 pinctrl-single,pins = <
0410 AM4372_IOPAD(0x81c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpcm_ad7.gpio1_7 */
0411 >;
0412 };
0413
0414 usb1_pins: usb1_pins {
0415 pinctrl-single,pins = <
0416 AM4372_IOPAD(0xac0, PIN_OUTPUT | MUX_MODE0) /* usb0_drvvbus.usb0_drvvbus */
0417 >;
0418 };
0419
0420 usb2_pins: usb2_pins {
0421 pinctrl-single,pins = <
0422 AM4372_IOPAD(0xac4, PIN_OUTPUT | MUX_MODE0) /* usb0_drvvbus.usb0_drvvbus */
0423 >;
0424 };
0425
0426 mmc3_pins_default: pinmux_mmc3_pins_default {
0427 pinctrl-single,pins = <
0428 AM4372_IOPAD(0x9f0, PIN_INPUT_PULLUP | MUX_MODE3) /* (AD21) cam1_data2.mmc2_clk */
0429 AM4372_IOPAD(0x9f4, PIN_INPUT_PULLUP | MUX_MODE3) /* (AE22) cam1_data3.mmc2_cmd */
0430 AM4372_IOPAD(0x9f8, PIN_INPUT_PULLUP | MUX_MODE3) /* (AD22) cam1_data4.mmc2_dat0 */
0431 AM4372_IOPAD(0x9fc, PIN_INPUT_PULLUP | MUX_MODE3) /* (AE23) cam1_data5.mmc2_dat1 */
0432 AM4372_IOPAD(0xa00, PIN_INPUT_PULLUP | MUX_MODE3) /* (AD23) cam1_data6.mmc2_dat2 */
0433 AM4372_IOPAD(0xa04, PIN_INPUT_PULLUP | MUX_MODE3) /* (AE24) cam1_data7.mmc2_dat3 */
0434 >;
0435 };
0436
0437 mmc3_pins_sleep: pinmux_mmc3_pins_sleep {
0438 pinctrl-single,pins = <
0439 AM4372_IOPAD(0x9f0, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AD21) cam1_data2.mmc2_clk */
0440 AM4372_IOPAD(0x9f4, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AE22) cam1_data3.mmc2_cmd */
0441 AM4372_IOPAD(0x9f8, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AD22) cam1_data4.mmc2_dat0 */
0442 AM4372_IOPAD(0x9fc, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AE23) cam1_data5.mmc2_dat1 */
0443 AM4372_IOPAD(0xa00, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AD23) cam1_data6.mmc2_dat2 */
0444 AM4372_IOPAD(0xa04, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AE24) cam1_data7.mmc2_dat3 */
0445 >;
0446 };
0447
0448 wlan_pins_default: pinmux_wlan_pins_default {
0449 pinctrl-single,pins = <
0450 AM4372_IOPAD(0x9d0, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* cam1_data8.gpio4_8 WL_EN */
0451 AM4372_IOPAD(0x9e4, PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7) /* cam1_wen.gpio4_13 WL_IRQ */
0452 >;
0453 };
0454
0455 wlan_pins_sleep: pinmux_wlan_pins_sleep {
0456 pinctrl-single,pins = <
0457 AM4372_IOPAD(0x9d0, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* cam1_data8.gpio4_8 WL_EN */
0458 AM4372_IOPAD(0x9e4, PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7) /* cam1_wen.gpio4_13 WL_IRQ */
0459 >;
0460 };
0461
0462 uart1_bt_pins_default: pinmux_uart1_bt_pins_default {
0463 pinctrl-single,pins = <
0464 AM4372_IOPAD(0x980, PIN_INPUT | MUX_MODE0) /* uart1_rxd.uart1_rxd */
0465 AM4372_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
0466 AM4372_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */
0467 AM4372_IOPAD(0x97c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */
0468 AM4372_IOPAD(0x9cc, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* cam1_data9.gpio4_7 BT_EN */
0469 >;
0470 };
0471
0472 uart1_bt_pins_sleep: pinmux_uart1_bt_pins_sleep {
0473 pinctrl-single,pins = <
0474 AM4372_IOPAD(0x980, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_rxd.uart1_rxd */
0475 AM4372_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_txd.uart1_txd */
0476 AM4372_IOPAD(0x978, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_ctsn.uart1_ctsn */
0477 AM4372_IOPAD(0x97c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_rtsn.uart1_rtsn */
0478 AM4372_IOPAD(0x9cc, PIN_OUTPUT_PULLUP | MUX_MODE7) /* cam1_data9.gpio4_7 BT_EN */
0479 >;
0480 };
0481 };
0482
0483 &i2c0 {
0484 status = "okay";
0485 pinctrl-names = "default";
0486 pinctrl-0 = <&i2c0_pins>;
0487 clock-frequency = <100000>;
0488
0489 tps@24 {
0490 compatible = "ti,tps65218";
0491 reg = <0x24>;
0492 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
0493 interrupt-controller;
0494 #interrupt-cells = <2>;
0495
0496 dcdc1: regulator-dcdc1 {
0497 /* VDD_CORE limits min of OPP50 and max of OPP100 */
0498 regulator-name = "vdd_core";
0499 regulator-min-microvolt = <912000>;
0500 regulator-max-microvolt = <1144000>;
0501 regulator-boot-on;
0502 regulator-always-on;
0503 };
0504
0505 dcdc2: regulator-dcdc2 {
0506 /* VDD_MPU limits min of OPP50 and max of OPP_NITRO */
0507 regulator-name = "vdd_mpu";
0508 regulator-min-microvolt = <912000>;
0509 regulator-max-microvolt = <1378000>;
0510 regulator-boot-on;
0511 regulator-always-on;
0512 };
0513
0514 dcdc3: regulator-dcdc3 {
0515 regulator-name = "vdds_ddr";
0516 regulator-boot-on;
0517 regulator-always-on;
0518 regulator-state-mem {
0519 regulator-on-in-suspend;
0520 };
0521 regulator-state-disk {
0522 regulator-off-in-suspend;
0523 };
0524 };
0525
0526 dcdc4: regulator-dcdc4 {
0527 regulator-name = "v3_3d";
0528 regulator-min-microvolt = <3300000>;
0529 regulator-max-microvolt = <3300000>;
0530 regulator-boot-on;
0531 regulator-always-on;
0532 };
0533
0534 dcdc5: regulator-dcdc5 {
0535 compatible = "ti,tps65218-dcdc5";
0536 regulator-name = "v1_0bat";
0537 regulator-min-microvolt = <1000000>;
0538 regulator-max-microvolt = <1000000>;
0539 regulator-boot-on;
0540 regulator-always-on;
0541 regulator-state-mem {
0542 regulator-on-in-suspend;
0543 };
0544 };
0545
0546 dcdc6: regulator-dcdc6 {
0547 compatible = "ti,tps65218-dcdc6";
0548 regulator-name = "v1_8bat";
0549 regulator-min-microvolt = <1800000>;
0550 regulator-max-microvolt = <1800000>;
0551 regulator-boot-on;
0552 regulator-always-on;
0553 regulator-state-mem {
0554 regulator-on-in-suspend;
0555 };
0556 };
0557
0558 ldo1: regulator-ldo1 {
0559 regulator-name = "v1_8d";
0560 regulator-min-microvolt = <1800000>;
0561 regulator-max-microvolt = <1800000>;
0562 regulator-boot-on;
0563 regulator-always-on;
0564 };
0565
0566 power-button {
0567 compatible = "ti,tps65218-pwrbutton";
0568 status = "okay";
0569 interrupts = <3 IRQ_TYPE_EDGE_BOTH>;
0570 };
0571 };
0572
0573 at24@50 {
0574 compatible = "atmel,24c256";
0575 pagesize = <64>;
0576 reg = <0x50>;
0577 };
0578 };
0579
0580 &i2c1 {
0581 status = "okay";
0582 pinctrl-names = "default";
0583 pinctrl-0 = <&i2c1_pins>;
0584 clock-frequency = <400000>;
0585
0586 ov2659@30 {
0587 compatible = "ovti,ov2659";
0588 reg = <0x30>;
0589 pinctrl-names = "default";
0590 pinctrl-0 = <&clkout1_pin>;
0591
0592 clocks = <&clkout1_mux_ck>;
0593 clock-names = "xvclk";
0594 assigned-clocks = <&clkout1_mux_ck>;
0595 assigned-clock-parents = <&clkout1_osc_div_ck>;
0596
0597 port {
0598 ov2659_1: endpoint {
0599 remote-endpoint = <&vpfe0_ep>;
0600 link-frequencies = /bits/ 64 <70000000>;
0601 };
0602 };
0603 };
0604
0605 edt-ft5306@38 {
0606 status = "okay";
0607 compatible = "edt,edt-ft5306", "edt,edt-ft5x06";
0608 pinctrl-names = "default";
0609 pinctrl-0 = <&edt_ft5306_ts_pins>;
0610
0611 reg = <0x38>;
0612 interrupt-parent = <&gpio0>;
0613 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
0614
0615 reset-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
0616
0617 touchscreen-size-x = <480>;
0618 touchscreen-size-y = <272>;
0619
0620 wakeup-source;
0621 };
0622
0623 tlv320aic3106: tlv320aic3106@1b {
0624 #sound-dai-cells = <0>;
0625 compatible = "ti,tlv320aic3106";
0626 reg = <0x1b>;
0627 status = "okay";
0628
0629 /* Regulators */
0630 AVDD-supply = <&dcdc4>;
0631 IOVDD-supply = <&dcdc4>;
0632 DRVDD-supply = <&dcdc4>;
0633 DVDD-supply = <&ldo1>;
0634 };
0635
0636 lis331dlh@18 {
0637 compatible = "st,lis331dlh";
0638 reg = <0x18>;
0639 status = "okay";
0640
0641 Vdd-supply = <&dcdc4>;
0642 Vdd_IO-supply = <&dcdc4>;
0643 interrupts-extended = <&gpio1 6 0>, <&gpio2 1 0>;
0644 };
0645 };
0646
0647 &epwmss0 {
0648 status = "okay";
0649 };
0650
0651 &ecap0 {
0652 status = "okay";
0653 pinctrl-names = "default";
0654 pinctrl-0 = <&ecap0_pins>;
0655 };
0656
0657 &gpio0 {
0658 status = "okay";
0659 };
0660
0661 &gpio1 {
0662 status = "okay";
0663 };
0664
0665 &gpio4 {
0666 status = "okay";
0667 };
0668
0669 &gpio5 {
0670 status = "okay";
0671 };
0672
0673 &mmc1 {
0674 status = "okay";
0675 pinctrl-names = "default";
0676 pinctrl-0 = <&mmc1_pins>;
0677
0678 vmmc-supply = <&dcdc4>;
0679 bus-width = <4>;
0680 cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
0681 };
0682
0683 &uart1 {
0684 status = "okay";
0685 pinctrl-names = "default", "sleep";
0686 pinctrl-0 = <&uart1_bt_pins_default>;
0687 pinctrl-1 = <&uart1_bt_pins_sleep>;
0688 };
0689
0690 &mmc3 {
0691 status = "okay";
0692 /*
0693 * these are on the crossbar and are outlined in the
0694 * xbar-event-map element
0695 */
0696 dmas = <&edma_xbar 30 0 1>,
0697 <&edma_xbar 31 0 2>;
0698 dma-names = "tx", "rx";
0699 vmmc-supply = <&vmmcwl_fixed>;
0700 bus-width = <4>;
0701 pinctrl-names = "default", "sleep";
0702 pinctrl-0 = <&mmc3_pins_default>;
0703 pinctrl-1 = <&mmc3_pins_sleep>;
0704 cap-power-off-card;
0705 keep-power-in-suspend;
0706 non-removable;
0707
0708 #address-cells = <1>;
0709 #size-cells = <0>;
0710 wlcore: wlcore@2 {
0711 compatible = "ti,wl1835";
0712 pinctrl-names = "default", "sleep";
0713 pinctrl-0 = <&wlan_pins_default>;
0714 pinctrl-1 = <&wlan_pins_sleep>;
0715 reg = <2>;
0716 interrupt-parent = <&gpio4>;
0717 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
0718 };
0719 };
0720
0721 &usb2_phy1 {
0722 status = "okay";
0723 };
0724
0725 &usb1 {
0726 dr_mode = "otg";
0727 status = "okay";
0728 pinctrl-names = "default";
0729 pinctrl-0 = <&usb1_pins>;
0730 };
0731
0732 &usb2_phy2 {
0733 status = "okay";
0734 };
0735
0736 &usb2 {
0737 dr_mode = "host";
0738 status = "okay";
0739 pinctrl-names = "default";
0740 pinctrl-0 = <&usb2_pins>;
0741 };
0742
0743 &qspi {
0744 status = "okay";
0745 pinctrl-names = "default";
0746 pinctrl-0 = <&qspi_pins>;
0747
0748 spi-max-frequency = <48000000>;
0749 flash@0 {
0750 compatible = "mx66l51235l";
0751 spi-max-frequency = <48000000>;
0752 reg = <0>;
0753 spi-cpol;
0754 spi-cpha;
0755 spi-tx-bus-width = <1>;
0756 spi-rx-bus-width = <4>;
0757 #address-cells = <1>;
0758 #size-cells = <1>;
0759
0760 /* MTD partition table.
0761 * The ROM checks the first 512KiB
0762 * for a valid file to boot(XIP).
0763 */
0764 partition@0 {
0765 label = "QSPI.U_BOOT";
0766 reg = <0x00000000 0x000080000>;
0767 };
0768 partition@1 {
0769 label = "QSPI.U_BOOT.backup";
0770 reg = <0x00080000 0x00080000>;
0771 };
0772 partition@2 {
0773 label = "QSPI.U-BOOT-SPL_OS";
0774 reg = <0x00100000 0x00010000>;
0775 };
0776 partition@3 {
0777 label = "QSPI.U_BOOT_ENV";
0778 reg = <0x00110000 0x00010000>;
0779 };
0780 partition@4 {
0781 label = "QSPI.U-BOOT-ENV.backup";
0782 reg = <0x00120000 0x00010000>;
0783 };
0784 partition@5 {
0785 label = "QSPI.KERNEL";
0786 reg = <0x00130000 0x0800000>;
0787 };
0788 partition@6 {
0789 label = "QSPI.FILESYSTEM";
0790 reg = <0x00930000 0x36D0000>;
0791 };
0792 };
0793 };
0794
0795 &mac_sw {
0796 pinctrl-names = "default", "sleep";
0797 pinctrl-0 = <&cpsw_default>;
0798 pinctrl-1 = <&cpsw_sleep>;
0799 status = "okay";
0800 };
0801
0802 &davinci_mdio_sw {
0803 pinctrl-names = "default", "sleep";
0804 pinctrl-0 = <&davinci_mdio_default>;
0805 pinctrl-1 = <&davinci_mdio_sleep>;
0806
0807 ethphy0: ethernet-phy@4 {
0808 reg = <4>;
0809 };
0810
0811 ethphy1: ethernet-phy@5 {
0812 reg = <5>;
0813 };
0814 };
0815
0816 &cpsw_port1 {
0817 phy-handle = <ðphy0>;
0818 phy-mode = "rgmii-rxid";
0819 ti,dual-emac-pvid = <1>;
0820 };
0821
0822 &cpsw_port2 {
0823 phy-handle = <ðphy1>;
0824 phy-mode = "rgmii-rxid";
0825 ti,dual-emac-pvid = <2>;
0826 };
0827
0828 &elm {
0829 status = "okay";
0830 };
0831
0832 &mcasp1 {
0833 #sound-dai-cells = <0>;
0834 pinctrl-names = "default", "sleep";
0835 pinctrl-0 = <&mcasp1_pins>;
0836 pinctrl-1 = <&mcasp1_pins_sleep>;
0837
0838 status = "okay";
0839
0840 op-mode = <0>;
0841 tdm-slots = <2>;
0842 serial-dir = <
0843 0 0 1 2
0844 >;
0845
0846 tx-num-evt = <1>;
0847 rx-num-evt = <1>;
0848 };
0849
0850 &dss {
0851 status = "okay";
0852
0853 pinctrl-names = "default";
0854 pinctrl-0 = <&dss_pins>;
0855
0856 port {
0857 dpi_out: endpoint@0 {
0858 remote-endpoint = <&lcd_in>;
0859 data-lines = <24>;
0860 };
0861 };
0862 };
0863
0864 &rtc {
0865 clocks = <&clk_32k_rtc>, <&clk_32768_ck>;
0866 clock-names = "ext-clk", "int-clk";
0867 status = "okay";
0868 };
0869
0870 &wdt {
0871 status = "okay";
0872 };
0873
0874 &cpu {
0875 cpu0-supply = <&dcdc2>;
0876 };
0877
0878 &vpfe0 {
0879 status = "okay";
0880 pinctrl-names = "default", "sleep";
0881 pinctrl-0 = <&vpfe0_pins_default>;
0882 pinctrl-1 = <&vpfe0_pins_sleep>;
0883
0884 /* Camera port */
0885 port {
0886 vpfe0_ep: endpoint {
0887 remote-endpoint = <&ov2659_1>;
0888 ti,am437x-vpfe-interface = <0>;
0889 bus-width = <8>;
0890 hsync-active = <0>;
0891 vsync-active = <0>;
0892 };
0893 };
0894 };
0895
0896 &wkup_m3_ipc {
0897 firmware-name = "am43x-evm-scale-data.bin";
0898 };
0899
0900 &pruss1_mdio {
0901 status = "disabled";
0902 };