1// SPDX-License-Identifier: GPL-2.0-only
2/dts-v1/;
3
4#include "motorola-mapphone-xt8xx.dtsi"
5
6/ {
7	model = "Motorola Droid 4 XT894";
8	compatible = "motorola,droid4", "ti,omap4430", "ti,omap4";
9
10	chosen {
11		stdout-path = &uart3;
12	};
13
14	aliases {
15		display0 = &lcd0;
16		display1 = &hdmi0;
17	};
18
19	gpio_keys {
20		compatible = "gpio-keys";
21
22		volume_down {
23			label = "Volume Down";
24			gpios = <&gpio5 26 GPIO_ACTIVE_LOW>; /* gpio154 */
25			linux,code = <KEY_VOLUMEDOWN>;
26			linux,can-disable;
27			/* Value above 7.95ms for no GPIO hardware debounce */
28			debounce-interval = <10>;
29		};
30
31		/*
32		 * We use pad 0x4a100116 abe_dmic_din3.gpio_122 as the irq instead
33		 * of the gpio interrupt to avoid lost events in deeper idle states.
34		*/
35		slider {
36			label = "Keypad Slide";
37			interrupts-extended = <&omap4_pmx_core 0xd6>;
38			gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* gpio122 */
39			linux,input-type = <EV_SW>;
40			linux,code = <SW_KEYPAD_SLIDE>;
41			linux,can-disable;
42			/* Value above 7.95ms for no GPIO hardware debounce */
43			debounce-interval = <10>;
44		};
45	};
46};
47
48&keypad {
49	keypad,num-rows = <8>;
50	keypad,num-columns = <8>;
51	linux,keymap = <
52
53	/* Row 1 */
54	MATRIX_KEY(0, 2, KEY_1)
55	MATRIX_KEY(0, 6, KEY_2)
56	MATRIX_KEY(2, 3, KEY_3)
57	MATRIX_KEY(0, 7, KEY_4)
58	MATRIX_KEY(0, 4, KEY_5)
59	MATRIX_KEY(5, 5, KEY_6)
60	MATRIX_KEY(0, 1, KEY_7)
61	MATRIX_KEY(0, 5, KEY_8)
62	MATRIX_KEY(0, 0, KEY_9)
63	MATRIX_KEY(1, 6, KEY_0)
64
65	/* Row 2 */
66	MATRIX_KEY(3, 4, KEY_APOSTROPHE)
67	MATRIX_KEY(7, 6, KEY_Q)
68	MATRIX_KEY(7, 7, KEY_W)
69	MATRIX_KEY(7, 2, KEY_E)
70	MATRIX_KEY(1, 0, KEY_R)
71	MATRIX_KEY(4, 4, KEY_T)
72	MATRIX_KEY(1, 2, KEY_Y)
73	MATRIX_KEY(6, 7, KEY_U)
74	MATRIX_KEY(2, 2, KEY_I)
75	MATRIX_KEY(5, 6, KEY_O)
76	MATRIX_KEY(3, 7, KEY_P)
77	MATRIX_KEY(6, 5, KEY_BACKSPACE)
78
79	/* Row 3 */
80	MATRIX_KEY(5, 4, KEY_TAB)
81	MATRIX_KEY(5, 7, KEY_A)
82	MATRIX_KEY(2, 7, KEY_S)
83	MATRIX_KEY(7, 0, KEY_D)
84	MATRIX_KEY(2, 6, KEY_F)
85	MATRIX_KEY(6, 2, KEY_G)
86	MATRIX_KEY(6, 6, KEY_H)
87	MATRIX_KEY(1, 4, KEY_J)
88	MATRIX_KEY(3, 1, KEY_K)
89	MATRIX_KEY(2, 1, KEY_L)
90	MATRIX_KEY(4, 6, KEY_ENTER)
91
92	/* Row 4 */
93	MATRIX_KEY(3, 6, KEY_LEFTSHIFT)		/* KEY_CAPSLOCK */
94	MATRIX_KEY(6, 1, KEY_Z)
95	MATRIX_KEY(7, 4, KEY_X)
96	MATRIX_KEY(5, 1, KEY_C)
97	MATRIX_KEY(1, 7, KEY_V)
98	MATRIX_KEY(2, 4, KEY_B)
99	MATRIX_KEY(4, 1, KEY_N)
100	MATRIX_KEY(1, 1, KEY_M)
101	MATRIX_KEY(3, 5, KEY_COMMA)
102	MATRIX_KEY(5, 2, KEY_DOT)
103	MATRIX_KEY(6, 3, KEY_UP)
104	MATRIX_KEY(7, 3, KEY_OK)
105
106	/* Row 5 */
107	MATRIX_KEY(2, 5, KEY_LEFTCTRL)		/* KEY_LEFTSHIFT */
108	MATRIX_KEY(4, 5, KEY_LEFTALT)		/* SYM */
109	MATRIX_KEY(6, 0, KEY_MINUS)
110	MATRIX_KEY(4, 7, KEY_EQUAL)
111	MATRIX_KEY(1, 5, KEY_SPACE)
112	MATRIX_KEY(3, 2, KEY_SLASH)
113	MATRIX_KEY(4, 3, KEY_LEFT)
114	MATRIX_KEY(5, 3, KEY_DOWN)
115	MATRIX_KEY(3, 3, KEY_RIGHT)
116
117	/* Side buttons, KEY_VOLUMEDOWN and KEY_PWER are on CPCAP? */
118	MATRIX_KEY(5, 0, KEY_VOLUMEUP)
119	>;
120};
121
122&i2c1 {
123	led-controller@38 {
124		compatible = "ti,lm3532";
125		#address-cells = <1>;
126		#size-cells = <0>;
127		reg = <0x38>;
128
129		enable-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;
130
131		ramp-up-us = <1024>;
132		ramp-down-us = <8193>;
133
134		backlight_led: led@0 {
135			reg = <0>;
136			led-sources = <2>;
137			ti,led-mode = <0>;
138			label = ":backlight";
139		};
140
141		led@1 {
142			reg = <1>;
143			led-sources = <1>;
144			ti,led-mode = <0>;
145			label = ":kbd_backlight";
146		};
147	};
148};
149
150&i2c4 {
151	lis3dh: accelerometer@18 {
152		compatible = "st,lis3dh-accel";
153		reg = <0x18>;
154
155		vdd-supply = <&vhvio>;
156
157		interrupt-parent = <&gpio2>;
158		interrupts = <2 IRQ_TYPE_EDGE_BOTH>; /* gpio34 */
159
160		rotation-matrix = "0", "-1", "0",
161				  "1", "0", "0",
162				  "0", "0", "1";
163	};
164};
165