162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2013 Texas Instruments Incorporated - https://www.ti.com/ 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci/dts-v1/; 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <dt-bindings/input/input.h> 862306a36Sopenharmony_ci#include "omap34xx.dtsi" 962306a36Sopenharmony_ci#include "omap-gpmc-smsc911x.dtsi" 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci/ { 1262306a36Sopenharmony_ci model = "TI OMAP3430 LDP (Zoom1 Labrador)"; 1362306a36Sopenharmony_ci compatible = "ti,omap3-ldp", "ti,omap3430", "ti,omap3"; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci memory@80000000 { 1662306a36Sopenharmony_ci device_type = "memory"; 1762306a36Sopenharmony_ci reg = <0x80000000 0x8000000>; /* 128 MB */ 1862306a36Sopenharmony_ci }; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci cpus { 2162306a36Sopenharmony_ci cpu@0 { 2262306a36Sopenharmony_ci cpu0-supply = <&vcc>; 2362306a36Sopenharmony_ci }; 2462306a36Sopenharmony_ci }; 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci gpio_keys { 2762306a36Sopenharmony_ci compatible = "gpio-keys"; 2862306a36Sopenharmony_ci pinctrl-names = "default"; 2962306a36Sopenharmony_ci pinctrl-0 = <&gpio_key_pins>; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci key_enter { 3262306a36Sopenharmony_ci label = "enter"; 3362306a36Sopenharmony_ci gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; /* gpio101 */ 3462306a36Sopenharmony_ci linux,code = <KEY_ENTER>; 3562306a36Sopenharmony_ci wakeup-source; 3662306a36Sopenharmony_ci }; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci key_f1 { 3962306a36Sopenharmony_ci label = "f1"; 4062306a36Sopenharmony_ci gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; /* gpio102 */ 4162306a36Sopenharmony_ci linux,code = <KEY_F1>; 4262306a36Sopenharmony_ci wakeup-source; 4362306a36Sopenharmony_ci }; 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci key_f2 { 4662306a36Sopenharmony_ci label = "f2"; 4762306a36Sopenharmony_ci gpios = <&gpio4 7 GPIO_ACTIVE_LOW>; /* gpio103 */ 4862306a36Sopenharmony_ci linux,code = <KEY_F2>; 4962306a36Sopenharmony_ci wakeup-source; 5062306a36Sopenharmony_ci }; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci key_f3 { 5362306a36Sopenharmony_ci label = "f3"; 5462306a36Sopenharmony_ci gpios = <&gpio4 8 GPIO_ACTIVE_LOW>; /* gpio104 */ 5562306a36Sopenharmony_ci linux,code = <KEY_F3>; 5662306a36Sopenharmony_ci wakeup-source; 5762306a36Sopenharmony_ci }; 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci key_f4 { 6062306a36Sopenharmony_ci label = "f4"; 6162306a36Sopenharmony_ci gpios = <&gpio4 9 GPIO_ACTIVE_LOW>; /* gpio105 */ 6262306a36Sopenharmony_ci linux,code = <KEY_F4>; 6362306a36Sopenharmony_ci wakeup-source; 6462306a36Sopenharmony_ci }; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci key_left { 6762306a36Sopenharmony_ci label = "left"; 6862306a36Sopenharmony_ci gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* gpio106 */ 6962306a36Sopenharmony_ci linux,code = <KEY_LEFT>; 7062306a36Sopenharmony_ci wakeup-source; 7162306a36Sopenharmony_ci }; 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci key_right { 7462306a36Sopenharmony_ci label = "right"; 7562306a36Sopenharmony_ci gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; /* gpio107 */ 7662306a36Sopenharmony_ci linux,code = <KEY_RIGHT>; 7762306a36Sopenharmony_ci wakeup-source; 7862306a36Sopenharmony_ci }; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci key_up { 8162306a36Sopenharmony_ci label = "up"; 8262306a36Sopenharmony_ci gpios = <&gpio4 12 GPIO_ACTIVE_LOW>; /* gpio108 */ 8362306a36Sopenharmony_ci linux,code = <KEY_UP>; 8462306a36Sopenharmony_ci wakeup-source; 8562306a36Sopenharmony_ci }; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci key_down { 8862306a36Sopenharmony_ci label = "down"; 8962306a36Sopenharmony_ci gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; /* gpio109 */ 9062306a36Sopenharmony_ci linux,code = <KEY_DOWN>; 9162306a36Sopenharmony_ci wakeup-source; 9262306a36Sopenharmony_ci }; 9362306a36Sopenharmony_ci }; 9462306a36Sopenharmony_ci}; 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci&gpmc { 9762306a36Sopenharmony_ci ranges = <0 0 0x30000000 0x1000000>, /* CS0 space, 16MB */ 9862306a36Sopenharmony_ci <1 0 0x08000000 0x1000000>; /* CS1 space, 16MB */ 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci nand@0,0 { 10162306a36Sopenharmony_ci compatible = "ti,omap2-nand"; 10262306a36Sopenharmony_ci reg = <0 0 4>; /* CS0, offset 0, IO size 4 */ 10362306a36Sopenharmony_ci interrupt-parent = <&gpmc>; 10462306a36Sopenharmony_ci interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */ 10562306a36Sopenharmony_ci <1 IRQ_TYPE_NONE>; /* termcount */ 10662306a36Sopenharmony_ci linux,mtd-name = "micron,nand"; 10762306a36Sopenharmony_ci nand-bus-width = <16>; 10862306a36Sopenharmony_ci gpmc,device-width = <2>; 10962306a36Sopenharmony_ci ti,nand-ecc-opt = "bch8"; 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci gpmc,sync-clk-ps = <0>; 11262306a36Sopenharmony_ci gpmc,cs-on-ns = <0>; 11362306a36Sopenharmony_ci gpmc,cs-rd-off-ns = <44>; 11462306a36Sopenharmony_ci gpmc,cs-wr-off-ns = <44>; 11562306a36Sopenharmony_ci gpmc,adv-on-ns = <6>; 11662306a36Sopenharmony_ci gpmc,adv-rd-off-ns = <34>; 11762306a36Sopenharmony_ci gpmc,adv-wr-off-ns = <44>; 11862306a36Sopenharmony_ci gpmc,we-off-ns = <40>; 11962306a36Sopenharmony_ci gpmc,oe-off-ns = <54>; 12062306a36Sopenharmony_ci gpmc,access-ns = <64>; 12162306a36Sopenharmony_ci gpmc,rd-cycle-ns = <82>; 12262306a36Sopenharmony_ci gpmc,wr-cycle-ns = <82>; 12362306a36Sopenharmony_ci gpmc,wr-access-ns = <40>; 12462306a36Sopenharmony_ci gpmc,wr-data-mux-bus-ns = <0>; 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci #address-cells = <1>; 12762306a36Sopenharmony_ci #size-cells = <1>; 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci partition@0 { 13062306a36Sopenharmony_ci label = "X-Loader"; 13162306a36Sopenharmony_ci reg = <0 0x80000>; 13262306a36Sopenharmony_ci }; 13362306a36Sopenharmony_ci partition@80000 { 13462306a36Sopenharmony_ci label = "U-Boot"; 13562306a36Sopenharmony_ci reg = <0x80000 0x140000>; 13662306a36Sopenharmony_ci }; 13762306a36Sopenharmony_ci partition@1c0000 { 13862306a36Sopenharmony_ci label = "Environment"; 13962306a36Sopenharmony_ci reg = <0x1c0000 0x40000>; 14062306a36Sopenharmony_ci }; 14162306a36Sopenharmony_ci partition@200000 { 14262306a36Sopenharmony_ci label = "Kernel"; 14362306a36Sopenharmony_ci reg = <0x200000 0x1e00000>; 14462306a36Sopenharmony_ci }; 14562306a36Sopenharmony_ci partition@2000000 { 14662306a36Sopenharmony_ci label = "Filesystem"; 14762306a36Sopenharmony_ci reg = <0x2000000 0x6000000>; 14862306a36Sopenharmony_ci }; 14962306a36Sopenharmony_ci }; 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci ethernet@gpmc { 15262306a36Sopenharmony_ci interrupt-parent = <&gpio5>; 15362306a36Sopenharmony_ci interrupts = <24 IRQ_TYPE_LEVEL_LOW>; 15462306a36Sopenharmony_ci reg = <1 0 0xff>; 15562306a36Sopenharmony_ci }; 15662306a36Sopenharmony_ci}; 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ci&i2c1 { 15962306a36Sopenharmony_ci clock-frequency = <2600000>; 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci twl: twl@48 { 16262306a36Sopenharmony_ci reg = <0x48>; 16362306a36Sopenharmony_ci interrupts = <7>; /* SYS_NIRQ cascaded to intc */ 16462306a36Sopenharmony_ci interrupt-parent = <&intc>; 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci twl_power: power { 16762306a36Sopenharmony_ci compatible = "ti,twl4030-power-idle"; 16862306a36Sopenharmony_ci ti,use_poweroff; 16962306a36Sopenharmony_ci }; 17062306a36Sopenharmony_ci }; 17162306a36Sopenharmony_ci}; 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci#include "twl4030.dtsi" 17462306a36Sopenharmony_ci#include "twl4030_omap3.dtsi" 17562306a36Sopenharmony_ci#include "omap3-panel-sharp-ls037v7dw01.dtsi" 17662306a36Sopenharmony_ci 17762306a36Sopenharmony_ci&backlight0 { 17862306a36Sopenharmony_ci gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>; 17962306a36Sopenharmony_ci}; 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ci&i2c2 { 18262306a36Sopenharmony_ci clock-frequency = <400000>; 18362306a36Sopenharmony_ci}; 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci&i2c3 { 18662306a36Sopenharmony_ci clock-frequency = <400000>; 18762306a36Sopenharmony_ci}; 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci/* tps61130rsa enabled by twl4030 regen */ 19062306a36Sopenharmony_ci&lcd_3v3 { 19162306a36Sopenharmony_ci regulator-always-on; 19262306a36Sopenharmony_ci}; 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci&lcd0 { 19562306a36Sopenharmony_ci enable-gpios = <&twl_gpio 15 GPIO_ACTIVE_HIGH>; /* lcd INI */ 19662306a36Sopenharmony_ci reset-gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>; /* gpio55, lcd RESB */ 19762306a36Sopenharmony_ci mode-gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>; /* gpio56, lcd MO */ 19862306a36Sopenharmony_ci}; 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci&mcspi1 { 20162306a36Sopenharmony_ci tsc2046@0 { 20262306a36Sopenharmony_ci interrupt-parent = <&gpio2>; 20362306a36Sopenharmony_ci interrupts = <22 0>; /* gpio54 */ 20462306a36Sopenharmony_ci pendown-gpio = <&gpio2 22 GPIO_ACTIVE_HIGH>; 20562306a36Sopenharmony_ci }; 20662306a36Sopenharmony_ci}; 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ci&mmc1 { 20962306a36Sopenharmony_ci /* See 35xx errata 2.1.1.128 in SPRZ278F */ 21062306a36Sopenharmony_ci compatible = "ti,omap3-pre-es3-hsmmc"; 21162306a36Sopenharmony_ci vmmc-supply = <&vmmc1>; 21262306a36Sopenharmony_ci bus-width = <4>; 21362306a36Sopenharmony_ci pinctrl-names = "default"; 21462306a36Sopenharmony_ci pinctrl-0 = <&mmc1_pins>; 21562306a36Sopenharmony_ci}; 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci&mmc2 { 21862306a36Sopenharmony_ci status = "disabled"; 21962306a36Sopenharmony_ci}; 22062306a36Sopenharmony_ci 22162306a36Sopenharmony_ci&mmc3 { 22262306a36Sopenharmony_ci status = "disabled"; 22362306a36Sopenharmony_ci}; 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ci&omap3_pmx_core { 22662306a36Sopenharmony_ci gpio_key_pins: gpio-key-pins { 22762306a36Sopenharmony_ci pinctrl-single,pins = < 22862306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT | MUX_MODE4) /* cam_d2.gpio_101 */ 22962306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT | MUX_MODE4) /* cam_d3.gpio_102 */ 23062306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT | MUX_MODE4) /* cam_d4.gpio_103 */ 23162306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT | MUX_MODE4) /* cam_d5.gpio_104 */ 23262306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE4) /* cam_d6.gpio_105 */ 23362306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE4) /* cam_d7.gpio_106 */ 23462306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE4) /* cam_d8.gpio_107 */ 23562306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE4) /* cam_d9.gpio_108 */ 23662306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4) /* cam_d10.gpio_109 */ 23762306a36Sopenharmony_ci >; 23862306a36Sopenharmony_ci }; 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ci musb_pins: musb-pins { 24162306a36Sopenharmony_ci pinctrl-single,pins = < 24262306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21a2, PIN_INPUT | MUX_MODE0) /* hsusb0_clk.hsusb0_clk */ 24362306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21aa, PIN_INPUT | MUX_MODE0) /* hsusb0_data0.hsusb0_data0 */ 24462306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21ac, PIN_INPUT | MUX_MODE0) /* hsusb0_data1.hsusb0_data1 */ 24562306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21ae, PIN_INPUT | MUX_MODE0) /* hsusb0_data2.hsusb0_data2 */ 24662306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21b0, PIN_INPUT | MUX_MODE0) /* hsusb0_data3.hsusb0_data3 */ 24762306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21b2, PIN_INPUT | MUX_MODE0) /* hsusb0_data4.hsusb0_data4 */ 24862306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21b4, PIN_INPUT | MUX_MODE0) /* hsusb0_data5.hsusb0_data5 */ 24962306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21b6, PIN_INPUT | MUX_MODE0) /* hsusb0_data6.hsusb0_data6 */ 25062306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21b8, PIN_INPUT | MUX_MODE0) /* hsusb0_data7.hsusb0_data7 */ 25162306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21a6, PIN_INPUT | MUX_MODE0) /* hsusb0_dir.hsusb0_dir */ 25262306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21a8, PIN_INPUT | MUX_MODE0) /* hsusb0_nxt.hsusb0_nxt */ 25362306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21a4, PIN_OUTPUT | MUX_MODE0) /* hsusb0_stp.hsusb0_stp */ 25462306a36Sopenharmony_ci >; 25562306a36Sopenharmony_ci }; 25662306a36Sopenharmony_ci 25762306a36Sopenharmony_ci mmc1_pins: mmc1-pins { 25862306a36Sopenharmony_ci pinctrl-single,pins = < 25962306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.mmc1_clk */ 26062306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.mmc1_cmd */ 26162306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.mmc1_dat0 */ 26262306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x214A, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.mmc1_dat1 */ 26362306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x214C, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.mmc1_dat2 */ 26462306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.mmc1_dat3 */ 26562306a36Sopenharmony_ci >; 26662306a36Sopenharmony_ci }; 26762306a36Sopenharmony_ci}; 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ci&twl_keypad { 27062306a36Sopenharmony_ci linux,keymap = <MATRIX_KEY(0, 0, KEY_1) 27162306a36Sopenharmony_ci MATRIX_KEY(0, 1, KEY_2) 27262306a36Sopenharmony_ci MATRIX_KEY(0, 2, KEY_3) 27362306a36Sopenharmony_ci MATRIX_KEY(1, 0, KEY_4) 27462306a36Sopenharmony_ci MATRIX_KEY(1, 1, KEY_5) 27562306a36Sopenharmony_ci MATRIX_KEY(1, 2, KEY_6) 27662306a36Sopenharmony_ci MATRIX_KEY(1, 3, KEY_F5) 27762306a36Sopenharmony_ci MATRIX_KEY(2, 0, KEY_7) 27862306a36Sopenharmony_ci MATRIX_KEY(2, 1, KEY_8) 27962306a36Sopenharmony_ci MATRIX_KEY(2, 2, KEY_9) 28062306a36Sopenharmony_ci MATRIX_KEY(2, 3, KEY_F6) 28162306a36Sopenharmony_ci MATRIX_KEY(3, 0, KEY_F7) 28262306a36Sopenharmony_ci MATRIX_KEY(3, 1, KEY_0) 28362306a36Sopenharmony_ci MATRIX_KEY(3, 2, KEY_F8) 28462306a36Sopenharmony_ci MATRIX_KEY(5, 4, KEY_RESERVED) 28562306a36Sopenharmony_ci MATRIX_KEY(4, 4, KEY_VOLUMEUP) 28662306a36Sopenharmony_ci MATRIX_KEY(5, 5, KEY_VOLUMEDOWN)>; 28762306a36Sopenharmony_ci}; 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ci&uart3 { 29062306a36Sopenharmony_ci interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>; 29162306a36Sopenharmony_ci}; 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci&usb_otg_hs { 29462306a36Sopenharmony_ci pinctrl-names = "default"; 29562306a36Sopenharmony_ci pinctrl-0 = <&musb_pins>; 29662306a36Sopenharmony_ci interface-type = <0>; 29762306a36Sopenharmony_ci usb-phy = <&usb2_phy>; 29862306a36Sopenharmony_ci mode = <3>; 29962306a36Sopenharmony_ci power = <50>; 30062306a36Sopenharmony_ci}; 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ci&vaux1 { 30362306a36Sopenharmony_ci /* Needed for ads7846 */ 30462306a36Sopenharmony_ci regulator-name = "vcc"; 30562306a36Sopenharmony_ci}; 306