162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2012 Florian Vaussard, EPFL Mobots group 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci/* 762306a36Sopenharmony_ci * The Gumstix Overo must be combined with an expansion board. 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/ { 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci memory@0 { 1362306a36Sopenharmony_ci device_type = "memory"; 1462306a36Sopenharmony_ci reg = <0 0>; 1562306a36Sopenharmony_ci }; 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci led-controller { 1862306a36Sopenharmony_ci compatible = "pwm-leds"; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci led-1 { 2162306a36Sopenharmony_ci label = "overo:blue:COM"; 2262306a36Sopenharmony_ci pwms = <&twl_pwmled 1 7812500>; 2362306a36Sopenharmony_ci max-brightness = <127>; 2462306a36Sopenharmony_ci linux,default-trigger = "mmc0"; 2562306a36Sopenharmony_ci }; 2662306a36Sopenharmony_ci }; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci sound { 2962306a36Sopenharmony_ci compatible = "ti,omap-twl4030"; 3062306a36Sopenharmony_ci ti,model = "overo"; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci ti,mcbsp = <&mcbsp2>; 3362306a36Sopenharmony_ci }; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci /* HS USB Port 2 Power */ 3662306a36Sopenharmony_ci hsusb2_power: hsusb2_power_reg { 3762306a36Sopenharmony_ci compatible = "regulator-fixed"; 3862306a36Sopenharmony_ci regulator-name = "hsusb2_vbus"; 3962306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 4062306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 4162306a36Sopenharmony_ci gpio = <&gpio6 8 GPIO_ACTIVE_HIGH>; /* gpio_168: vbus enable */ 4262306a36Sopenharmony_ci startup-delay-us = <70000>; 4362306a36Sopenharmony_ci enable-active-high; 4462306a36Sopenharmony_ci }; 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci /* HS USB Host PHY on PORT 2 */ 4762306a36Sopenharmony_ci hsusb2_phy: hsusb2-phy-pins { 4862306a36Sopenharmony_ci compatible = "usb-nop-xceiv"; 4962306a36Sopenharmony_ci reset-gpios = <&gpio6 23 GPIO_ACTIVE_LOW>; /* gpio_183 */ 5062306a36Sopenharmony_ci vcc-supply = <&hsusb2_power>; 5162306a36Sopenharmony_ci #phy-cells = <0>; 5262306a36Sopenharmony_ci }; 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci /* Regulator to trigger the nPoweron signal of the Wifi module */ 5562306a36Sopenharmony_ci w3cbw003c_npoweron: regulator-w3cbw003c-npoweron { 5662306a36Sopenharmony_ci compatible = "regulator-fixed"; 5762306a36Sopenharmony_ci regulator-name = "regulator-w3cbw003c-npoweron"; 5862306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 5962306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 6062306a36Sopenharmony_ci gpio = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* gpio_54: nPoweron */ 6162306a36Sopenharmony_ci enable-active-high; 6262306a36Sopenharmony_ci }; 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci /* Regulator to trigger the nReset signal of the Wifi module */ 6562306a36Sopenharmony_ci w3cbw003c_wifi_nreset: regulator-w3cbw003c-wifi-nreset { 6662306a36Sopenharmony_ci pinctrl-names = "default"; 6762306a36Sopenharmony_ci pinctrl-0 = <&w3cbw003c_pins &w3cbw003c_2_pins>; 6862306a36Sopenharmony_ci compatible = "regulator-fixed"; 6962306a36Sopenharmony_ci regulator-name = "regulator-w3cbw003c-wifi-nreset"; 7062306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 7162306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 7262306a36Sopenharmony_ci gpio = <&gpio1 16 GPIO_ACTIVE_HIGH>; /* gpio_16: WiFi nReset */ 7362306a36Sopenharmony_ci startup-delay-us = <10000>; 7462306a36Sopenharmony_ci }; 7562306a36Sopenharmony_ci}; 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci&omap3_pmx_core { 7862306a36Sopenharmony_ci pinctrl-names = "default"; 7962306a36Sopenharmony_ci pinctrl-0 = < 8062306a36Sopenharmony_ci &hsusb2_pins 8162306a36Sopenharmony_ci >; 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci uart2_pins: uart2-pins { 8462306a36Sopenharmony_ci pinctrl-single,pins = < 8562306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x216c, PIN_INPUT | MUX_MODE1) /* mcbsp3_dx.uart2_cts */ 8662306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x216e, PIN_OUTPUT | MUX_MODE1) /* mcbsp3_dr.uart2_rts */ 8762306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2170, PIN_OUTPUT | MUX_MODE1) /* mcbsp3_clk.uart2_tx */ 8862306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2172, PIN_INPUT | MUX_MODE1) /* mcbsp3_fsx.uart2_rx */ 8962306a36Sopenharmony_ci >; 9062306a36Sopenharmony_ci }; 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci i2c1_pins: i2c1-pins { 9362306a36Sopenharmony_ci pinctrl-single,pins = < 9462306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */ 9562306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0) /* i2c1_sda.i2c1_sda */ 9662306a36Sopenharmony_ci >; 9762306a36Sopenharmony_ci }; 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci mmc1_pins: mmc1-pins { 10062306a36Sopenharmony_ci pinctrl-single,pins = < 10162306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */ 10262306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */ 10362306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */ 10462306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */ 10562306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */ 10662306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */ 10762306a36Sopenharmony_ci >; 10862306a36Sopenharmony_ci }; 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci mmc2_pins: mmc2-pins { 11162306a36Sopenharmony_ci pinctrl-single,pins = < 11262306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */ 11362306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */ 11462306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */ 11562306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */ 11662306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */ 11762306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */ 11862306a36Sopenharmony_ci >; 11962306a36Sopenharmony_ci }; 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci /* WiFi/BT combo */ 12262306a36Sopenharmony_ci w3cbw003c_pins: w3cbw003c-pins { 12362306a36Sopenharmony_ci pinctrl-single,pins = < 12462306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x20b4, PIN_OUTPUT | MUX_MODE4) /* gpmc_ncs3.gpio_54 */ 12562306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x219c, PIN_OUTPUT | MUX_MODE4) /* uart3_rts_sd.gpio_164 */ 12662306a36Sopenharmony_ci >; 12762306a36Sopenharmony_ci }; 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci hsusb2_pins: hsusb2-pins { 13062306a36Sopenharmony_ci pinctrl-single,pins = < 13162306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */ 13262306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */ 13362306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */ 13462306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */ 13562306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */ 13662306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */ 13762306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21be, PIN_OUTPUT | MUX_MODE4) /* i2c2_scl.gpio_168 */ 13862306a36Sopenharmony_ci OMAP3_CORE1_IOPAD(0x21c0, PIN_OUTPUT | MUX_MODE4) /* i2c2_sda.gpio_183 */ 13962306a36Sopenharmony_ci >; 14062306a36Sopenharmony_ci }; 14162306a36Sopenharmony_ci}; 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci&i2c1 { 14462306a36Sopenharmony_ci pinctrl-names = "default"; 14562306a36Sopenharmony_ci pinctrl-0 = <&i2c1_pins>; 14662306a36Sopenharmony_ci clock-frequency = <2600000>; 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci twl: twl@48 { 14962306a36Sopenharmony_ci reg = <0x48>; 15062306a36Sopenharmony_ci interrupts = <7>; /* SYS_NIRQ cascaded to intc */ 15162306a36Sopenharmony_ci interrupt-parent = <&intc>; 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci twl_audio: audio { 15462306a36Sopenharmony_ci compatible = "ti,twl4030-audio"; 15562306a36Sopenharmony_ci codec { 15662306a36Sopenharmony_ci }; 15762306a36Sopenharmony_ci }; 15862306a36Sopenharmony_ci }; 15962306a36Sopenharmony_ci}; 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci#include "twl4030.dtsi" 16262306a36Sopenharmony_ci#include "twl4030_omap3.dtsi" 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ci/* i2c2 pins are used for gpio */ 16562306a36Sopenharmony_ci&i2c2 { 16662306a36Sopenharmony_ci status = "disabled"; 16762306a36Sopenharmony_ci}; 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci/* on board microSD slot */ 17062306a36Sopenharmony_ci&mmc1 { 17162306a36Sopenharmony_ci pinctrl-names = "default"; 17262306a36Sopenharmony_ci pinctrl-0 = <&mmc1_pins>; 17362306a36Sopenharmony_ci vmmc-supply = <&vmmc1>; 17462306a36Sopenharmony_ci bus-width = <4>; 17562306a36Sopenharmony_ci}; 17662306a36Sopenharmony_ci 17762306a36Sopenharmony_ci/* optional on board WiFi */ 17862306a36Sopenharmony_ci&mmc2 { 17962306a36Sopenharmony_ci pinctrl-names = "default"; 18062306a36Sopenharmony_ci pinctrl-0 = <&mmc2_pins>; 18162306a36Sopenharmony_ci vmmc-supply = <&w3cbw003c_npoweron>; 18262306a36Sopenharmony_ci vqmmc-supply = <&w3cbw003c_wifi_nreset>; 18362306a36Sopenharmony_ci bus-width = <4>; 18462306a36Sopenharmony_ci cap-sdio-irq; 18562306a36Sopenharmony_ci non-removable; 18662306a36Sopenharmony_ci}; 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci&twl_gpio { 18962306a36Sopenharmony_ci ti,use-leds; 19062306a36Sopenharmony_ci}; 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci&usb_otg_hs { 19362306a36Sopenharmony_ci interface-type = <0>; 19462306a36Sopenharmony_ci usb-phy = <&usb2_phy>; 19562306a36Sopenharmony_ci phys = <&usb2_phy>; 19662306a36Sopenharmony_ci phy-names = "usb2-phy"; 19762306a36Sopenharmony_ci mode = <3>; 19862306a36Sopenharmony_ci power = <50>; 19962306a36Sopenharmony_ci}; 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci&usbhshost { 20262306a36Sopenharmony_ci port2-mode = "ehci-phy"; 20362306a36Sopenharmony_ci}; 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci&usbhsehci { 20662306a36Sopenharmony_ci phys = <0 &hsusb2_phy>; 20762306a36Sopenharmony_ci}; 20862306a36Sopenharmony_ci 20962306a36Sopenharmony_ci&uart2 { 21062306a36Sopenharmony_ci pinctrl-names = "default"; 21162306a36Sopenharmony_ci pinctrl-0 = <&uart2_pins>; 21262306a36Sopenharmony_ci}; 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci&mcbsp2 { 21562306a36Sopenharmony_ci status = "okay"; 21662306a36Sopenharmony_ci}; 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ci&gpmc { 21962306a36Sopenharmony_ci ranges = <0 0 0x30000000 0x1000000>, /* CS0 */ 22062306a36Sopenharmony_ci <4 0 0x2b000000 0x1000000>, /* CS4 */ 22162306a36Sopenharmony_ci <5 0 0x2c000000 0x1000000>; /* CS5 */ 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci nand@0,0 { 22462306a36Sopenharmony_ci compatible = "ti,omap2-nand"; 22562306a36Sopenharmony_ci linux,mtd-name = "micron,mt29c4g96maz"; 22662306a36Sopenharmony_ci reg = <0 0 4>; /* CS0, offset 0, IO size 4 */ 22762306a36Sopenharmony_ci interrupt-parent = <&gpmc>; 22862306a36Sopenharmony_ci interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */ 22962306a36Sopenharmony_ci <1 IRQ_TYPE_NONE>; /* termcount */ 23062306a36Sopenharmony_ci nand-bus-width = <16>; 23162306a36Sopenharmony_ci gpmc,device-width = <2>; 23262306a36Sopenharmony_ci ti,nand-ecc-opt = "bch8"; 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ci gpmc,sync-clk-ps = <0>; 23562306a36Sopenharmony_ci gpmc,cs-on-ns = <0>; 23662306a36Sopenharmony_ci gpmc,cs-rd-off-ns = <44>; 23762306a36Sopenharmony_ci gpmc,cs-wr-off-ns = <44>; 23862306a36Sopenharmony_ci gpmc,adv-on-ns = <6>; 23962306a36Sopenharmony_ci gpmc,adv-rd-off-ns = <34>; 24062306a36Sopenharmony_ci gpmc,adv-wr-off-ns = <44>; 24162306a36Sopenharmony_ci gpmc,we-off-ns = <40>; 24262306a36Sopenharmony_ci gpmc,oe-off-ns = <54>; 24362306a36Sopenharmony_ci gpmc,access-ns = <64>; 24462306a36Sopenharmony_ci gpmc,rd-cycle-ns = <82>; 24562306a36Sopenharmony_ci gpmc,wr-cycle-ns = <82>; 24662306a36Sopenharmony_ci gpmc,wr-access-ns = <40>; 24762306a36Sopenharmony_ci gpmc,wr-data-mux-bus-ns = <0>; 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_ci #address-cells = <1>; 25062306a36Sopenharmony_ci #size-cells = <1>; 25162306a36Sopenharmony_ci 25262306a36Sopenharmony_ci partition@0 { 25362306a36Sopenharmony_ci label = "SPL"; 25462306a36Sopenharmony_ci reg = <0 0x80000>; /* 512KiB */ 25562306a36Sopenharmony_ci }; 25662306a36Sopenharmony_ci partition@80000 { 25762306a36Sopenharmony_ci label = "U-Boot"; 25862306a36Sopenharmony_ci reg = <0x80000 0x1C0000>; /* 1792KiB */ 25962306a36Sopenharmony_ci }; 26062306a36Sopenharmony_ci partition@1c0000 { 26162306a36Sopenharmony_ci label = "Environment"; 26262306a36Sopenharmony_ci reg = <0x240000 0x40000>; /* 256KiB */ 26362306a36Sopenharmony_ci }; 26462306a36Sopenharmony_ci partition@280000 { 26562306a36Sopenharmony_ci label = "Kernel"; 26662306a36Sopenharmony_ci reg = <0x280000 0x800000>; /* 8192KiB */ 26762306a36Sopenharmony_ci }; 26862306a36Sopenharmony_ci partition@780000 { 26962306a36Sopenharmony_ci label = "Filesystem"; 27062306a36Sopenharmony_ci reg = <0xA80000 0>; 27162306a36Sopenharmony_ci /* HACK: MTDPART_SIZ_FULL=0 so fill to end */ 27262306a36Sopenharmony_ci }; 27362306a36Sopenharmony_ci }; 27462306a36Sopenharmony_ci}; 275