162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/dts-v1/;
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#include "motorola-mapphone-common.dtsi"
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci/ {
762306a36Sopenharmony_ci	gpio_keys {
862306a36Sopenharmony_ci		compatible = "gpio-keys";
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci		volume_down {
1162306a36Sopenharmony_ci			label = "Volume Down";
1262306a36Sopenharmony_ci			gpios = <&gpio5 26 GPIO_ACTIVE_LOW>; /* gpio154 */
1362306a36Sopenharmony_ci			linux,code = <KEY_VOLUMEDOWN>;
1462306a36Sopenharmony_ci			linux,can-disable;
1562306a36Sopenharmony_ci			/* Value above 7.95ms for no GPIO hardware debounce */
1662306a36Sopenharmony_ci			debounce-interval = <10>;
1762306a36Sopenharmony_ci		};
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci		/*
2062306a36Sopenharmony_ci		 * We use pad 0x4a100116 abe_dmic_din3.gpio_122 as the irq instead
2162306a36Sopenharmony_ci		 * of the gpio interrupt to avoid lost events in deeper idle states.
2262306a36Sopenharmony_ci		*/
2362306a36Sopenharmony_ci		slider {
2462306a36Sopenharmony_ci			label = "Keypad Slide";
2562306a36Sopenharmony_ci			interrupts-extended = <&omap4_pmx_core 0xd6>;
2662306a36Sopenharmony_ci			gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* gpio122 */
2762306a36Sopenharmony_ci			linux,input-type = <EV_SW>;
2862306a36Sopenharmony_ci			linux,code = <SW_KEYPAD_SLIDE>;
2962306a36Sopenharmony_ci			linux,can-disable;
3062306a36Sopenharmony_ci			/* Value above 7.95ms for no GPIO hardware debounce */
3162306a36Sopenharmony_ci			debounce-interval = <10>;
3262306a36Sopenharmony_ci		};
3362306a36Sopenharmony_ci	};
3462306a36Sopenharmony_ci};
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci/ {
3762306a36Sopenharmony_ci	model = "Motorola Droid 4 XT894";
3862306a36Sopenharmony_ci	compatible = "motorola,droid4", "ti,omap4430", "ti,omap4";
3962306a36Sopenharmony_ci};
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci&keypad {
4262306a36Sopenharmony_ci	keypad,num-rows = <8>;
4362306a36Sopenharmony_ci	keypad,num-columns = <8>;
4462306a36Sopenharmony_ci	linux,keymap = <
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci	/* Row 1 */
4762306a36Sopenharmony_ci	MATRIX_KEY(0, 2, KEY_1)
4862306a36Sopenharmony_ci	MATRIX_KEY(0, 6, KEY_2)
4962306a36Sopenharmony_ci	MATRIX_KEY(2, 3, KEY_3)
5062306a36Sopenharmony_ci	MATRIX_KEY(0, 7, KEY_4)
5162306a36Sopenharmony_ci	MATRIX_KEY(0, 4, KEY_5)
5262306a36Sopenharmony_ci	MATRIX_KEY(5, 5, KEY_6)
5362306a36Sopenharmony_ci	MATRIX_KEY(0, 1, KEY_7)
5462306a36Sopenharmony_ci	MATRIX_KEY(0, 5, KEY_8)
5562306a36Sopenharmony_ci	MATRIX_KEY(0, 0, KEY_9)
5662306a36Sopenharmony_ci	MATRIX_KEY(1, 6, KEY_0)
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci	/* Row 2 */
5962306a36Sopenharmony_ci	MATRIX_KEY(3, 4, KEY_APOSTROPHE)
6062306a36Sopenharmony_ci	MATRIX_KEY(7, 6, KEY_Q)
6162306a36Sopenharmony_ci	MATRIX_KEY(7, 7, KEY_W)
6262306a36Sopenharmony_ci	MATRIX_KEY(7, 2, KEY_E)
6362306a36Sopenharmony_ci	MATRIX_KEY(1, 0, KEY_R)
6462306a36Sopenharmony_ci	MATRIX_KEY(4, 4, KEY_T)
6562306a36Sopenharmony_ci	MATRIX_KEY(1, 2, KEY_Y)
6662306a36Sopenharmony_ci	MATRIX_KEY(6, 7, KEY_U)
6762306a36Sopenharmony_ci	MATRIX_KEY(2, 2, KEY_I)
6862306a36Sopenharmony_ci	MATRIX_KEY(5, 6, KEY_O)
6962306a36Sopenharmony_ci	MATRIX_KEY(3, 7, KEY_P)
7062306a36Sopenharmony_ci	MATRIX_KEY(6, 5, KEY_BACKSPACE)
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci	/* Row 3 */
7362306a36Sopenharmony_ci	MATRIX_KEY(5, 4, KEY_TAB)
7462306a36Sopenharmony_ci	MATRIX_KEY(5, 7, KEY_A)
7562306a36Sopenharmony_ci	MATRIX_KEY(2, 7, KEY_S)
7662306a36Sopenharmony_ci	MATRIX_KEY(7, 0, KEY_D)
7762306a36Sopenharmony_ci	MATRIX_KEY(2, 6, KEY_F)
7862306a36Sopenharmony_ci	MATRIX_KEY(6, 2, KEY_G)
7962306a36Sopenharmony_ci	MATRIX_KEY(6, 6, KEY_H)
8062306a36Sopenharmony_ci	MATRIX_KEY(1, 4, KEY_J)
8162306a36Sopenharmony_ci	MATRIX_KEY(3, 1, KEY_K)
8262306a36Sopenharmony_ci	MATRIX_KEY(2, 1, KEY_L)
8362306a36Sopenharmony_ci	MATRIX_KEY(4, 6, KEY_ENTER)
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	/* Row 4 */
8662306a36Sopenharmony_ci	MATRIX_KEY(3, 6, KEY_LEFTSHIFT)		/* KEY_CAPSLOCK */
8762306a36Sopenharmony_ci	MATRIX_KEY(6, 1, KEY_Z)
8862306a36Sopenharmony_ci	MATRIX_KEY(7, 4, KEY_X)
8962306a36Sopenharmony_ci	MATRIX_KEY(5, 1, KEY_C)
9062306a36Sopenharmony_ci	MATRIX_KEY(1, 7, KEY_V)
9162306a36Sopenharmony_ci	MATRIX_KEY(2, 4, KEY_B)
9262306a36Sopenharmony_ci	MATRIX_KEY(4, 1, KEY_N)
9362306a36Sopenharmony_ci	MATRIX_KEY(1, 1, KEY_M)
9462306a36Sopenharmony_ci	MATRIX_KEY(3, 5, KEY_COMMA)
9562306a36Sopenharmony_ci	MATRIX_KEY(5, 2, KEY_DOT)
9662306a36Sopenharmony_ci	MATRIX_KEY(6, 3, KEY_UP)
9762306a36Sopenharmony_ci	MATRIX_KEY(7, 3, KEY_OK)
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci	/* Row 5 */
10062306a36Sopenharmony_ci	MATRIX_KEY(2, 5, KEY_LEFTCTRL)		/* KEY_LEFTSHIFT */
10162306a36Sopenharmony_ci	MATRIX_KEY(4, 5, KEY_LEFTALT)		/* SYM */
10262306a36Sopenharmony_ci	MATRIX_KEY(6, 0, KEY_MINUS)
10362306a36Sopenharmony_ci	MATRIX_KEY(4, 7, KEY_EQUAL)
10462306a36Sopenharmony_ci	MATRIX_KEY(1, 5, KEY_SPACE)
10562306a36Sopenharmony_ci	MATRIX_KEY(3, 2, KEY_SLASH)
10662306a36Sopenharmony_ci	MATRIX_KEY(4, 3, KEY_LEFT)
10762306a36Sopenharmony_ci	MATRIX_KEY(5, 3, KEY_DOWN)
10862306a36Sopenharmony_ci	MATRIX_KEY(3, 3, KEY_RIGHT)
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci	/* Side buttons, KEY_VOLUMEDOWN and KEY_PWER are on CPCAP? */
11162306a36Sopenharmony_ci	MATRIX_KEY(5, 0, KEY_VOLUMEUP)
11262306a36Sopenharmony_ci	>;
11362306a36Sopenharmony_ci};
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci&i2c1 {
11662306a36Sopenharmony_ci	led-controller@38 {
11762306a36Sopenharmony_ci		compatible = "ti,lm3532";
11862306a36Sopenharmony_ci		#address-cells = <1>;
11962306a36Sopenharmony_ci		#size-cells = <0>;
12062306a36Sopenharmony_ci		reg = <0x38>;
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci		enable-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci		ramp-up-us = <1024>;
12562306a36Sopenharmony_ci		ramp-down-us = <8193>;
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci		backlight_led: led@0 {
12862306a36Sopenharmony_ci			reg = <0>;
12962306a36Sopenharmony_ci			led-sources = <2>;
13062306a36Sopenharmony_ci			ti,led-mode = <0>;
13162306a36Sopenharmony_ci			label = ":backlight";
13262306a36Sopenharmony_ci		};
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci		led@1 {
13562306a36Sopenharmony_ci			reg = <1>;
13662306a36Sopenharmony_ci			led-sources = <1>;
13762306a36Sopenharmony_ci			ti,led-mode = <0>;
13862306a36Sopenharmony_ci			label = ":kbd_backlight";
13962306a36Sopenharmony_ci		};
14062306a36Sopenharmony_ci	};
14162306a36Sopenharmony_ci};
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci&i2c4 {
14462306a36Sopenharmony_ci	lis3dh: accelerometer@18 {
14562306a36Sopenharmony_ci		compatible = "st,lis3dh-accel";
14662306a36Sopenharmony_ci		reg = <0x18>;
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci		vdd-supply = <&vhvio>;
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci		interrupt-parent = <&gpio2>;
15162306a36Sopenharmony_ci		interrupts = <2 IRQ_TYPE_EDGE_BOTH>; /* gpio34 */
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci		rotation-matrix = "0", "-1", "0",
15462306a36Sopenharmony_ci				  "1", "0", "0",
15562306a36Sopenharmony_ci				  "0", "0", "1";
15662306a36Sopenharmony_ci	};
15762306a36Sopenharmony_ci};
158