Skip to content

Commit 1e9ac3e

Browse files
macromorganmmind
authored andcommitted
arm64: dts: rockchip: add support for Powkiddy RGB30
The Powkiddy RGB30 is a portable game device based on the Rockchip RK3566 SoC. It has GPIO buttons on the face and sides for input, stereo speakers, a 720x720 4 inch DSI display, a USB-C host port and a USB-C peripheral port, dual SD card slots, WiFi, Bluetooth, and 1GB of RAM. Working/Tested: - SDMMC - UART (for debugging) - Buttons - Charging/battery/PMIC - Speaker/Headphones - USB - WiFi - Bluetooth - Display (at 59.04hz) Signed-off-by: Chris Morgan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Heiko Stuebner <[email protected]>
1 parent 64d0de4 commit 1e9ac3e

File tree

2 files changed

+153
-0
lines changed

2 files changed

+153
-0
lines changed

arch/arm64/boot/dts/rockchip/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353vs.dtb
7777
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg503.dtb
7878
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.1.dtb
7979
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.2.dtb
80+
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-powkiddy-rgb30.dtb
8081
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb
8182
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-b.dtb
8283
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-radxa-cm3-io.dtb
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+
3+
/dts-v1/;
4+
5+
#include <dt-bindings/gpio/gpio.h>
6+
#include <dt-bindings/input/linux-event-codes.h>
7+
#include <dt-bindings/pinctrl/rockchip.h>
8+
#include "rk3566-anbernic-rg353x.dtsi"
9+
10+
/ {
11+
model = "RGB30";
12+
compatible = "powkiddy,rgb30", "rockchip,rk3566";
13+
14+
aliases {
15+
mmc1 = &sdmmc0;
16+
mmc2 = &sdmmc1;
17+
mmc3 = &sdmmc2;
18+
};
19+
20+
battery: battery {
21+
compatible = "simple-battery";
22+
charge-full-design-microamp-hours = <3151000>;
23+
charge-term-current-microamp = <300000>;
24+
constant-charge-current-max-microamp = <2000000>;
25+
constant-charge-voltage-max-microvolt = <4250000>;
26+
factory-internal-resistance-micro-ohms = <117000>;
27+
voltage-max-design-microvolt = <4172000>;
28+
voltage-min-design-microvolt = <3400000>;
29+
30+
ocv-capacity-celsius = <20>;
31+
ocv-capacity-table-0 = <4172000 100>, <4092000 95>, <4035000 90>, <3990000 85>,
32+
<3939000 80>, <3895000 75>, <3852000 70>, <3807000 65>,
33+
<3762000 60>, <3713000 55>, <3672000 50>, <3647000 45>,
34+
<3629000 40>, <3613000 35>, <3598000 30>, <3578000 25>,
35+
<3550000 20>, <3519000 15>, <3479000 10>, <3438000 5>,
36+
<3400000 0>;
37+
};
38+
39+
/*
40+
* Channels reversed for speakers. Headphones automatically switch via hardware when
41+
* detected with no ability to control output in software. Headphones appear to be mono
42+
* (each output channel receives all audio). No microphone support on 3.5mm jack.
43+
*/
44+
sound {
45+
compatible = "simple-audio-card";
46+
simple-audio-card,name = "rk817_ext";
47+
simple-audio-card,format = "i2s";
48+
simple-audio-card,mclk-fs = <256>;
49+
simple-audio-card,widgets =
50+
"Headphone", "Headphones";
51+
simple-audio-card,routing =
52+
"Headphones", "HPOL",
53+
"Headphones", "HPOR";
54+
55+
simple-audio-card,codec {
56+
sound-dai = <&rk817>;
57+
};
58+
59+
simple-audio-card,cpu {
60+
sound-dai = <&i2s1_8ch>;
61+
};
62+
};
63+
};
64+
65+
/delete-node/ &adc_keys;
66+
67+
&cru {
68+
assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>,
69+
<&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
70+
assigned-clock-rates = <32768>, <1200000000>,
71+
<200000000>, <108000000>;
72+
};
73+
74+
&gpio_keys_control {
75+
button-r1 {
76+
gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
77+
label = "TR";
78+
linux,code = <BTN_TR>;
79+
};
80+
81+
button-r2 {
82+
gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
83+
label = "TR2";
84+
linux,code = <BTN_TR2>;
85+
};
86+
};
87+
88+
/delete-node/ &{/i2c@fdd40000/regulator@40};
89+
90+
&i2c0 {
91+
vdd_cpu: regulator@1c {
92+
compatible = "tcs,tcs4525";
93+
reg = <0x1c>;
94+
fcs,suspend-voltage-selector = <1>;
95+
regulator-always-on;
96+
regulator-boot-on;
97+
regulator-min-microvolt = <712500>;
98+
regulator-max-microvolt = <1390000>;
99+
regulator-name = "vdd_cpu";
100+
regulator-ramp-delay = <2300>;
101+
vin-supply = <&vcc_sys>;
102+
regulator-state-mem {
103+
regulator-off-in-suspend;
104+
};
105+
};
106+
};
107+
108+
/*
109+
* Device has 2 red LEDs instead of an amber and a red. Relabel LEDs as
110+
* red_led0 and red_led1.
111+
*/
112+
/delete-node/ &{/pwm-leds/led-1};
113+
/delete-node/ &{/pwm-leds/led-2};
114+
115+
&leds {
116+
red_led0: led-1 {
117+
color = <LED_COLOR_ID_RED>;
118+
function = LED_FUNCTION_CHARGING;
119+
max-brightness = <255>;
120+
pwms = <&pwm7 0 25000 0>;
121+
};
122+
123+
red_led1: led-2 {
124+
color = <LED_COLOR_ID_RED>;
125+
default-state = "off";
126+
function = LED_FUNCTION_STATUS;
127+
max-brightness = <255>;
128+
pwms = <&pwm0 0 25000 0>;
129+
};
130+
};
131+
132+
&panel {
133+
compatible = "powkiddy,rgb30-panel";
134+
vcc-supply = <&vcc3v3_lcd0_n>;
135+
iovcc-supply = <&vcc3v3_lcd0_n>;
136+
/delete-property/ vdd-supply;
137+
};
138+
139+
&pwm5 {
140+
status = "disabled";
141+
};
142+
143+
&rk817 {
144+
rk817_charger: charger {
145+
monitored-battery = <&battery>;
146+
rockchip,resistor-sense-micro-ohms = <10000>;
147+
rockchip,sleep-enter-current-microamp = <300000>;
148+
rockchip,sleep-filter-current-microamp = <100000>;
149+
};
150+
};
151+
152+
/delete-node/ &vibrator;

0 commit comments

Comments
 (0)