Merge tag 'dt-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-2.6-microblaze.git] / arch / arm / boot / dts / sun4i-a10-topwise-a721.dts
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Copyright 2020 Pascal Roeleven <dev@pascalroeleven.nl>
4  */
5
6 /dts-v1/;
7 #include "sun4i-a10.dtsi"
8 #include "sunxi-common-regulators.dtsi"
9
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/input/input.h>
12 #include <dt-bindings/interrupt-controller/irq.h>
13 #include <dt-bindings/pwm/pwm.h>
14
15 / {
16         model = "Topwise A721";
17         compatible = "topwise,a721", "allwinner,sun4i-a10";
18
19         aliases {
20                 serial0 = &uart0;
21         };
22
23         backlight: backlight {
24                 compatible = "pwm-backlight";
25                 pwms = <&pwm 0 100000 PWM_POLARITY_INVERTED>;
26                 power-supply = <&reg_vbat>;
27                 enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
28                 brightness-levels = <0 30 40 50 60 70 80 90 100>;
29                 default-brightness-level = <8>;
30         };
31
32         chosen {
33                 stdout-path = "serial0:115200n8";
34         };
35
36         panel {
37                 compatible = "starry,kr070pe2t";
38                 backlight = <&backlight>;
39                 power-supply = <&reg_lcd_power>;
40
41                 port {
42                         panel_input: endpoint {
43                                 remote-endpoint = <&tcon0_out_panel>;
44                         };
45                 };
46         };
47
48         reg_lcd_power: reg-lcd-power {
49                 compatible = "regulator-fixed";
50                 regulator-name = "reg-lcd-power";
51                 gpio = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */
52                 enable-active-high;
53         };
54
55         reg_vbat: reg-vbat {
56                 compatible = "regulator-fixed";
57                 regulator-name = "vbat";
58                 regulator-min-microvolt = <3700000>;
59                 regulator-max-microvolt = <3700000>;
60         };
61
62 };
63
64 &codec {
65         status = "okay";
66 };
67
68 &cpu0 {
69         cpu-supply = <&reg_dcdc2>;
70 };
71
72 &de {
73         status = "okay";
74 };
75
76 &ehci0 {
77         status = "okay";
78 };
79
80 &ehci1 {
81         status = "okay";
82 };
83
84 &i2c0 {
85         status = "okay";
86
87         axp209: pmic@34 {
88                 reg = <0x34>;
89                 interrupts = <0>;
90         };
91 };
92
93 #include "axp209.dtsi"
94
95 &ac_power_supply {
96         status = "okay";
97 };
98
99 &battery_power_supply {
100         status = "okay";
101 };
102
103 &i2c1 {
104         status = "okay";
105
106         accelerometer@4c {
107                 compatible = "fsl,mma7660";
108                 reg = <0x4c>;
109         };
110 };
111
112 &i2c2 {
113         status = "okay";
114
115         touchscreen@38 {
116                 compatible = "edt,edt-ft5406";
117                 reg = <0x38>;
118                 interrupt-parent = <&pio>;
119                 interrupts = <7 21 IRQ_TYPE_EDGE_FALLING>;
120                 touchscreen-size-x = <800>;
121                 touchscreen-size-y = <480>;
122                 vcc-supply = <&reg_vcc3v3>;
123         };
124 };
125
126 &lradc {
127         vref-supply = <&reg_ldo2>;
128         status = "okay";
129
130         button-571 {
131                 label = "Volume Up";
132                 linux,code = <KEY_VOLUMEUP>;
133                 channel = <0>;
134                 voltage = <571428>;
135         };
136
137         button-761 {
138                 label = "Volume Down";
139                 linux,code = <KEY_VOLUMEDOWN>;
140                 channel = <0>;
141                 voltage = <761904>;
142         };
143 };
144
145 &mmc0 {
146         vmmc-supply = <&reg_vcc3v3>;
147         bus-width = <4>;
148         cd-gpios = <&pio 7 1 GPIO_ACTIVE_LOW>; /* PH01 */
149         status = "okay";
150 };
151
152 &ohci0 {
153         status = "okay";
154 };
155
156 &ohci1 {
157         status = "okay";
158 };
159
160 &otg_sram {
161         status = "okay";
162 };
163
164 &pio {
165         vcc-pb-supply = <&reg_vcc3v3>;
166         vcc-pf-supply = <&reg_vcc3v3>;
167         vcc-ph-supply = <&reg_vcc3v3>;
168 };
169
170 &pwm {
171         pinctrl-names = "default";
172         pinctrl-0 = <&pwm0_pin>;
173         status = "okay";
174 };
175
176 &reg_dcdc2 {
177         regulator-always-on;
178         regulator-min-microvolt = <1000000>;
179         regulator-max-microvolt = <1400000>;
180         regulator-name = "vdd-cpu";
181 };
182
183 &reg_dcdc3 {
184         regulator-always-on;
185         regulator-min-microvolt = <1250000>;
186         regulator-max-microvolt = <1250000>;
187         regulator-name = "vdd-int-dll";
188 };
189
190 &reg_ldo1 {
191         regulator-name = "vdd-rtc";
192 };
193
194 &reg_ldo2 {
195         regulator-always-on;
196         regulator-min-microvolt = <3000000>;
197         regulator-max-microvolt = <3000000>;
198         regulator-name = "avcc";
199 };
200
201 &reg_usb0_vbus {
202         status = "okay";
203 };
204
205 &reg_usb1_vbus {
206         status = "okay";
207 };
208
209 &reg_usb2_vbus {
210         status = "okay";
211 };
212
213 &tcon0_out {
214         tcon0_out_panel: endpoint@0 {
215                 reg = <0>;
216                 remote-endpoint = <&panel_input>;
217         };
218 };
219
220 &uart0 {
221         pinctrl-names = "default";
222         pinctrl-0 = <&uart0_pb_pins>;
223         status = "okay";
224 };
225
226 &usb_otg {
227         dr_mode = "otg";
228         status = "okay";
229 };
230
231 &usb_power_supply {
232         status = "okay";
233 };
234
235 &usbphy {
236         usb0_id_det-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
237         usb0_vbus_det-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
238         usb0_vbus-supply = <&reg_usb0_vbus>;
239         usb1_vbus-supply = <&reg_usb1_vbus>;
240         usb2_vbus-supply = <&reg_usb2_vbus>;
241         status = "okay";
242 };