Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright (C) 2014 Florian Vaussard, EPFL Mobots group
0004  */
0005 
0006 #include "omap443x.dtsi"
0007 #include "omap4-mcpdm.dtsi"
0008 
0009 / {
0010         model = "Gumstix Duovero";
0011         compatible = "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4";
0012 
0013         chosen {
0014                 stdout-path = &uart3;
0015         };
0016 
0017         memory@80000000 {
0018                 device_type = "memory";
0019                 reg = <0x80000000 0x40000000>; /* 1 GB */
0020         };
0021 
0022         sound {
0023                 compatible = "ti,abe-twl6040";
0024                 ti,model = "DuoVero";
0025 
0026                 ti,mclk-freq = <38400000>;
0027 
0028                 ti,mcpdm = <&mcpdm>;
0029 
0030                 ti,twl6040 = <&twl6040>;
0031 
0032                 /* Audio routing */
0033                 ti,audio-routing =
0034                         "Headset Stereophone", "HSOL",
0035                         "Headset Stereophone", "HSOR",
0036                         "HSMIC", "Headset Mic",
0037                         "Headset Mic", "Headset Mic Bias";
0038         };
0039 
0040         /* HS USB Host PHY on PORT 1 */
0041         hsusb1_phy: hsusb1_phy {
0042                 compatible = "usb-nop-xceiv";
0043                 reset-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;      /* gpio_62 */
0044                 #phy-cells = <0>;
0045 
0046                 pinctrl-names = "default";
0047                 pinctrl-0 = <&hsusb1phy_pins>;
0048 
0049                 clocks = <&auxclk3_ck>;
0050                 clock-names = "main_clk";
0051                 clock-frequency = <19200000>;
0052         };
0053 
0054         /* regulator for w2cbw0015 on sdio5 */
0055         w2cbw0015_vmmc: w2cbw0015_vmmc {
0056                 pinctrl-names = "default";
0057                 pinctrl-0 = <&w2cbw0015_pins>;
0058                 compatible = "regulator-fixed";
0059                 regulator-name = "w2cbw0015";
0060                 regulator-min-microvolt = <3000000>;
0061                 regulator-max-microvolt = <3000000>;
0062                 gpio = <&gpio2 11 GPIO_ACTIVE_LOW>;             /* gpio_43 */
0063                 startup-delay-us = <70000>;
0064                 enable-active-high;
0065                 regulator-boot-on;
0066         };
0067 };
0068 
0069 &omap4_pmx_core {
0070         pinctrl-names = "default";
0071         pinctrl-0 = <
0072                         &twl6040_pins
0073                         &hsusbb1_pins
0074         >;
0075 
0076         twl6040_pins: pinmux_twl6040_pins {
0077                 pinctrl-single,pins = <
0078                         OMAP4_IOPAD(0x166, PIN_OUTPUT | MUX_MODE3)              /* usbb2_ulpitll_nxt.gpio_160 */
0079                         OMAP4_IOPAD(0x1a0, PIN_INPUT | MUX_MODE0)               /* sys_nirq2.sys_nirq2 */
0080                 >;
0081         };
0082 
0083         mcbsp1_pins: pinmux_mcbsp1_pins {
0084                 pinctrl-single,pins = <
0085                         OMAP4_IOPAD(0x0fe, PIN_INPUT | MUX_MODE0)               /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
0086                         OMAP4_IOPAD(0x100, PIN_INPUT_PULLDOWN | MUX_MODE0)      /* abe_mcbsp1_dr.abe_mcbsp1_dr */
0087                         OMAP4_IOPAD(0x102, PIN_OUTPUT_PULLDOWN | MUX_MODE0)     /* abe_mcbsp1_dx.abe_mcbsp1_dx */
0088                         OMAP4_IOPAD(0x104, PIN_INPUT | MUX_MODE0)               /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
0089                 >;
0090         };
0091 
0092         hsusbb1_pins: pinmux_hsusbb1_pins {
0093                 pinctrl-single,pins = <
0094                         OMAP4_IOPAD(0x0c2, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
0095                         OMAP4_IOPAD(0x0c4, PIN_OUTPUT | MUX_MODE4)              /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
0096                         OMAP4_IOPAD(0x0c6, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
0097                         OMAP4_IOPAD(0x0c8, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
0098                         OMAP4_IOPAD(0x0ca, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
0099                         OMAP4_IOPAD(0x0cc, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
0100                         OMAP4_IOPAD(0x0ce, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
0101                         OMAP4_IOPAD(0x0d0, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
0102                         OMAP4_IOPAD(0x0d2, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
0103                         OMAP4_IOPAD(0x0d4, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
0104                         OMAP4_IOPAD(0x0d6, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
0105                         OMAP4_IOPAD(0x0d8, PIN_INPUT_PULLDOWN | MUX_MODE4)      /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
0106                 >;
0107         };
0108 
0109         hsusb1phy_pins: pinmux_hsusb1phy_pins {
0110                 pinctrl-single,pins = <
0111                         OMAP4_IOPAD(0x08c, PIN_OUTPUT | MUX_MODE3)              /* gpmc_wait1.gpio_62 */
0112                 >;
0113         };
0114 
0115         w2cbw0015_pins: pinmux_w2cbw0015_pins {
0116                 pinctrl-single,pins = <
0117                         OMAP4_IOPAD(0x066, PIN_OUTPUT | MUX_MODE3)              /* gpmc_a19.gpio_43 */
0118                         OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3)               /* gpmc_ncs3.gpio_53 */
0119                 >;
0120         };
0121 
0122         i2c1_pins: pinmux_i2c1_pins {
0123                 pinctrl-single,pins = <
0124                         OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0)        /* i2c1_scl */
0125                         OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0)        /* i2c1_sda */
0126                 >;
0127         };
0128 
0129         i2c4_pins: pinmux_i2c4_pins {
0130                 pinctrl-single,pins = <
0131                         OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0)        /* i2c4_scl */
0132                         OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0)        /* i2c4_sda */
0133                 >;
0134         };
0135 
0136         mmc1_pins: pinmux_mmc1_pins {
0137                 pinctrl-single,pins = <
0138                         OMAP4_IOPAD(0x0e2, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc1_clk */
0139                         OMAP4_IOPAD(0x0e4, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmcc1_cmd */
0140                         OMAP4_IOPAD(0x0e6, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmcc1_dat0 */
0141                         OMAP4_IOPAD(0x0e8, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc1_dat1 */
0142                         OMAP4_IOPAD(0x0ea, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc1_dat2 */
0143                         OMAP4_IOPAD(0x0ec, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc1_dat3 */
0144                 >;
0145         };
0146 
0147         mmc5_pins: pinmux_mmc5_pins {
0148                 pinctrl-single,pins = <
0149                         OMAP4_IOPAD(0x148, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc5_clk */
0150                         OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmcc5_cmd */
0151                         OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmcc5_dat0 */
0152                         OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc5_dat1 */
0153                         OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc5_dat2 */
0154                         OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0)        /* sdmmc5_dat3 */
0155                 >;
0156         };
0157 };
0158 
0159 /* PMIC */
0160 &i2c1 {
0161         pinctrl-names = "default";
0162         pinctrl-0 = <&i2c1_pins>;
0163 
0164         clock-frequency = <400000>;
0165 
0166         twl: twl@48 {
0167                 reg = <0x48>;
0168                 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;           /* IRQ_SYS_1N cascaded to gic */
0169         };
0170 
0171         twl6040: twl@4b {
0172                 compatible = "ti,twl6040";
0173                 #clock-cells = <0>;
0174                 reg = <0x4b>;
0175                 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;         /* IRQ_SYS_2N cascaded to gic */
0176                 ti,audpwron-gpio = <&gpio6 0 GPIO_ACTIVE_HIGH>;         /* gpio_160 */
0177 
0178                 vio-supply = <&v1v8>;
0179                 v2v1-supply = <&v2v1>;
0180                 enable-active-high;
0181         };
0182 };
0183 
0184 #include "twl6030.dtsi"
0185 #include "twl6030_omap4.dtsi"
0186 
0187 /* on-board bluetooth / WiFi module */
0188 &i2c4 {
0189         pinctrl-names = "default";
0190         pinctrl-0 = <&i2c4_pins>;
0191 
0192         clock-frequency = <400000>;
0193 };
0194 
0195 &mcbsp1 {
0196         pinctrl-names = "default";
0197         pinctrl-0 = <&mcbsp1_pins>;
0198         status = "okay";
0199 };
0200 
0201 &mmc1 {
0202         pinctrl-names = "default";
0203         pinctrl-0 = <&mmc1_pins>;
0204 
0205         vmmc-supply = <&vmmc>;
0206         ti,bus-width = <4>;
0207         ti,non-removable;               /* FIXME: use PMIC_MMC detect */
0208 };
0209 
0210 &mmc2 {
0211         status = "disabled";
0212 };
0213 
0214 /* mmc3 is available to the expansion board */
0215 
0216 &mmc4 {
0217         status = "disabled";
0218 };
0219 
0220 /* on-board WiFi module */
0221 &mmc5 {
0222         pinctrl-names = "default";
0223         pinctrl-0 = <&mmc5_pins>;
0224 
0225         vmmc-supply = <&w2cbw0015_vmmc>;
0226         ti,bus-width = <4>;
0227         ti,non-removable;
0228         cap-power-off-card;
0229         keep-power-in-suspend;
0230 };
0231 
0232 &twl_usb_comparator {
0233         usb-supply = <&vusb>;
0234 };
0235 
0236 &usb_otg_hs {
0237         interface-type = <1>;
0238         mode = <3>;
0239         power = <50>;
0240 };
0241 
0242 &usbhshost {
0243         port1-mode = "ehci-phy";
0244 };
0245 
0246 &usbhsehci {
0247         phys = <&hsusb1_phy>;
0248 };
0249