1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only 2724ba675SRob Herring/dts-v1/; 3724ba675SRob Herring 4724ba675SRob Herring#include <dt-bindings/input/input.h> 5724ba675SRob Herring#include "omap443x.dtsi" 6724ba675SRob Herring#include "motorola-cpcap-mapphone.dtsi" 7724ba675SRob Herring 8724ba675SRob Herring/ { 9724ba675SRob Herring chosen { 10724ba675SRob Herring stdout-path = &uart3; 11724ba675SRob Herring }; 12724ba675SRob Herring 13724ba675SRob Herring aliases { 14724ba675SRob Herring display0 = &lcd0; 15724ba675SRob Herring display1 = &hdmi0; 16724ba675SRob Herring }; 17724ba675SRob Herring 18724ba675SRob Herring /* 19724ba675SRob Herring * We seem to have only 1021 MB accessible, 1021 - 1022 is locked, 20724ba675SRob Herring * then 1023 - 1024 seems to contain mbm. 21724ba675SRob Herring */ 22724ba675SRob Herring memory { 23724ba675SRob Herring device_type = "memory"; 24724ba675SRob Herring reg = <0x80000000 0x3fd00000>; /* 1021 MB */ 25724ba675SRob Herring }; 26724ba675SRob Herring 27724ba675SRob Herring /* Poweroff GPIO probably connected to CPCAP */ 28724ba675SRob Herring gpio-poweroff { 29724ba675SRob Herring compatible = "gpio-poweroff"; 30724ba675SRob Herring pinctrl-0 = <&poweroff_gpio>; 31724ba675SRob Herring pinctrl-names = "default"; 32724ba675SRob Herring gpios = <&gpio2 18 GPIO_ACTIVE_LOW>; /* gpio50 */ 33724ba675SRob Herring }; 34724ba675SRob Herring 35724ba675SRob Herring hdmi0: connector { 36724ba675SRob Herring compatible = "hdmi-connector"; 37724ba675SRob Herring pinctrl-0 = <&hdmi_hpd_gpio>; 38724ba675SRob Herring pinctrl-names = "default"; 39724ba675SRob Herring label = "hdmi"; 40724ba675SRob Herring type = "d"; 41724ba675SRob Herring 42724ba675SRob Herring hpd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; /* gpio63 */ 43724ba675SRob Herring 44724ba675SRob Herring port { 45724ba675SRob Herring hdmi_connector_in: endpoint { 46724ba675SRob Herring remote-endpoint = <&hdmi_out>; 47724ba675SRob Herring }; 48724ba675SRob Herring }; 49724ba675SRob Herring }; 50724ba675SRob Herring 51724ba675SRob Herring /* 52724ba675SRob Herring * HDMI 5V regulator probably sourced from battery. Let's keep 53724ba675SRob Herring * keep this as always enabled for HDMI to work until we've 54724ba675SRob Herring * figured what the encoder chip is. 55724ba675SRob Herring */ 56724ba675SRob Herring hdmi_regulator: regulator-hdmi { 57724ba675SRob Herring compatible = "regulator-fixed"; 58724ba675SRob Herring regulator-name = "hdmi"; 59724ba675SRob Herring regulator-min-microvolt = <5000000>; 60724ba675SRob Herring regulator-max-microvolt = <5000000>; 61724ba675SRob Herring gpio = <&gpio2 27 GPIO_ACTIVE_HIGH>; /* gpio59 */ 62724ba675SRob Herring enable-active-high; 63724ba675SRob Herring regulator-always-on; 64724ba675SRob Herring }; 65724ba675SRob Herring 66724ba675SRob Herring /* FS USB Host PHY on port 1 for mdm6600 */ 67724ba675SRob Herring fsusb1_phy: usb-phy@1 { 68724ba675SRob Herring compatible = "motorola,mapphone-mdm6600"; 69724ba675SRob Herring pinctrl-0 = <&usb_mdm6600_pins>; 70724ba675SRob Herring pinctrl-names = "default"; 71724ba675SRob Herring enable-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>; /* gpio_95 */ 72724ba675SRob Herring power-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* gpio_54 */ 73724ba675SRob Herring reset-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>; /* gpio_49 */ 74724ba675SRob Herring /* mode: gpio_148 gpio_149 */ 75724ba675SRob Herring motorola,mode-gpios = <&gpio5 20 GPIO_ACTIVE_HIGH>, 76724ba675SRob Herring <&gpio5 21 GPIO_ACTIVE_HIGH>; 77724ba675SRob Herring /* cmd: gpio_103 gpio_104 gpio_142 */ 78724ba675SRob Herring motorola,cmd-gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>, 79724ba675SRob Herring <&gpio4 8 GPIO_ACTIVE_HIGH>, 80724ba675SRob Herring <&gpio5 14 GPIO_ACTIVE_HIGH>; 81724ba675SRob Herring /* status: gpio_52 gpio_53 gpio_55 */ 82724ba675SRob Herring motorola,status-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>, 83724ba675SRob Herring <&gpio2 21 GPIO_ACTIVE_HIGH>, 84724ba675SRob Herring <&gpio2 23 GPIO_ACTIVE_HIGH>; 85724ba675SRob Herring #phy-cells = <0>; 86724ba675SRob Herring }; 87724ba675SRob Herring 88724ba675SRob Herring /* HS USB host TLL nop-phy on port 2 for w3glte */ 89724ba675SRob Herring hsusb2_phy: usb-phy@2 { 90724ba675SRob Herring compatible = "usb-nop-xceiv"; 91724ba675SRob Herring #phy-cells = <0>; 92724ba675SRob Herring }; 93724ba675SRob Herring 94724ba675SRob Herring /* LCD regulator from sw5 source */ 95724ba675SRob Herring lcd_regulator: regulator-lcd { 96724ba675SRob Herring compatible = "regulator-fixed"; 97724ba675SRob Herring regulator-name = "lcd"; 98724ba675SRob Herring regulator-min-microvolt = <5050000>; 99724ba675SRob Herring regulator-max-microvolt = <5050000>; 100724ba675SRob Herring gpio = <&gpio4 0 GPIO_ACTIVE_HIGH>; /* gpio96 */ 101724ba675SRob Herring enable-active-high; 102724ba675SRob Herring vin-supply = <&sw5>; 103724ba675SRob Herring }; 104724ba675SRob Herring 105724ba675SRob Herring /* This is probably coming straight from the battery.. */ 106724ba675SRob Herring wl12xx_vmmc: regulator-wl12xx { 107724ba675SRob Herring compatible = "regulator-fixed"; 108724ba675SRob Herring regulator-name = "vwl1271"; 109724ba675SRob Herring regulator-min-microvolt = <1650000>; 110724ba675SRob Herring regulator-max-microvolt = <1650000>; 111724ba675SRob Herring gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>; /* gpio94 */ 112724ba675SRob Herring startup-delay-us = <70000>; 113724ba675SRob Herring enable-active-high; 114724ba675SRob Herring }; 115724ba675SRob Herring 116724ba675SRob Herring soundcard { 117724ba675SRob Herring compatible = "audio-graph-card"; 118724ba675SRob Herring label = "Mapphone Audio"; 119724ba675SRob Herring 120724ba675SRob Herring widgets = 121724ba675SRob Herring "Speaker", "Earpiece", 122724ba675SRob Herring "Speaker", "Loudspeaker", 123724ba675SRob Herring "Headphone", "Headphone Jack", 124724ba675SRob Herring "Microphone", "Internal Mic"; 125724ba675SRob Herring 126724ba675SRob Herring routing = 127724ba675SRob Herring "Earpiece", "EP", 128724ba675SRob Herring "Loudspeaker", "SPKR", 129724ba675SRob Herring "Headphone Jack", "HSL", 130724ba675SRob Herring "Headphone Jack", "HSR", 131724ba675SRob Herring "MICR", "Internal Mic"; 132724ba675SRob Herring 133724ba675SRob Herring dais = <&mcbsp2_port>, <&mcbsp3_port>; 134724ba675SRob Herring }; 135724ba675SRob Herring 136724ba675SRob Herring pwm8: pwm-8 { 137724ba675SRob Herring pinctrl-names = "default"; 138724ba675SRob Herring pinctrl-0 = <&vibrator_direction_pin>; 139724ba675SRob Herring 140724ba675SRob Herring compatible = "ti,omap-dmtimer-pwm"; 141724ba675SRob Herring #pwm-cells = <3>; 142724ba675SRob Herring ti,timers = <&timer8>; 143724ba675SRob Herring ti,clock-source = <0x01>; 144724ba675SRob Herring }; 145724ba675SRob Herring 146724ba675SRob Herring pwm9: pwm-9 { 147724ba675SRob Herring pinctrl-names = "default"; 148724ba675SRob Herring pinctrl-0 = <&vibrator_enable_pin>; 149724ba675SRob Herring 150724ba675SRob Herring compatible = "ti,omap-dmtimer-pwm"; 151724ba675SRob Herring #pwm-cells = <3>; 152724ba675SRob Herring ti,timers = <&timer9>; 153724ba675SRob Herring ti,clock-source = <0x01>; 154724ba675SRob Herring }; 155724ba675SRob Herring 156724ba675SRob Herring vibrator { 157724ba675SRob Herring compatible = "pwm-vibrator"; 158724ba675SRob Herring pwms = <&pwm9 0 10000000 0>, <&pwm8 0 10000000 0>; 159724ba675SRob Herring pwm-names = "enable", "direction"; 160724ba675SRob Herring direction-duty-cycle-ns = <10000000>; 161724ba675SRob Herring }; 162724ba675SRob Herring 163724ba675SRob Herring backlight: backlight { 164724ba675SRob Herring compatible = "led-backlight"; 165724ba675SRob Herring 166724ba675SRob Herring leds = <&backlight_led>; 167724ba675SRob Herring brightness-levels = <31 63 95 127 159 191 223 255>; 168724ba675SRob Herring default-brightness-level = <6>; 169724ba675SRob Herring }; 170724ba675SRob Herring}; 171724ba675SRob Herring 172724ba675SRob Herring&cpu_thermal { 173724ba675SRob Herring polling-delay = <10000>; /* milliseconds */ 174724ba675SRob Herring}; 175724ba675SRob Herring 176724ba675SRob Herring&cpu_alert0 { 177724ba675SRob Herring temperature = <80000>; /* millicelsius */ 178724ba675SRob Herring}; 179724ba675SRob Herring 180724ba675SRob Herring&cpu0 { 181724ba675SRob Herring /* 182724ba675SRob Herring * Note that the 1.2GiHz mode is enabled for all SoC variants for 183724ba675SRob Herring * the Motorola Android Linux v3.0.8 based kernel. 184724ba675SRob Herring */ 185724ba675SRob Herring operating-points = < 186724ba675SRob Herring /* kHz uV */ 187724ba675SRob Herring 300000 1025000 188724ba675SRob Herring 600000 1200000 189724ba675SRob Herring 800000 1313000 190724ba675SRob Herring 1008000 1375000 191724ba675SRob Herring 1200000 1375000 192724ba675SRob Herring >; 193724ba675SRob Herring}; 194724ba675SRob Herring 195724ba675SRob Herring&dss { 196724ba675SRob Herring status = "okay"; 197724ba675SRob Herring}; 198724ba675SRob Herring 199724ba675SRob Herring&dsi1 { 200724ba675SRob Herring status = "okay"; 201724ba675SRob Herring vdd-supply = <&vcsi>; 202724ba675SRob Herring 203724ba675SRob Herring port { 204724ba675SRob Herring dsi1_out_ep: endpoint { 205724ba675SRob Herring remote-endpoint = <&lcd0_in>; 206724ba675SRob Herring lanes = <0 1 2 3 4 5>; 207724ba675SRob Herring }; 208724ba675SRob Herring }; 209724ba675SRob Herring 210724ba675SRob Herring lcd0: panel@0 { 211724ba675SRob Herring compatible = "motorola,droid4-panel", "panel-dsi-cm"; 212724ba675SRob Herring reg = <0>; 213724ba675SRob Herring label = "lcd0"; 214724ba675SRob Herring vddi-supply = <&lcd_regulator>; 215724ba675SRob Herring reset-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* gpio101 */ 216724ba675SRob Herring 217724ba675SRob Herring backlight = <&backlight>; 218724ba675SRob Herring 219724ba675SRob Herring width-mm = <50>; 220724ba675SRob Herring height-mm = <89>; 221724ba675SRob Herring rotation = <90>; 222724ba675SRob Herring 223724ba675SRob Herring panel-timing { 224724ba675SRob Herring clock-frequency = <0>; /* Calculated by dsi */ 225724ba675SRob Herring 226724ba675SRob Herring hback-porch = <2>; 227724ba675SRob Herring hactive = <540>; 228724ba675SRob Herring hfront-porch = <0>; 229724ba675SRob Herring hsync-len = <2>; 230724ba675SRob Herring 231724ba675SRob Herring vback-porch = <1>; 232724ba675SRob Herring vactive = <960>; 233724ba675SRob Herring vfront-porch = <0>; 234724ba675SRob Herring vsync-len = <1>; 235724ba675SRob Herring 236724ba675SRob Herring hsync-active = <0>; 237724ba675SRob Herring vsync-active = <0>; 238724ba675SRob Herring de-active = <1>; 239724ba675SRob Herring pixelclk-active = <1>; 240724ba675SRob Herring }; 241724ba675SRob Herring 242724ba675SRob Herring port { 243724ba675SRob Herring lcd0_in: endpoint { 244724ba675SRob Herring remote-endpoint = <&dsi1_out_ep>; 245724ba675SRob Herring }; 246724ba675SRob Herring }; 247724ba675SRob Herring }; 248724ba675SRob Herring}; 249724ba675SRob Herring 250724ba675SRob Herring&hdmi { 251724ba675SRob Herring status = "okay"; 252724ba675SRob Herring pinctrl-0 = <&dss_hdmi_pins>; 253724ba675SRob Herring pinctrl-names = "default"; 254724ba675SRob Herring vdda-supply = <&vdac>; 255724ba675SRob Herring 256724ba675SRob Herring port { 257724ba675SRob Herring hdmi_out: endpoint { 258724ba675SRob Herring remote-endpoint = <&hdmi_connector_in>; 259724ba675SRob Herring lanes = <1 0 3 2 5 4 7 6>; 260724ba675SRob Herring }; 261724ba675SRob Herring }; 262724ba675SRob Herring}; 263724ba675SRob Herring 264724ba675SRob Herring/* Battery NVRAM on 1-wire handled by w1_ds250x driver */ 265724ba675SRob Herring&hdqw1w { 266724ba675SRob Herring pinctrl-0 = <&hdq_pins>; 267724ba675SRob Herring pinctrl-names = "default"; 268724ba675SRob Herring ti,mode = "1w"; 269724ba675SRob Herring}; 270724ba675SRob Herring 271724ba675SRob Herring&i2c1 { 272724ba675SRob Herring tmp105@48 { 273724ba675SRob Herring compatible = "ti,tmp105"; 274724ba675SRob Herring reg = <0x48>; 275724ba675SRob Herring pinctrl-0 = <&tmp105_irq>; 276724ba675SRob Herring pinctrl-names = "default"; 277724ba675SRob Herring /* kpd_row0.gpio_178 */ 278724ba675SRob Herring interrupts-extended = <&gpio6 18 IRQ_TYPE_EDGE_FALLING 279724ba675SRob Herring &omap4_pmx_core 0x14e>; 280724ba675SRob Herring interrupt-names = "irq", "wakeup"; 281724ba675SRob Herring wakeup-source; 282724ba675SRob Herring }; 283724ba675SRob Herring}; 284724ba675SRob Herring 285724ba675SRob Herring&mmc1 { 286724ba675SRob Herring vmmc-supply = <&vwlan2>; 287724ba675SRob Herring bus-width = <4>; 288724ba675SRob Herring cd-gpios = <&gpio6 16 GPIO_ACTIVE_LOW>; /* gpio176 */ 289724ba675SRob Herring}; 290724ba675SRob Herring 291724ba675SRob Herring&mmc2 { 292724ba675SRob Herring vmmc-supply = <&vsdio>; 293724ba675SRob Herring bus-width = <8>; 294724ba675SRob Herring ti,non-removable; 295724ba675SRob Herring}; 296724ba675SRob Herring 297724ba675SRob Herring&mmc3 { 298724ba675SRob Herring pinctrl-names = "default"; 299724ba675SRob Herring pinctrl-0 = <&mmc3_pins>; 300724ba675SRob Herring vmmc-supply = <&wl12xx_vmmc>; 301724ba675SRob Herring /* uart2_tx.sdmmc3_dat1 pad as wakeirq */ 302724ba675SRob Herring interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 303724ba675SRob Herring &omap4_pmx_core 0xde>; 304724ba675SRob Herring interrupt-names = "irq", "wakeup"; 305724ba675SRob Herring non-removable; 306724ba675SRob Herring bus-width = <4>; 307724ba675SRob Herring cap-power-off-card; 308724ba675SRob Herring keep-power-in-suspend; 309724ba675SRob Herring 310724ba675SRob Herring #address-cells = <1>; 311724ba675SRob Herring #size-cells = <0>; 312724ba675SRob Herring wlcore: wlcore@2 { 313724ba675SRob Herring compatible = "ti,wl1285"; 314724ba675SRob Herring reg = <2>; 315724ba675SRob Herring /* gpio_100 with gpmc_wait2 pad as wakeirq */ 316724ba675SRob Herring interrupts-extended = <&gpio4 4 IRQ_TYPE_LEVEL_HIGH>, 317724ba675SRob Herring <&omap4_pmx_core 0x4e>; 318724ba675SRob Herring interrupt-names = "irq", "wakeup"; 319724ba675SRob Herring ref-clock-frequency = <26000000>; 320724ba675SRob Herring tcxo-clock-frequency = <26000000>; 321724ba675SRob Herring }; 322724ba675SRob Herring}; 323724ba675SRob Herring 324724ba675SRob Herring&i2c2 { 325724ba675SRob Herring touchscreen@4a { 326724ba675SRob Herring compatible = "atmel,maxtouch"; 327724ba675SRob Herring reg = <0x4a>; 328724ba675SRob Herring pinctrl-names = "default"; 329724ba675SRob Herring pinctrl-0 = <&touchscreen_pins>; 330724ba675SRob Herring 331724ba675SRob Herring reset-gpios = <&gpio6 13 GPIO_ACTIVE_LOW>; /* gpio173 */ 332724ba675SRob Herring 333724ba675SRob Herring /* gpio_183 with sys_nirq2 pad as wakeup */ 334724ba675SRob Herring interrupts-extended = <&gpio6 23 IRQ_TYPE_LEVEL_LOW>, 335724ba675SRob Herring <&omap4_pmx_core 0x160>; 336724ba675SRob Herring interrupt-names = "irq", "wakeup"; 337724ba675SRob Herring wakeup-source; 338724ba675SRob Herring }; 339724ba675SRob Herring 340724ba675SRob Herring isl29030@44 { 341724ba675SRob Herring compatible = "isil,isl29030"; 342724ba675SRob Herring reg = <0x44>; 343724ba675SRob Herring 344724ba675SRob Herring pinctrl-names = "default"; 345724ba675SRob Herring pinctrl-0 = <&als_proximity_pins>; 346724ba675SRob Herring 347724ba675SRob Herring interrupt-parent = <&gpio6>; 348724ba675SRob Herring interrupts = <17 IRQ_TYPE_LEVEL_LOW>; /* gpio177 */ 349724ba675SRob Herring }; 350724ba675SRob Herring}; 351724ba675SRob Herring 352724ba675SRob Herring&omap4_pmx_core { 353724ba675SRob Herring 354724ba675SRob Herring /* hdmi_hpd.gpio_63 */ 355724ba675SRob Herring hdmi_hpd_gpio: hdmi-hpd-pins { 356724ba675SRob Herring pinctrl-single,pins = < 357724ba675SRob Herring OMAP4_IOPAD(0x098, PIN_INPUT | MUX_MODE3) 358724ba675SRob Herring >; 359724ba675SRob Herring }; 360724ba675SRob Herring 361724ba675SRob Herring hdq_pins: hdq-pins { 362724ba675SRob Herring pinctrl-single,pins = < 363724ba675SRob Herring /* 0x4a100120 hdq_sio.hdq_sio aa27 */ 364724ba675SRob Herring OMAP4_IOPAD(0x120, PIN_INPUT | MUX_MODE0) 365724ba675SRob Herring >; 366724ba675SRob Herring }; 367724ba675SRob Herring 368724ba675SRob Herring /* hdmi_cec.hdmi_cec, hdmi_scl.hdmi_scl, hdmi_sda.hdmi_sda */ 369724ba675SRob Herring dss_hdmi_pins: dss-hdmi-pins { 370724ba675SRob Herring pinctrl-single,pins = < 371724ba675SRob Herring OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0) 372724ba675SRob Herring OMAP4_IOPAD(0x09c, PIN_INPUT | MUX_MODE0) 373724ba675SRob Herring OMAP4_IOPAD(0x09e, PIN_INPUT | MUX_MODE0) 374724ba675SRob Herring >; 375724ba675SRob Herring }; 376724ba675SRob Herring 377724ba675SRob Herring /* 378724ba675SRob Herring * Android uses PIN_OFF_INPUT_PULLDOWN | PIN_INPUT_PULLUP | MUX_MODE3 379724ba675SRob Herring * for gpio_100, but the internal pull makes wlan flakey on some 380724ba675SRob Herring * devices. Off mode value should be tested if we have off mode working 381724ba675SRob Herring * later on. 382724ba675SRob Herring */ 383724ba675SRob Herring mmc3_pins: mmc3-pins { 384724ba675SRob Herring pinctrl-single,pins = < 385724ba675SRob Herring /* 0x4a10008e gpmc_wait2.gpio_100 d23 */ 386724ba675SRob Herring OMAP4_IOPAD(0x08e, PIN_INPUT | MUX_MODE3) 387724ba675SRob Herring 388724ba675SRob Herring /* 0x4a100102 abe_mcbsp1_dx.sdmmc3_dat2 ab25 */ 389724ba675SRob Herring OMAP4_IOPAD(0x102, PIN_INPUT_PULLUP | MUX_MODE1) 390724ba675SRob Herring 391724ba675SRob Herring /* 0x4a100104 abe_mcbsp1_fsx.sdmmc3_dat3 ac27 */ 392724ba675SRob Herring OMAP4_IOPAD(0x104, PIN_INPUT_PULLUP | MUX_MODE1) 393724ba675SRob Herring 394724ba675SRob Herring /* 0x4a100118 uart2_cts.sdmmc3_clk ab26 */ 395724ba675SRob Herring OMAP4_IOPAD(0x118, PIN_INPUT | MUX_MODE1) 396724ba675SRob Herring 397724ba675SRob Herring /* 0x4a10011a uart2_rts.sdmmc3_cmd ab27 */ 398724ba675SRob Herring OMAP4_IOPAD(0x11a, PIN_INPUT_PULLUP | MUX_MODE1) 399724ba675SRob Herring 400724ba675SRob Herring /* 0x4a10011c uart2_rx.sdmmc3_dat0 aa25 */ 401724ba675SRob Herring OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE1) 402724ba675SRob Herring 403724ba675SRob Herring /* 0x4a10011e uart2_tx.sdmmc3_dat1 aa26 */ 404724ba675SRob Herring OMAP4_IOPAD(0x11e, PIN_INPUT_PULLUP | MUX_MODE1) 405724ba675SRob Herring >; 406724ba675SRob Herring }; 407724ba675SRob Herring 408724ba675SRob Herring /* gpmc_ncs0.gpio_50 */ 409724ba675SRob Herring poweroff_gpio: poweroff-pins { 410724ba675SRob Herring pinctrl-single,pins = < 411724ba675SRob Herring OMAP4_IOPAD(0x074, PIN_OUTPUT_PULLUP | MUX_MODE3) 412724ba675SRob Herring >; 413724ba675SRob Herring }; 414724ba675SRob Herring 415724ba675SRob Herring /* kpd_row0.gpio_178 */ 416724ba675SRob Herring tmp105_irq: tmp105-irq-pins { 417724ba675SRob Herring pinctrl-single,pins = < 418724ba675SRob Herring OMAP4_IOPAD(0x18e, PIN_INPUT_PULLUP | MUX_MODE3) 419724ba675SRob Herring >; 420724ba675SRob Herring }; 421724ba675SRob Herring 422724ba675SRob Herring usb_gpio_mux_sel1: usb-gpio-mux-sel1-pins { 423724ba675SRob Herring /* gpio_60 */ 424724ba675SRob Herring pinctrl-single,pins = < 425724ba675SRob Herring OMAP4_IOPAD(0x088, PIN_OUTPUT | MUX_MODE3) 426724ba675SRob Herring >; 427724ba675SRob Herring }; 428724ba675SRob Herring 429724ba675SRob Herring touchscreen_pins: touchscreen-pins { 430724ba675SRob Herring pinctrl-single,pins = < 431724ba675SRob Herring OMAP4_IOPAD(0x180, PIN_OUTPUT | MUX_MODE3) 432724ba675SRob Herring OMAP4_IOPAD(0x1a0, PIN_INPUT_PULLUP | MUX_MODE3) 433724ba675SRob Herring >; 434724ba675SRob Herring }; 435724ba675SRob Herring 436724ba675SRob Herring als_proximity_pins: als-proximity-pins { 437724ba675SRob Herring pinctrl-single,pins = < 438724ba675SRob Herring OMAP4_IOPAD(0x18c, PIN_INPUT_PULLUP | MUX_MODE3) 439724ba675SRob Herring >; 440724ba675SRob Herring }; 441724ba675SRob Herring 442724ba675SRob Herring usb_mdm6600_pins: usb-mdm6600-pins { 443724ba675SRob Herring pinctrl-single,pins = < 444724ba675SRob Herring /* enable 0x4a1000d8 usbb1_ulpitll_dat7.gpio_95 ag16 */ 445724ba675SRob Herring OMAP4_IOPAD(0x0d8, PIN_INPUT | MUX_MODE3) 446724ba675SRob Herring 447724ba675SRob Herring /* power 0x4a10007c gpmc_nwp.gpio_54 c25 */ 448724ba675SRob Herring OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3) 449724ba675SRob Herring 450724ba675SRob Herring /* reset 0x4a100072 gpmc_a25.gpio_49 d20 */ 451724ba675SRob Herring OMAP4_IOPAD(0x072, PIN_OUTPUT | MUX_MODE3) 452724ba675SRob Herring 453724ba675SRob Herring /* mode0/bpwake 0x4a10014e sdmmc5_dat1.gpio_148 af4 */ 454724ba675SRob Herring OMAP4_IOPAD(0x14e, PIN_OUTPUT | MUX_MODE3) 455724ba675SRob Herring 456724ba675SRob Herring /* mode1/apwake 0x4a100150 sdmmc5_dat2.gpio_149 ag3 */ 457724ba675SRob Herring OMAP4_IOPAD(0x150, PIN_OFF_OUTPUT_LOW | PIN_INPUT | MUX_MODE3) 458724ba675SRob Herring 459724ba675SRob Herring /* status0 0x4a10007e gpmc_clk.gpio_55 b22 */ 460724ba675SRob Herring OMAP4_IOPAD(0x07e, PIN_INPUT | MUX_MODE3) 461724ba675SRob Herring 462724ba675SRob Herring /* status1 0x4a10007a gpmc_ncs3.gpio_53 c22 */ 463724ba675SRob Herring OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3) 464724ba675SRob Herring 465724ba675SRob Herring /* status2 0x4a100078 gpmc_ncs2.gpio_52 d21 */ 466724ba675SRob Herring OMAP4_IOPAD(0x078, PIN_INPUT | MUX_MODE3) 467724ba675SRob Herring 468724ba675SRob Herring /* cmd0 0x4a100094 gpmc_ncs6.gpio_103 c24 */ 469724ba675SRob Herring OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3) 470724ba675SRob Herring 471724ba675SRob Herring /* cmd1 0x4a100096 gpmc_ncs7.gpio_104 d24 */ 472724ba675SRob Herring OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3) 473724ba675SRob Herring 474724ba675SRob Herring /* cmd2 0x4a100142 uart3_rts_sd.gpio_142 f28 */ 475724ba675SRob Herring OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE3) 476724ba675SRob Herring >; 477724ba675SRob Herring }; 478724ba675SRob Herring 479724ba675SRob Herring usb_ulpi_pins: usb-ulpi-pins { 480724ba675SRob Herring pinctrl-single,pins = < 481724ba675SRob Herring OMAP4_IOPAD(0x196, MUX_MODE7) 482724ba675SRob Herring OMAP4_IOPAD(0x198, MUX_MODE7) 483724ba675SRob Herring OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE0) 484724ba675SRob Herring OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE0) 485724ba675SRob Herring OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE0) 486724ba675SRob Herring OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE0) 487724ba675SRob Herring OMAP4_IOPAD(0x1ba, PIN_INPUT_PULLUP | MUX_MODE0) 488724ba675SRob Herring OMAP4_IOPAD(0x1bc, PIN_INPUT_PULLUP | MUX_MODE0) 489724ba675SRob Herring OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE0) 490724ba675SRob Herring OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE0) 491724ba675SRob Herring OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE0) 492724ba675SRob Herring OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE0) 493724ba675SRob Herring OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE0) 494724ba675SRob Herring OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE0) 495724ba675SRob Herring >; 496724ba675SRob Herring }; 497724ba675SRob Herring 498724ba675SRob Herring /* usb0_otg_dp and usb0_otg_dm */ 499724ba675SRob Herring usb_utmi_pins: usb-utmi-pins { 500724ba675SRob Herring pinctrl-single,pins = < 501724ba675SRob Herring OMAP4_IOPAD(0x196, PIN_INPUT | MUX_MODE0) 502724ba675SRob Herring OMAP4_IOPAD(0x198, PIN_INPUT | MUX_MODE0) 503724ba675SRob Herring OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE7) 504724ba675SRob Herring OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE7) 505724ba675SRob Herring OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE7) 506724ba675SRob Herring OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE7) 507724ba675SRob Herring OMAP4_IOPAD(0x1ba, PIN_INPUT_PULLUP | MUX_MODE7) 508724ba675SRob Herring OMAP4_IOPAD(0x1bc, PIN_INPUT_PULLUP | MUX_MODE7) 509724ba675SRob Herring OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE7) 510724ba675SRob Herring OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE7) 511724ba675SRob Herring OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE7) 512724ba675SRob Herring OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE7) 513724ba675SRob Herring OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE7) 514724ba675SRob Herring OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE7) 515724ba675SRob Herring >; 516724ba675SRob Herring }; 517724ba675SRob Herring 518724ba675SRob Herring /* 519724ba675SRob Herring * Note that the v3.0.8 stock userspace dynamically remuxes uart1 520724ba675SRob Herring * rts pin probably for PM purposes to PIN_INPUT_PULLUP | MUX_MODE7 521724ba675SRob Herring * when not used. If needed, we can add rts pin remux later based 522724ba675SRob Herring * on power measurements. 523724ba675SRob Herring */ 524724ba675SRob Herring uart1_pins: uart1-pins { 525724ba675SRob Herring pinctrl-single,pins = < 526724ba675SRob Herring /* 0x4a10013c mcspi1_cs2.uart1_cts ag23 */ 527724ba675SRob Herring OMAP4_IOPAD(0x13c, PIN_INPUT_PULLUP | MUX_MODE1) 528724ba675SRob Herring 529724ba675SRob Herring /* 0x4a10013e mcspi1_cs3.uart1_rts ah23 */ 530724ba675SRob Herring OMAP4_IOPAD(0x13e, MUX_MODE1) 531724ba675SRob Herring 532724ba675SRob Herring /* 0x4a100140 uart3_cts_rctx.uart1_tx f27 */ 533724ba675SRob Herring OMAP4_IOPAD(0x140, PIN_OUTPUT | MUX_MODE1) 534724ba675SRob Herring 535724ba675SRob Herring /* 0x4a1001ca dpm_emu14.uart1_rx aa3 */ 536724ba675SRob Herring OMAP4_IOPAD(0x1ca, PIN_INPUT_PULLUP | MUX_MODE2) 537724ba675SRob Herring >; 538724ba675SRob Herring }; 539724ba675SRob Herring 540724ba675SRob Herring /* uart3_tx_irtx and uart3_rx_irrx */ 541724ba675SRob Herring uart3_pins: uart3-pins { 542724ba675SRob Herring pinctrl-single,pins = < 543724ba675SRob Herring OMAP4_IOPAD(0x196, MUX_MODE7) 544724ba675SRob Herring OMAP4_IOPAD(0x198, MUX_MODE7) 545724ba675SRob Herring OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE7) 546724ba675SRob Herring OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE7) 547724ba675SRob Herring OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE7) 548724ba675SRob Herring OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE7) 549724ba675SRob Herring OMAP4_IOPAD(0x1ba, MUX_MODE2) 550724ba675SRob Herring OMAP4_IOPAD(0x1bc, PIN_INPUT | MUX_MODE2) 551724ba675SRob Herring OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE7) 552724ba675SRob Herring OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE7) 553724ba675SRob Herring OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE7) 554724ba675SRob Herring OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE7) 555724ba675SRob Herring OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE7) 556724ba675SRob Herring OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE7) 557724ba675SRob Herring >; 558724ba675SRob Herring }; 559724ba675SRob Herring 560724ba675SRob Herring uart4_pins: uart4-pins { 561724ba675SRob Herring pinctrl-single,pins = < 562724ba675SRob Herring OMAP4_IOPAD(0x15c, PIN_INPUT | MUX_MODE0) /* uart4_rx */ 563724ba675SRob Herring OMAP4_IOPAD(0x15e, PIN_OUTPUT | MUX_MODE0) /* uart4_tx */ 564724ba675SRob Herring OMAP4_IOPAD(0x110, PIN_INPUT_PULLUP | MUX_MODE5) /* uart4_cts */ 565724ba675SRob Herring OMAP4_IOPAD(0x112, PIN_OUTPUT_PULLUP | MUX_MODE5) /* uart4_rts */ 566724ba675SRob Herring >; 567724ba675SRob Herring }; 568724ba675SRob Herring 569724ba675SRob Herring mcbsp2_pins: mcbsp2-pins { 570724ba675SRob Herring pinctrl-single,pins = < 571724ba675SRob Herring OMAP4_IOPAD(0x0f6, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_clkx */ 572724ba675SRob Herring OMAP4_IOPAD(0x0f8, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_dr */ 573724ba675SRob Herring OMAP4_IOPAD(0x0fa, PIN_OUTPUT | MUX_MODE0) /* abe_mcbsp2_dx */ 574724ba675SRob Herring OMAP4_IOPAD(0x0fc, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_fsx */ 575724ba675SRob Herring >; 576724ba675SRob Herring }; 577724ba675SRob Herring 578724ba675SRob Herring mcbsp3_pins: mcbsp3-pins { 579724ba675SRob Herring pinctrl-single,pins = < 580724ba675SRob Herring OMAP4_IOPAD(0x106, PIN_INPUT | MUX_MODE1) /* abe_mcbsp3_dr */ 581724ba675SRob Herring OMAP4_IOPAD(0x108, PIN_OUTPUT | MUX_MODE1) /* abe_mcbsp3_dx */ 582724ba675SRob Herring OMAP4_IOPAD(0x10a, PIN_INPUT | MUX_MODE1) /* abe_mcbsp3_clkx */ 583724ba675SRob Herring OMAP4_IOPAD(0x10c, PIN_INPUT | MUX_MODE1) /* abe_mcbsp3_fsx */ 584724ba675SRob Herring >; 585724ba675SRob Herring }; 586724ba675SRob Herring 587724ba675SRob Herring vibrator_direction_pin: vibrator-direction-pins { 588724ba675SRob Herring pinctrl-single,pins = < 589724ba675SRob Herring OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE1) /* dmtimer8_pwm_evt (gpio_27) */ 590724ba675SRob Herring >; 591724ba675SRob Herring }; 592724ba675SRob Herring 593724ba675SRob Herring vibrator_enable_pin: vibrator-enable-pins { 594724ba675SRob Herring pinctrl-single,pins = < 595724ba675SRob Herring OMAP4_IOPAD(0X1d0, PIN_OUTPUT | MUX_MODE1) /* dmtimer9_pwm_evt (gpio_28) */ 596724ba675SRob Herring >; 597724ba675SRob Herring }; 598724ba675SRob Herring}; 599724ba675SRob Herring 600724ba675SRob Herring&omap4_pmx_wkup { 601724ba675SRob Herring usb_gpio_mux_sel2: usb-gpio-mux-sel2-pins { 602724ba675SRob Herring /* gpio_wk0 */ 603724ba675SRob Herring pinctrl-single,pins = < 604724ba675SRob Herring OMAP4_IOPAD(0x040, PIN_OUTPUT_PULLDOWN | MUX_MODE3) 605724ba675SRob Herring >; 606724ba675SRob Herring }; 607724ba675SRob Herring}; 608724ba675SRob Herring 609724ba675SRob Herring/* RNG is used by secure mode and not accessible */ 610724ba675SRob Herring&rng_target { 611724ba675SRob Herring status = "disabled"; 612724ba675SRob Herring}; 613724ba675SRob Herring 614724ba675SRob Herring/* Configure pwm clock source for timers 8 & 9 */ 615724ba675SRob Herring&timer8 { 616724ba675SRob Herring assigned-clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>; 617ac08bda1STony Lindgren assigned-clock-parents = <&sys_32k_ck>; 618724ba675SRob Herring}; 619724ba675SRob Herring 620724ba675SRob Herring&timer9 { 621724ba675SRob Herring assigned-clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>; 622ac08bda1STony Lindgren assigned-clock-parents = <&sys_32k_ck>; 623724ba675SRob Herring}; 624724ba675SRob Herring 625724ba675SRob Herring/* 626724ba675SRob Herring * The uart1 port is wired to mdm6600 with rts and cts. The modem uses gpio_149 627724ba675SRob Herring * for wake-up events for both the USB PHY and the UART. We can use gpio_149 628724ba675SRob Herring * pad as the shared wakeirq for the UART rather than the RX or CTS pad as we 629724ba675SRob Herring * have gpio_149 trigger before the UART transfer starts. 630724ba675SRob Herring */ 631724ba675SRob Herring&uart1 { 632724ba675SRob Herring pinctrl-names = "default"; 633724ba675SRob Herring pinctrl-0 = <&uart1_pins>; 634724ba675SRob Herring interrupts-extended = <&wakeupgen GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH 635724ba675SRob Herring &omap4_pmx_core 0x110>; 636724ba675SRob Herring uart-has-rtscts; 637724ba675SRob Herring current-speed = <115200>; 638724ba675SRob Herring}; 639724ba675SRob Herring 640724ba675SRob Herring&uart3 { 641724ba675SRob Herring interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH 642724ba675SRob Herring &omap4_pmx_core 0x17c>; 643*5ad37b5eSTony Lindgren overrun-throttle-ms = <500>; 644724ba675SRob Herring}; 645724ba675SRob Herring 646724ba675SRob Herring&uart4 { 647724ba675SRob Herring pinctrl-names = "default"; 648724ba675SRob Herring pinctrl-0 = <&uart4_pins>; 649724ba675SRob Herring 650724ba675SRob Herring bluetooth { 651724ba675SRob Herring compatible = "ti,wl1285-st"; 652724ba675SRob Herring enable-gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>; /* gpio 174 */ 653724ba675SRob Herring max-speed = <3686400>; 654724ba675SRob Herring }; 655724ba675SRob Herring}; 656724ba675SRob Herring 657724ba675SRob Herring&usbhsohci { 658724ba675SRob Herring phys = <&fsusb1_phy>; 659724ba675SRob Herring phy-names = "usb"; 660724ba675SRob Herring}; 661724ba675SRob Herring 662724ba675SRob Herring&usbhsehci { 663724ba675SRob Herring phys = <&hsusb2_phy>; 664724ba675SRob Herring}; 665724ba675SRob Herring 666724ba675SRob Herring&usbhshost { 667724ba675SRob Herring port1-mode = "ohci-phy-4pin-dpdm"; 668724ba675SRob Herring port2-mode = "ehci-tll"; 669724ba675SRob Herring}; 670724ba675SRob Herring 671724ba675SRob Herring/* Internal UTMI+ PHY used for OTG, CPCAP ULPI PHY for detection and charger */ 672724ba675SRob Herring&usb_otg_hs { 673724ba675SRob Herring interface-type = <1>; 674724ba675SRob Herring mode = <3>; 675724ba675SRob Herring 676724ba675SRob Herring /* 677724ba675SRob Herring * Max 300 mA steps based on similar PMIC MC13783UG.pdf "Table 10-4. 678724ba675SRob Herring * VBUS Regulator Main Characteristics". Binding uses 2 mA units. 679724ba675SRob Herring */ 680724ba675SRob Herring power = <150>; 681724ba675SRob Herring}; 682724ba675SRob Herring 683724ba675SRob Herring&i2c4 { 684724ba675SRob Herring ak8975: magnetometer@c { 685724ba675SRob Herring compatible = "asahi-kasei,ak8975"; 686724ba675SRob Herring reg = <0x0c>; 687724ba675SRob Herring 688724ba675SRob Herring vdd-supply = <&vhvio>; 689724ba675SRob Herring 690724ba675SRob Herring interrupt-parent = <&gpio6>; 691724ba675SRob Herring interrupts = <15 IRQ_TYPE_EDGE_RISING>; /* gpio175 */ 692724ba675SRob Herring 693724ba675SRob Herring rotation-matrix = "-1", "0", "0", 694724ba675SRob Herring "0", "1", "0", 695724ba675SRob Herring "0", "0", "-1"; 696724ba675SRob Herring 697724ba675SRob Herring }; 698724ba675SRob Herring}; 699724ba675SRob Herring 700724ba675SRob Herring&mcbsp2 { 701724ba675SRob Herring #sound-dai-cells = <0>; 702724ba675SRob Herring pinctrl-names = "default"; 703724ba675SRob Herring pinctrl-0 = <&mcbsp2_pins>; 704724ba675SRob Herring status = "okay"; 705724ba675SRob Herring 706724ba675SRob Herring mcbsp2_port: port { 707724ba675SRob Herring cpu_dai2: endpoint { 708724ba675SRob Herring dai-format = "i2s"; 709724ba675SRob Herring remote-endpoint = <&cpcap_audio_codec0>; 710724ba675SRob Herring frame-master = <&cpcap_audio_codec0>; 711724ba675SRob Herring bitclock-master = <&cpcap_audio_codec0>; 712724ba675SRob Herring }; 713724ba675SRob Herring }; 714724ba675SRob Herring}; 715724ba675SRob Herring 716724ba675SRob Herring&mcbsp3 { 717724ba675SRob Herring #sound-dai-cells = <0>; 718724ba675SRob Herring pinctrl-names = "default"; 719724ba675SRob Herring pinctrl-0 = <&mcbsp3_pins>; 720724ba675SRob Herring status = "okay"; 721724ba675SRob Herring 722724ba675SRob Herring mcbsp3_port: port { 723724ba675SRob Herring cpu_dai3: endpoint { 724724ba675SRob Herring dai-format = "dsp_a"; 725724ba675SRob Herring frame-master = <&cpcap_audio_codec1>; 726724ba675SRob Herring bitclock-master = <&cpcap_audio_codec1>; 727724ba675SRob Herring remote-endpoint = <&cpcap_audio_codec1>; 728724ba675SRob Herring }; 729724ba675SRob Herring }; 730724ba675SRob Herring}; 731724ba675SRob Herring 732724ba675SRob Herring&cpcap_audio_codec0 { 733724ba675SRob Herring remote-endpoint = <&cpu_dai2>; 734724ba675SRob Herring}; 735724ba675SRob Herring 736724ba675SRob Herring&cpcap_audio_codec1 { 737724ba675SRob Herring remote-endpoint = <&cpu_dai3>; 738724ba675SRob Herring}; 739