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