Loading...
1// SPDX-License-Identifier: GPL-2.0-only
2/dts-v1/;
3
4#include "motorola-mapphone-common.dtsi"
5
6/ {
7 gpio_keys {
8 compatible = "gpio-keys";
9
10 volume_down {
11 label = "Volume Down";
12 gpios = <&gpio5 26 GPIO_ACTIVE_LOW>; /* gpio154 */
13 linux,code = <KEY_VOLUMEDOWN>;
14 linux,can-disable;
15 /* Value above 7.95ms for no GPIO hardware debounce */
16 debounce-interval = <10>;
17 };
18
19 /*
20 * We use pad 0x4a100116 abe_dmic_din3.gpio_122 as the irq instead
21 * of the gpio interrupt to avoid lost events in deeper idle states.
22 */
23 slider {
24 label = "Keypad Slide";
25 interrupts-extended = <&omap4_pmx_core 0xd6>;
26 gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* gpio122 */
27 linux,input-type = <EV_SW>;
28 linux,code = <SW_KEYPAD_SLIDE>;
29 linux,can-disable;
30 /* Value above 7.95ms for no GPIO hardware debounce */
31 debounce-interval = <10>;
32 };
33 };
34};
35
36/ {
37 model = "Motorola Droid 4 XT894";
38 compatible = "motorola,droid4", "ti,omap4430", "ti,omap4";
39};
40
41&keypad {
42 keypad,num-rows = <8>;
43 keypad,num-columns = <8>;
44 linux,keymap = <
45
46 /* Row 1 */
47 MATRIX_KEY(0, 2, KEY_1)
48 MATRIX_KEY(0, 6, KEY_2)
49 MATRIX_KEY(2, 3, KEY_3)
50 MATRIX_KEY(0, 7, KEY_4)
51 MATRIX_KEY(0, 4, KEY_5)
52 MATRIX_KEY(5, 5, KEY_6)
53 MATRIX_KEY(0, 1, KEY_7)
54 MATRIX_KEY(0, 5, KEY_8)
55 MATRIX_KEY(0, 0, KEY_9)
56 MATRIX_KEY(1, 6, KEY_0)
57
58 /* Row 2 */
59 MATRIX_KEY(3, 4, KEY_APOSTROPHE)
60 MATRIX_KEY(7, 6, KEY_Q)
61 MATRIX_KEY(7, 7, KEY_W)
62 MATRIX_KEY(7, 2, KEY_E)
63 MATRIX_KEY(1, 0, KEY_R)
64 MATRIX_KEY(4, 4, KEY_T)
65 MATRIX_KEY(1, 2, KEY_Y)
66 MATRIX_KEY(6, 7, KEY_U)
67 MATRIX_KEY(2, 2, KEY_I)
68 MATRIX_KEY(5, 6, KEY_O)
69 MATRIX_KEY(3, 7, KEY_P)
70 MATRIX_KEY(6, 5, KEY_BACKSPACE)
71
72 /* Row 3 */
73 MATRIX_KEY(5, 4, KEY_TAB)
74 MATRIX_KEY(5, 7, KEY_A)
75 MATRIX_KEY(2, 7, KEY_S)
76 MATRIX_KEY(7, 0, KEY_D)
77 MATRIX_KEY(2, 6, KEY_F)
78 MATRIX_KEY(6, 2, KEY_G)
79 MATRIX_KEY(6, 6, KEY_H)
80 MATRIX_KEY(1, 4, KEY_J)
81 MATRIX_KEY(3, 1, KEY_K)
82 MATRIX_KEY(2, 1, KEY_L)
83 MATRIX_KEY(4, 6, KEY_ENTER)
84
85 /* Row 4 */
86 MATRIX_KEY(3, 6, KEY_LEFTSHIFT) /* KEY_CAPSLOCK */
87 MATRIX_KEY(6, 1, KEY_Z)
88 MATRIX_KEY(7, 4, KEY_X)
89 MATRIX_KEY(5, 1, KEY_C)
90 MATRIX_KEY(1, 7, KEY_V)
91 MATRIX_KEY(2, 4, KEY_B)
92 MATRIX_KEY(4, 1, KEY_N)
93 MATRIX_KEY(1, 1, KEY_M)
94 MATRIX_KEY(3, 5, KEY_COMMA)
95 MATRIX_KEY(5, 2, KEY_DOT)
96 MATRIX_KEY(6, 3, KEY_UP)
97 MATRIX_KEY(7, 3, KEY_OK)
98
99 /* Row 5 */
100 MATRIX_KEY(2, 5, KEY_LEFTCTRL) /* KEY_LEFTSHIFT */
101 MATRIX_KEY(4, 5, KEY_LEFTALT) /* SYM */
102 MATRIX_KEY(6, 0, KEY_MINUS)
103 MATRIX_KEY(4, 7, KEY_EQUAL)
104 MATRIX_KEY(1, 5, KEY_SPACE)
105 MATRIX_KEY(3, 2, KEY_SLASH)
106 MATRIX_KEY(4, 3, KEY_LEFT)
107 MATRIX_KEY(5, 3, KEY_DOWN)
108 MATRIX_KEY(3, 3, KEY_RIGHT)
109
110 /* Side buttons, KEY_VOLUMEDOWN and KEY_PWER are on CPCAP? */
111 MATRIX_KEY(5, 0, KEY_VOLUMEUP)
112 >;
113};
114
115&i2c1 {
116 led-controller@38 {
117 compatible = "ti,lm3532";
118 #address-cells = <1>;
119 #size-cells = <0>;
120 reg = <0x38>;
121
122 enable-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;
123
124 ramp-up-us = <1024>;
125 ramp-down-us = <8193>;
126
127 backlight_led: led@0 {
128 reg = <0>;
129 led-sources = <2>;
130 ti,led-mode = <0>;
131 label = ":backlight";
132 };
133
134 led@1 {
135 reg = <1>;
136 led-sources = <1>;
137 ti,led-mode = <0>;
138 label = ":kbd_backlight";
139 };
140 };
141};
142
143&i2c4 {
144 lis3dh: accelerometer@18 {
145 compatible = "st,lis3dh-accel";
146 reg = <0x18>;
147
148 vdd-supply = <&vhvio>;
149
150 interrupt-parent = <&gpio2>;
151 interrupts = <2 IRQ_TYPE_EDGE_BOTH>; /* gpio34 */
152
153 rotation-matrix = "0", "-1", "0",
154 "1", "0", "0",
155 "0", "0", "1";
156 };
157};
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License version 2 as
4 * published by the Free Software Foundation.
5 */
6/dts-v1/;
7
8#include "omap443x.dtsi"
9
10/ {
11 model = "Motorola Droid 4 XT894";
12 compatible = "motorola,droid4", "ti,omap4430", "ti,omap4";
13
14 chosen {
15 stdout-path = &uart3;
16 };
17
18 /*
19 * We seem to have only 1021 MB accessible, 1021 - 1022 is locked,
20 * then 1023 - 1024 seems to contain mbm. For SRAM, see the notes
21 * below about SRAM and L3_ICLK2 being unused by default,
22 */
23 memory {
24 device_type = "memory";
25 reg = <0x80000000 0x3fd00000>; /* 1021 MB */
26 };
27
28 /* CPCAP really supports 1650000 to 3400000 range */
29 vmmc: regulator-mmc {
30 compatible = "regulator-fixed";
31 regulator-name = "vmmc";
32 regulator-min-microvolt = <3000000>;
33 regulator-max-microvolt = <3000000>;
34 regulator-always-on;
35 };
36
37 /* CPCAP really supports 3000000 to 3100000 range */
38 vemmc: regulator-emmc {
39 compatible = "regulator-fixed";
40 regulator-name = "vemmc";
41 regulator-min-microvolt = <3000000>;
42 regulator-max-microvolt = <3000000>;
43 regulator-always-on;
44 };
45
46 /* CPCAP really supports 1650000 to 1950000 range */
47 wl12xx_vmmc: regulator-wl12xx {
48 compatible = "regulator-fixed";
49 regulator-name = "vwl1271";
50 regulator-min-microvolt = <1650000>;
51 regulator-max-microvolt = <1650000>;
52 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>; /* gpio94 */
53 startup-delay-us = <70000>;
54 enable-active-high;
55 };
56};
57
58/* L3_2 interconnect is unused, SRAM, GPMC and L3_ICLK2 disabled */
59&gpmc {
60 status = "disabled";
61};
62
63&mmc1 {
64 vmmc-supply = <&vmmc>;
65 bus-width = <4>;
66 cd-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* gpio106 */
67};
68
69&mmc2 {
70 vmmc-supply = <&vemmc>;
71 bus-width = <8>;
72 non-removable;
73};
74
75&mmc3 {
76 vmmc-supply = <&wl12xx_vmmc>;
77 interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH
78 &omap4_pmx_core 0xde>;
79
80 non-removable;
81 bus-width = <4>;
82 cap-power-off-card;
83
84 #address-cells = <1>;
85 #size-cells = <0>;
86 wlcore: wlcore@2 {
87 compatible = "ti,wl1283";
88 reg = <2>;
89 interrupt-parent = <&gpio4>;
90 interrupts = <4 IRQ_TYPE_LEVEL_HIGH>; /* gpio100 */
91 ref-clock-frequency = <26000000>;
92 tcxo-clock-frequency = <26000000>;
93 };
94};
95
96/* L3_2 interconnect is unused, SRAM, GPMC and L3_ICLK2 disabled */
97&ocmcram {
98 status = "disabled";
99};
100
101&omap4_pmx_core {
102 usb_gpio_mux_sel1: pinmux_usb_gpio_mux_sel1_pins {
103 /* gpio_60 */
104 pinctrl-single,pins = <
105 OMAP4_IOPAD(0x088, PIN_OUTPUT | MUX_MODE3)
106 >;
107 };
108
109 usb_ulpi_pins: pinmux_usb_ulpi_pins {
110 pinctrl-single,pins = <
111 OMAP4_IOPAD(0x196, MUX_MODE7)
112 OMAP4_IOPAD(0x198, MUX_MODE7)
113 OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE0)
114 OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE0)
115 OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE0)
116 OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE0)
117 OMAP4_IOPAD(0x1ba, PIN_INPUT_PULLUP | MUX_MODE0)
118 OMAP4_IOPAD(0x1bc, PIN_INPUT_PULLUP | MUX_MODE0)
119 OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE0)
120 OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE0)
121 OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE0)
122 OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE0)
123 OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE0)
124 OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE0)
125 >;
126 };
127
128 /* usb0_otg_dp and usb0_otg_dm */
129 usb_utmi_pins: pinmux_usb_utmi_pins {
130 pinctrl-single,pins = <
131 OMAP4_IOPAD(0x196, PIN_INPUT | MUX_MODE0)
132 OMAP4_IOPAD(0x198, PIN_INPUT | MUX_MODE0)
133 OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE7)
134 OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE7)
135 OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE7)
136 OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE7)
137 OMAP4_IOPAD(0x1ba, PIN_INPUT_PULLUP | MUX_MODE7)
138 OMAP4_IOPAD(0x1bc, PIN_INPUT_PULLUP | MUX_MODE7)
139 OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE7)
140 OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE7)
141 OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE7)
142 OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE7)
143 OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE7)
144 OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE7)
145 >;
146 };
147
148 /* uart3_tx_irtx and uart3_rx_irrx */
149 uart3_pins: pinmux_uart3_pins {
150 pinctrl-single,pins = <
151 OMAP4_IOPAD(0x196, MUX_MODE7)
152 OMAP4_IOPAD(0x198, MUX_MODE7)
153 OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE7)
154 OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE7)
155 OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE7)
156 OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE7)
157 OMAP4_IOPAD(0x1ba, MUX_MODE2)
158 OMAP4_IOPAD(0x1bc, PIN_INPUT | MUX_MODE2)
159 OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE7)
160 OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE7)
161 OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE7)
162 OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE7)
163 OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE7)
164 OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE7)
165 >;
166 };
167};
168
169&omap4_pmx_wkup {
170 usb_gpio_mux_sel2: pinmux_usb_gpio_mux_sel2_pins {
171 /* gpio_wk0 */
172 pinctrl-single,pins = <
173 OMAP4_IOPAD(0x040, PIN_OUTPUT_PULLDOWN | MUX_MODE3)
174 >;
175 };
176};
177
178&uart3 {
179 interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
180 &omap4_pmx_core 0x17c>;
181};
182
183/* Internal UTMI+ PHY used for OTG, CPCAP ULPI PHY for detection and charger */
184&usb_otg_hs {
185 interface-type = <1>;
186 mode = <3>;
187 power = <50>;
188};