1// SPDX-License-Identifier: GPL-2.0-only
2
3/dts-v1/;
4
5#include "msm8916-wingtech-wt865x8.dtsi"
6
7/ {
8	model = "Lenovo A6010 (Wingtech WT86528)";
9	compatible = "wingtech,wt86528", "qcom,msm8916";
10	chassis-type = "handset";
11
12	/* left AW8736 */
13	speaker_amp_left: audio-amplifier-left {
14		compatible = "awinic,aw8738";
15
16		pinctrl-0 = <&spk_ext_pa_left_default>;
17		pinctrl-names = "default";
18
19		mode-gpios = <&tlmm 119 GPIO_ACTIVE_HIGH>;
20		sound-name-prefix = "Speaker Amp L";
21		awinic,mode = <3>;
22	};
23
24	/* right AW8736 */
25	speaker_amp_right: audio-amplifier-right {
26		compatible = "awinic,aw8738";
27
28		pinctrl-0 = <&spk_ext_pa_right_default>;
29		pinctrl-names = "default";
30
31		mode-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>;
32		sound-name-prefix = "Speaker Amp R";
33		awinic,mode = <3>;
34	};
35
36	gpio-leds {
37		compatible = "gpio-leds";
38
39		pinctrl-0 = <&gpio_leds_default>;
40		pinctrl-names = "default";
41
42		led-0 {
43			gpios = <&tlmm 16 GPIO_ACTIVE_LOW>;
44			label = "red";
45			default-state = "off";
46			retain-state-suspended;
47		};
48
49		led-1 {
50			gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
51			label = "green";
52			default-state = "off";
53			retain-state-suspended;
54		};
55	};
56
57	usb_id: usb-id {
58		compatible = "linux,extcon-usb-gpio";
59		id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
60		pinctrl-0 = <&usb_id_default>;
61		pinctrl-names = "default";
62	};
63};
64
65&blsp_i2c2 {
66	magnetometer@c {
67		compatible = "asahi-kasei,ak09911";
68		reg = <0x0c>;
69
70		vdd-supply = <&pm8916_l17>;
71		vid-supply = <&pm8916_l6>;
72	};
73
74	imu@68 {
75		compatible = "invensense,mpu6880";
76		reg = <0x68>;
77
78		interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_RISING>;
79
80		vdd-supply = <&pm8916_l17>;
81		vddio-supply = <&pm8916_l6>;
82
83		pinctrl-0 = <&imu_default>;
84		pinctrl-names = "default";
85
86		mount-matrix = "1",  "0", "0",
87			       "0", "-1", "0",
88			       "0",  "0", "1";
89	};
90};
91
92&pm8916_codec {
93	qcom,micbias1-ext-cap;
94};
95
96&sound {
97	model = "wt86528";
98	widgets = "Speaker", "Speaker",
99		  "Headphone", "Headphones";
100	pin-switches = "Speaker", "Headphones";
101	audio-routing = "Speaker", "Speaker Amp L OUT",
102			"Speaker", "Speaker Amp R OUT",
103			"Speaker Amp L IN", "HPH_L",
104			"Speaker Amp R IN", "HPH_R",
105			"Headphones", "Headphones Switch OUTL",
106			"Headphones", "Headphones Switch OUTR",
107			"Headphones Switch INL", "HPH_L",
108			"Headphones Switch INR", "HPH_R",
109			"AMIC1", "MIC BIAS External1",
110			"AMIC2", "MIC BIAS Internal2",
111			"AMIC3", "MIC BIAS External1";
112	aux-devs = <&speaker_amp_left>, <&speaker_amp_right>, <&headphones_switch>;
113};
114
115&usb {
116	extcon = <&usb_id>, <&usb_id>;
117};
118
119&usb_hs_phy {
120	extcon = <&usb_id>;
121};
122
123&tlmm {
124	gpio_leds_default: gpio-leds-default-state {
125		pins = "gpio16", "gpio17";
126		function = "gpio";
127		drive-strength = <2>;
128		bias-disable;
129	};
130
131	imu_default: imu-default-state {
132		pins = "gpio115";
133		function = "gpio";
134		drive-strength = <2>;
135		bias-disable;
136	};
137
138	spk_ext_pa_left_default: spk-ext-pa-left-default-state {
139		pins = "gpio119";
140		function = "gpio";
141		drive-strength = <2>;
142		bias-disable;
143	};
144
145	spk_ext_pa_right_default: spk-ext-pa-right-default-state {
146		pins = "gpio121";
147		function = "gpio";
148		drive-strength = <2>;
149		bias-disable;
150	};
151
152	usb_id_default: usb-id-default-state {
153		pins = "gpio110";
154		function = "gpio";
155		drive-strength = <8>;
156		bias-pull-up;
157	};
158};
159