Skip to content

Commit caa67b0

Browse files
hitechshelljernejsk
authored andcommitted
ARM: dts: sun5i: Add PocketBook 614 Plus support
What works: - Serial console - mmc0, mmc2 (both microSD card slots on the board) - All buttons (gpio and lradc based) - Power LED - PMIC - RTC - USB OTG/gadgets mode Signed-off-by: Denis Burkov <hitechshell@mail.ru> Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com> Link: https://lore.kernel.org/r/20240415173416.13838-2-hitechshell@mail.ru Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
1 parent fa4c4df commit caa67b0

2 files changed

Lines changed: 219 additions & 0 deletions

File tree

arch/arm/boot/dts/allwinner/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \
6161
sun5i-a13-olinuxino.dtb \
6262
sun5i-a13-olinuxino-micro.dtb \
6363
sun5i-a13-pocketbook-touch-lux-3.dtb \
64+
sun5i-a13-pocketbook-614-plus.dtb \
6465
sun5i-a13-q8-tablet.dtb \
6566
sun5i-a13-utoo-p66.dtb \
6667
sun5i-gr8-chip-pro.dtb \
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
// SPDX-License-Identifier: GPL-2.0+
2+
/*
3+
* Copyright 2024 Denis Burkov <hitechshell@mail.ru>
4+
*/
5+
6+
/dts-v1/;
7+
#include "sun5i-a13.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/leds/common.h>
14+
15+
/ {
16+
model = "PocketBook 614 Plus";
17+
compatible = "pocketbook,614-plus", "allwinner,sun5i-a13";
18+
19+
aliases {
20+
serial0 = &uart1;
21+
};
22+
23+
chosen {
24+
stdout-path = "serial0:115200n8";
25+
};
26+
27+
leds {
28+
compatible = "gpio-leds";
29+
30+
led-0 {
31+
color = <LED_COLOR_ID_WHITE>;
32+
function = LED_FUNCTION_POWER;
33+
linux,default-trigger = "default-on";
34+
gpios = <&pio 4 8 GPIO_ACTIVE_LOW>; /* PE8 */
35+
};
36+
};
37+
38+
gpio-keys {
39+
compatible = "gpio-keys";
40+
41+
key-0 {
42+
label = "Right";
43+
linux,code = <KEY_NEXT>;
44+
gpios = <&pio 6 9 GPIO_ACTIVE_LOW>; /* PG9 */
45+
};
46+
47+
key-1 {
48+
label = "Left";
49+
linux,code = <KEY_PREVIOUS>;
50+
gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 */
51+
};
52+
};
53+
54+
reg_3v3_mmc0: regulator-mmc0 {
55+
compatible = "regulator-fixed";
56+
regulator-name = "vdd-mmc0";
57+
regulator-min-microvolt = <3300000>;
58+
regulator-max-microvolt = <3300000>;
59+
gpio = <&pio 4 4 GPIO_ACTIVE_LOW>; /* PE4 */
60+
vin-supply = <&reg_vcc3v3>;
61+
};
62+
};
63+
64+
&cpu0 {
65+
cpu-supply = <&reg_dcdc2>;
66+
};
67+
68+
&ehci0 {
69+
status = "okay";
70+
};
71+
72+
&i2c0 {
73+
status = "okay";
74+
75+
axp209: pmic@34 {
76+
compatible = "x-powers,axp209";
77+
reg = <0x34>;
78+
interrupts = <0>;
79+
};
80+
};
81+
82+
#include "axp209.dtsi"
83+
84+
&i2c1 {
85+
status = "okay";
86+
87+
pcf8563: rtc@51 {
88+
compatible = "nxp,pcf8563";
89+
reg = <0x51>;
90+
#clock-cells = <0>;
91+
};
92+
};
93+
94+
&lradc {
95+
vref-supply = <&reg_ldo2>;
96+
status = "okay";
97+
98+
button-300 {
99+
label = "Down";
100+
linux,code = <KEY_DOWN>;
101+
channel = <0>;
102+
voltage = <300000>;
103+
};
104+
105+
button-700 {
106+
label = "Up";
107+
linux,code = <KEY_UP>;
108+
channel = <0>;
109+
voltage = <700000>;
110+
};
111+
112+
button-1000 {
113+
label = "Left";
114+
linux,code = <KEY_LEFT>;
115+
channel = <0>;
116+
voltage = <1000000>;
117+
};
118+
119+
button-1200 {
120+
label = "Menu";
121+
linux,code = <KEY_MENU>;
122+
channel = <0>;
123+
voltage = <1200000>;
124+
};
125+
126+
button-1500 {
127+
label = "Right";
128+
linux,code = <KEY_RIGHT>;
129+
channel = <0>;
130+
voltage = <1500000>;
131+
};
132+
};
133+
134+
&mmc0 {
135+
vmmc-supply = <&reg_3v3_mmc0>;
136+
bus-width = <4>;
137+
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
138+
status = "okay";
139+
};
140+
141+
&mmc2 {
142+
pinctrl-names = "default";
143+
pinctrl-0 = <&mmc2_4bit_pc_pins>;
144+
vmmc-supply = <&reg_vcc3v3>;
145+
bus-width = <4>;
146+
non-removable;
147+
status = "okay";
148+
};
149+
150+
&ohci0 {
151+
status = "okay";
152+
};
153+
154+
&otg_sram {
155+
status = "okay";
156+
};
157+
158+
&reg_dcdc2 {
159+
regulator-always-on;
160+
regulator-min-microvolt = <1000000>;
161+
regulator-max-microvolt = <1500000>;
162+
regulator-name = "vdd-cpu";
163+
};
164+
165+
&reg_dcdc3 {
166+
regulator-always-on;
167+
regulator-min-microvolt = <1000000>;
168+
regulator-max-microvolt = <1400000>;
169+
regulator-name = "vdd-int-dll";
170+
};
171+
172+
&reg_ldo1 {
173+
regulator-name = "vdd-rtc";
174+
};
175+
176+
&reg_ldo2 {
177+
regulator-always-on;
178+
regulator-min-microvolt = <3000000>;
179+
regulator-max-microvolt = <3000000>;
180+
regulator-name = "avcc";
181+
};
182+
183+
&reg_usb0_vbus {
184+
status = "okay";
185+
gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
186+
};
187+
188+
&reg_usb1_vbus {
189+
gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
190+
status = "okay";
191+
};
192+
193+
&uart1 {
194+
pinctrl-names = "default";
195+
pinctrl-0 = <&uart1_pg_pins>;
196+
status = "okay";
197+
};
198+
199+
&usb_otg {
200+
dr_mode = "otg";
201+
status = "okay";
202+
};
203+
204+
&usb_power_supply {
205+
status = "okay";
206+
};
207+
208+
&battery_power_supply {
209+
status = "okay";
210+
};
211+
212+
&usbphy {
213+
usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
214+
usb0_vbus_det-gpios = <&axp_gpio 1 GPIO_ACTIVE_HIGH>;
215+
usb0_vbus-supply = <&reg_usb0_vbus>;
216+
usb1_vbus-supply = <&reg_usb1_vbus>;
217+
status = "okay";
218+
};

0 commit comments

Comments
 (0)