1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only 2*f126890aSEmmanuel Vadot/* 3*f126890aSEmmanuel Vadot * Copyright (C) 2014 Florian Vaussard, EPFL Mobots group 4*f126890aSEmmanuel Vadot */ 5*f126890aSEmmanuel Vadot 6*f126890aSEmmanuel Vadot#include "omap443x.dtsi" 7*f126890aSEmmanuel Vadot#include "omap4-mcpdm.dtsi" 8*f126890aSEmmanuel Vadot 9*f126890aSEmmanuel Vadot/ { 10*f126890aSEmmanuel Vadot model = "Gumstix Duovero"; 11*f126890aSEmmanuel Vadot compatible = "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4"; 12*f126890aSEmmanuel Vadot 13*f126890aSEmmanuel Vadot chosen { 14*f126890aSEmmanuel Vadot stdout-path = &uart3; 15*f126890aSEmmanuel Vadot }; 16*f126890aSEmmanuel Vadot 17*f126890aSEmmanuel Vadot memory@80000000 { 18*f126890aSEmmanuel Vadot device_type = "memory"; 19*f126890aSEmmanuel Vadot reg = <0x80000000 0x40000000>; /* 1 GB */ 20*f126890aSEmmanuel Vadot }; 21*f126890aSEmmanuel Vadot 22*f126890aSEmmanuel Vadot sound { 23*f126890aSEmmanuel Vadot compatible = "ti,abe-twl6040"; 24*f126890aSEmmanuel Vadot ti,model = "DuoVero"; 25*f126890aSEmmanuel Vadot 26*f126890aSEmmanuel Vadot ti,mclk-freq = <38400000>; 27*f126890aSEmmanuel Vadot 28*f126890aSEmmanuel Vadot ti,mcpdm = <&mcpdm>; 29*f126890aSEmmanuel Vadot 30*f126890aSEmmanuel Vadot ti,twl6040 = <&twl6040>; 31*f126890aSEmmanuel Vadot 32*f126890aSEmmanuel Vadot /* Audio routing */ 33*f126890aSEmmanuel Vadot ti,audio-routing = 34*f126890aSEmmanuel Vadot "Headset Stereophone", "HSOL", 35*f126890aSEmmanuel Vadot "Headset Stereophone", "HSOR", 36*f126890aSEmmanuel Vadot "HSMIC", "Headset Mic", 37*f126890aSEmmanuel Vadot "Headset Mic", "Headset Mic Bias"; 38*f126890aSEmmanuel Vadot }; 39*f126890aSEmmanuel Vadot 40*f126890aSEmmanuel Vadot /* HS USB Host PHY on PORT 1 */ 41*f126890aSEmmanuel Vadot hsusb1_phy: hsusb1_phy { 42*f126890aSEmmanuel Vadot compatible = "usb-nop-xceiv"; 43*f126890aSEmmanuel Vadot reset-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>; /* gpio_62 */ 44*f126890aSEmmanuel Vadot #phy-cells = <0>; 45*f126890aSEmmanuel Vadot 46*f126890aSEmmanuel Vadot pinctrl-names = "default"; 47*f126890aSEmmanuel Vadot pinctrl-0 = <&hsusb1phy_pins>; 48*f126890aSEmmanuel Vadot 49*f126890aSEmmanuel Vadot clocks = <&auxclk3_ck>; 50*f126890aSEmmanuel Vadot clock-names = "main_clk"; 51*f126890aSEmmanuel Vadot clock-frequency = <19200000>; 52*f126890aSEmmanuel Vadot }; 53*f126890aSEmmanuel Vadot 54*f126890aSEmmanuel Vadot /* regulator for w2cbw0015 on sdio5 */ 55*f126890aSEmmanuel Vadot w2cbw0015_vmmc: w2cbw0015_vmmc { 56*f126890aSEmmanuel Vadot pinctrl-names = "default"; 57*f126890aSEmmanuel Vadot pinctrl-0 = <&w2cbw0015_pins>; 58*f126890aSEmmanuel Vadot compatible = "regulator-fixed"; 59*f126890aSEmmanuel Vadot regulator-name = "w2cbw0015"; 60*f126890aSEmmanuel Vadot regulator-min-microvolt = <3000000>; 61*f126890aSEmmanuel Vadot regulator-max-microvolt = <3000000>; 62*f126890aSEmmanuel Vadot gpio = <&gpio2 11 GPIO_ACTIVE_LOW>; /* gpio_43 */ 63*f126890aSEmmanuel Vadot startup-delay-us = <70000>; 64*f126890aSEmmanuel Vadot enable-active-high; 65*f126890aSEmmanuel Vadot regulator-boot-on; 66*f126890aSEmmanuel Vadot }; 67*f126890aSEmmanuel Vadot}; 68*f126890aSEmmanuel Vadot 69*f126890aSEmmanuel Vadot&omap4_pmx_core { 70*f126890aSEmmanuel Vadot pinctrl-names = "default"; 71*f126890aSEmmanuel Vadot pinctrl-0 = < 72*f126890aSEmmanuel Vadot &twl6040_pins 73*f126890aSEmmanuel Vadot &hsusbb1_pins 74*f126890aSEmmanuel Vadot >; 75*f126890aSEmmanuel Vadot 76*f126890aSEmmanuel Vadot twl6040_pins: twl6040-pins { 77*f126890aSEmmanuel Vadot pinctrl-single,pins = < 78*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x166, PIN_OUTPUT | MUX_MODE3) /* usbb2_ulpitll_nxt.gpio_160 */ 79*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x1a0, PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */ 80*f126890aSEmmanuel Vadot >; 81*f126890aSEmmanuel Vadot }; 82*f126890aSEmmanuel Vadot 83*f126890aSEmmanuel Vadot mcbsp1_pins: mcbsp1-pins { 84*f126890aSEmmanuel Vadot pinctrl-single,pins = < 85*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0fe, PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */ 86*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x100, PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */ 87*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x102, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */ 88*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x104, PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */ 89*f126890aSEmmanuel Vadot >; 90*f126890aSEmmanuel Vadot }; 91*f126890aSEmmanuel Vadot 92*f126890aSEmmanuel Vadot hsusbb1_pins: hsusbb1-pins { 93*f126890aSEmmanuel Vadot pinctrl-single,pins = < 94*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0c2, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */ 95*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0c4, PIN_OUTPUT | MUX_MODE4) /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */ 96*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0c6, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */ 97*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0c8, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */ 98*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0ca, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */ 99*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0cc, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */ 100*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0ce, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */ 101*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0d0, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */ 102*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0d2, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */ 103*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0d4, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */ 104*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0d6, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */ 105*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0d8, PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */ 106*f126890aSEmmanuel Vadot >; 107*f126890aSEmmanuel Vadot }; 108*f126890aSEmmanuel Vadot 109*f126890aSEmmanuel Vadot hsusb1phy_pins: hsusb1phy-pins { 110*f126890aSEmmanuel Vadot pinctrl-single,pins = < 111*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x08c, PIN_OUTPUT | MUX_MODE3) /* gpmc_wait1.gpio_62 */ 112*f126890aSEmmanuel Vadot >; 113*f126890aSEmmanuel Vadot }; 114*f126890aSEmmanuel Vadot 115*f126890aSEmmanuel Vadot w2cbw0015_pins: w2cbw0015-pins { 116*f126890aSEmmanuel Vadot pinctrl-single,pins = < 117*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x066, PIN_OUTPUT | MUX_MODE3) /* gpmc_a19.gpio_43 */ 118*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */ 119*f126890aSEmmanuel Vadot >; 120*f126890aSEmmanuel Vadot }; 121*f126890aSEmmanuel Vadot 122*f126890aSEmmanuel Vadot i2c1_pins: i2c1-pins { 123*f126890aSEmmanuel Vadot pinctrl-single,pins = < 124*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ 125*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ 126*f126890aSEmmanuel Vadot >; 127*f126890aSEmmanuel Vadot }; 128*f126890aSEmmanuel Vadot 129*f126890aSEmmanuel Vadot i2c4_pins: i2c4-pins { 130*f126890aSEmmanuel Vadot pinctrl-single,pins = < 131*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */ 132*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */ 133*f126890aSEmmanuel Vadot >; 134*f126890aSEmmanuel Vadot }; 135*f126890aSEmmanuel Vadot 136*f126890aSEmmanuel Vadot mmc1_pins: mmc1-pins { 137*f126890aSEmmanuel Vadot pinctrl-single,pins = < 138*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0e2, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */ 139*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0e4, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmcc1_cmd */ 140*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0e6, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmcc1_dat0 */ 141*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0e8, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */ 142*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0ea, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */ 143*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x0ec, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */ 144*f126890aSEmmanuel Vadot >; 145*f126890aSEmmanuel Vadot }; 146*f126890aSEmmanuel Vadot 147*f126890aSEmmanuel Vadot mmc5_pins: mmc5-pins { 148*f126890aSEmmanuel Vadot pinctrl-single,pins = < 149*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk */ 150*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmcc5_cmd */ 151*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmcc5_dat0 */ 152*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1 */ 153*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2 */ 154*f126890aSEmmanuel Vadot OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3 */ 155*f126890aSEmmanuel Vadot >; 156*f126890aSEmmanuel Vadot }; 157*f126890aSEmmanuel Vadot}; 158*f126890aSEmmanuel Vadot 159*f126890aSEmmanuel Vadot/* PMIC */ 160*f126890aSEmmanuel Vadot&i2c1 { 161*f126890aSEmmanuel Vadot pinctrl-names = "default"; 162*f126890aSEmmanuel Vadot pinctrl-0 = <&i2c1_pins>; 163*f126890aSEmmanuel Vadot 164*f126890aSEmmanuel Vadot clock-frequency = <400000>; 165*f126890aSEmmanuel Vadot 166*f126890aSEmmanuel Vadot twl: twl@48 { 167*f126890aSEmmanuel Vadot reg = <0x48>; 168*f126890aSEmmanuel Vadot interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */ 169*f126890aSEmmanuel Vadot }; 170*f126890aSEmmanuel Vadot 171*f126890aSEmmanuel Vadot twl6040: twl@4b { 172*f126890aSEmmanuel Vadot compatible = "ti,twl6040"; 173*f126890aSEmmanuel Vadot #clock-cells = <0>; 174*f126890aSEmmanuel Vadot reg = <0x4b>; 175*f126890aSEmmanuel Vadot interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */ 176*f126890aSEmmanuel Vadot ti,audpwron-gpio = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* gpio_160 */ 177*f126890aSEmmanuel Vadot 178*f126890aSEmmanuel Vadot vio-supply = <&v1v8>; 179*f126890aSEmmanuel Vadot v2v1-supply = <&v2v1>; 180*f126890aSEmmanuel Vadot enable-active-high; 181*f126890aSEmmanuel Vadot }; 182*f126890aSEmmanuel Vadot}; 183*f126890aSEmmanuel Vadot 184*f126890aSEmmanuel Vadot#include "twl6030.dtsi" 185*f126890aSEmmanuel Vadot#include "twl6030_omap4.dtsi" 186*f126890aSEmmanuel Vadot 187*f126890aSEmmanuel Vadot/* on-board bluetooth / WiFi module */ 188*f126890aSEmmanuel Vadot&i2c4 { 189*f126890aSEmmanuel Vadot pinctrl-names = "default"; 190*f126890aSEmmanuel Vadot pinctrl-0 = <&i2c4_pins>; 191*f126890aSEmmanuel Vadot 192*f126890aSEmmanuel Vadot clock-frequency = <400000>; 193*f126890aSEmmanuel Vadot}; 194*f126890aSEmmanuel Vadot 195*f126890aSEmmanuel Vadot&mcbsp1 { 196*f126890aSEmmanuel Vadot pinctrl-names = "default"; 197*f126890aSEmmanuel Vadot pinctrl-0 = <&mcbsp1_pins>; 198*f126890aSEmmanuel Vadot status = "okay"; 199*f126890aSEmmanuel Vadot}; 200*f126890aSEmmanuel Vadot 201*f126890aSEmmanuel Vadot&mmc1 { 202*f126890aSEmmanuel Vadot pinctrl-names = "default"; 203*f126890aSEmmanuel Vadot pinctrl-0 = <&mmc1_pins>; 204*f126890aSEmmanuel Vadot 205*f126890aSEmmanuel Vadot vmmc-supply = <&vmmc>; 206*f126890aSEmmanuel Vadot ti,bus-width = <4>; 207*f126890aSEmmanuel Vadot ti,non-removable; /* FIXME: use PMIC_MMC detect */ 208*f126890aSEmmanuel Vadot}; 209*f126890aSEmmanuel Vadot 210*f126890aSEmmanuel Vadot&mmc2 { 211*f126890aSEmmanuel Vadot status = "disabled"; 212*f126890aSEmmanuel Vadot}; 213*f126890aSEmmanuel Vadot 214*f126890aSEmmanuel Vadot/* mmc3 is available to the expansion board */ 215*f126890aSEmmanuel Vadot 216*f126890aSEmmanuel Vadot&mmc4 { 217*f126890aSEmmanuel Vadot status = "disabled"; 218*f126890aSEmmanuel Vadot}; 219*f126890aSEmmanuel Vadot 220*f126890aSEmmanuel Vadot/* on-board WiFi module */ 221*f126890aSEmmanuel Vadot&mmc5 { 222*f126890aSEmmanuel Vadot pinctrl-names = "default"; 223*f126890aSEmmanuel Vadot pinctrl-0 = <&mmc5_pins>; 224*f126890aSEmmanuel Vadot 225*f126890aSEmmanuel Vadot vmmc-supply = <&w2cbw0015_vmmc>; 226*f126890aSEmmanuel Vadot ti,bus-width = <4>; 227*f126890aSEmmanuel Vadot ti,non-removable; 228*f126890aSEmmanuel Vadot cap-power-off-card; 229*f126890aSEmmanuel Vadot keep-power-in-suspend; 230*f126890aSEmmanuel Vadot}; 231*f126890aSEmmanuel Vadot 232*f126890aSEmmanuel Vadot&twl_usb_comparator { 233*f126890aSEmmanuel Vadot usb-supply = <&vusb>; 234*f126890aSEmmanuel Vadot}; 235*f126890aSEmmanuel Vadot 236*f126890aSEmmanuel Vadot&usb_otg_hs { 237*f126890aSEmmanuel Vadot interface-type = <1>; 238*f126890aSEmmanuel Vadot mode = <3>; 239*f126890aSEmmanuel Vadot power = <50>; 240*f126890aSEmmanuel Vadot}; 241*f126890aSEmmanuel Vadot 242*f126890aSEmmanuel Vadot&usbhshost { 243*f126890aSEmmanuel Vadot port1-mode = "ehci-phy"; 244*f126890aSEmmanuel Vadot}; 245*f126890aSEmmanuel Vadot 246*f126890aSEmmanuel Vadot&usbhsehci { 247*f126890aSEmmanuel Vadot phys = <&hsusb1_phy>; 248*f126890aSEmmanuel Vadot}; 249*f126890aSEmmanuel Vadot 250