rockchip: Add Powkiddy RK2023
Subsystems (5)
v3 cover rockchip: Add Powkiddy RK2023
From: Chris Morgan <[email protected]>
Add support for the Powkiddy RK2023, which is extremely similar to existing Powkiddy RGB30 device.
Changes since V2:
- Split "hold panel in reset" to a separate patch for the NV3051D.
- Changed replaced common include to a new Powkiddy specific include to better reflect the similarity of these two devices (and so as to not have to delete so many nodes).
Changes since V1:
- Necessary clock changes have been accepted to mainline, so removed from this series.
https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/commit/?id=f1db0865b4628d5e2e85347350c077a71f0629d2
- Combined Powkiddy RK3566 devices in devicetree documentation. Dropped ack from binding as this change is vastly different than the previous update.
- Updated panel driver to hold panel in reset status after unprepare.
Chris Morgan (6):
dt-bindings: display: panel: Update NewVision NV3051D compatibles drm/panel: nv3051d: Hold panel in reset for unprepare
nv3051d: Add Powkiddy RK2023 Panel Support
dt-bindings: arm: rockchip: Add Powkiddy RK2023
arm64: dts: rockchip: Update powkiddy,rgb30 include to rk2023 DTSI
dt-bindings: arm: rockchip: Add Powkiddy RK2023
.../devicetree/bindings/arm/rockchip.yaml | 6 +- .../display/panel/newvision,nv3051d.yaml | 2 +- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../dts/rockchip/rk3566-powkiddy-rgb30.dts | 154 +-- .../dts/rockchip/rk3566-powkiddy-rk2023.dts | 38 + .../dts/rockchip/rk3566-powkiddy-rk2023.dtsi | 875 ++++++++++++++++++ .../gpu/drm/panel/panel-newvision-nv3051d.c | 57 +- 7 files changed, 981 insertions(+), 152 deletions(-) create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-powkiddy-rk2023.dts create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-powkiddy-rk2023.dtsi
Signature · 1 line
2.34.1
PATCH v3 1/6 dt-bindings: display: panel: Update NewVision NV3051D compatibles
From: Chris Morgan <[email protected]>
Update the NewVision NV3051D compatible strings by adding a new panel, the powkiddy,rk2023-panel, and removing another entry, the anbernic,rg353v-panel.
The rk2023-panel is similar to the rg353p-panel but has slightly different timings so it needs a new string.
The rg353v-panel is duplicate to the rg353p-panel, so remove it. No current devices use it and changes to the driver mean it is no longer valid as a compatible string.
--- .../devicetree/bindings/display/panel/newvision,nv3051d.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Documentation/devicetree/bindings/display/panel/newvision,nv3051d.yaml +1 -1
@@ -21,7 +21,7 @@ properties: - enum: - anbernic,rg351v-panel - anbernic,rg353p-panel - - anbernic,rg353v-panel + - powkiddy,rk2023-panel - const: newvision,nv3051d reg: true
Signature · 1 line
2.34.1
Re: [PATCH V3 1/6] dt-bindings: display: panel: Update NewVision NV3051D compatibles
Quoted 6 lines · Chris Morgan
From: Chris Morgan <[email protected]>
Update the NewVision NV3051D compatible strings by adding a new panel, the powkiddy,rk2023-panel, and removing another entry, the anbernic,rg353v-panel.
Quoted 8 lines
The rk2023-panel is similar to the rg353p-panel but has slightly different timings so it needs a new string.
The rg353v-panel is duplicate to the rg353p-panel, so remove it. No current devices use it and changes to the driver mean it is no longer valid as a compatible string.
Signed-off-by Chris Morgan <[email protected]>
Best regards,
Krzysztof
PATCH v3 2/6 drm/panel: nv3051d: Hold panel in reset for unprepare
In reply to Chris MorganFrom: Chris Morgan <[email protected]>
Improve the panel's ability to restore from suspend by holding the panel in suspend after unprepare.
--- drivers/gpu/drm/panel/panel-newvision-nv3051d.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/gpu/drm/panel/panel-newvision-nv3051d.c +2 -0
@@ -261,6 +261,8 @@ static int panel_nv3051d_unprepare(struct drm_panel *panel)usleep_range (10000 ,15000 ); +gpiod_set_value_cansleep (ctx->reset_gpio,1 ); +regulator_disable (ctx->vdd);return 0 ;
Signature · 1 line
2.34.1
Re: [PATCH V3 2/6] drm/panel: nv3051d: Hold panel in reset for unprepare
Quoted 7 lines · Chris Morgan
From: Chris Morgan <[email protected]>
Improve the panel's ability to restore from suspend by holding the panel in suspend after unprepare.
Fixes b1d39f0f4264 ("drm/panel: Add NewVision NV3051D MIPI-DSI LCD panel")Signed-off-by Chris Morgan <[email protected]>
Thanks!
Quoted 20 lines
--- drivers/gpu/drm/panel/panel-newvision-nv3051d.c | 2 ++ 1 file changed, 2 insertions(+)drivers/gpu/drm/panel/panel-newvision-nv3051d.c +2
-0@@ -261,6 +261,8 @@ static int panel_nv3051d_unprepare(struct drm_panel *panel)usleep_range (10000 ,15000 ); +gpiod_set_value_cansleep (ctx->reset_gpio,1 ); +regulator_disable (ctx->vdd);return 0 ;Signature · 1 line
2.34.1
PATCH v3 3/6 nv3051d: Add Powkiddy RK2023 Panel Support
In reply to Chris MorganFrom: Chris Morgan <[email protected]>
Refactor the driver to add support for the powkiddy,rk2023-panel panel. This panel is extremely similar to the rg353p-panel but requires a smaller vertical back porch and isn't as tolerant of higher speeds. Note that while all of these panels are identical in size (70x57) it is possible future panels may not be.
Tested on my RG351V, RG353P, RG353V, and RK2023.
--- .../gpu/drm/panel/panel-newvision-nv3051d.c | 55 +++++++++++++++---- 1 file changed, 44 insertions(+), 11 deletions(-)
drivers/gpu/drm/panel/panel-newvision-nv3051d.c +44 -11
@@ -28,6 +28,7 @@ struct nv3051d_panel_info {unsigned int num_modes;u16 width_mm, height_mm;u32 bus_flags; +u32 mode_flags; };struct panel_nv3051d {
@@ -387,15 +388,7 @@ static int panel_nv3051d_probe(struct mipi_dsi_device *dsi) dsi->lanes =4 ; dsi->format =MIPI_DSI_FMT_RGB888 ; - dsi->mode_flags =MIPI_DSI_MODE_VIDEO |MIPI_DSI_MODE_VIDEO_BURST | -MIPI_DSI_MODE_LPM |MIPI_DSI_MODE_NO_EOT_PACKET ; - -/* -* The panel in the RG351V is identical to the 353P, except it -* requires MIPI_DSI_CLOCK_NON_CONTINUOUS to operate correctly. -*/ -if (of_device_is_compatible (dev->of_node,"anbernic,rg351v-panel" )) - dsi->mode_flags |=MIPI_DSI_CLOCK_NON_CONTINUOUS ; + dsi->mode_flags = ctx->panel_info->mode_flags;drm_panel_init (&ctx->panel, &dsi->dev, &panel_nv3051d_funcs,DRM_MODE_CONNECTOR_DSI );
@@ -483,16 +476,56 @@ static const struct drm_display_mode nv3051d_rgxx3_modes[] = { }, }; -static const struct nv3051d_panel_info nv3051d_rgxx3_info = { +static const struct drm_display_mode nv3051d_rk2023_modes[] = { + { + .hdisplay =640 , + .hsync_start =640 +40 , + .hsync_end =640 +40 +2 , + .htotal =640 +40 +2 +80 , + .vdisplay =480 , + .vsync_start =480 +18 , + .vsync_end =480 +18 +2 , + .vtotal =480 +18 +2 +4 , + .clock =24150 , + .flags =DRM_MODE_FLAG_NHSYNC |DRM_MODE_FLAG_NVSYNC , + }, +}; + +static const struct nv3051d_panel_info nv3051d_rg351v_info = { .display_modes = nv3051d_rgxx3_modes, .num_modes =ARRAY_SIZE (nv3051d_rgxx3_modes), .width_mm =70 , .height_mm =57 , .bus_flags =DRM_BUS_FLAG_DE_LOW |DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE , + .mode_flags =MIPI_DSI_MODE_VIDEO |MIPI_DSI_MODE_VIDEO_BURST | +MIPI_DSI_MODE_LPM |MIPI_DSI_MODE_NO_EOT_PACKET | +MIPI_DSI_CLOCK_NON_CONTINUOUS , +}; + +static const struct nv3051d_panel_info nv3051d_rg353p_info = { + .display_modes = nv3051d_rgxx3_modes, + .num_modes =ARRAY_SIZE (nv3051d_rgxx3_modes), + .width_mm =70 , + .height_mm =57 , + .bus_flags =DRM_BUS_FLAG_DE_LOW |DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE , + .mode_flags =MIPI_DSI_MODE_VIDEO |MIPI_DSI_MODE_VIDEO_BURST | +MIPI_DSI_MODE_LPM |MIPI_DSI_MODE_NO_EOT_PACKET , +}; + +static const struct nv3051d_panel_info nv3051d_rk2023_info = { + .display_modes = nv3051d_rk2023_modes, + .num_modes =ARRAY_SIZE (nv3051d_rk2023_modes), + .width_mm =70 , + .height_mm =57 , + .bus_flags =DRM_BUS_FLAG_DE_LOW |DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE , + .mode_flags =MIPI_DSI_MODE_VIDEO |MIPI_DSI_MODE_VIDEO_BURST | +MIPI_DSI_MODE_LPM |MIPI_DSI_MODE_NO_EOT_PACKET , };static const struct of_device_id newvision_nv3051d_of_match[] = { - { .compatible ="newvision,nv3051d" , .data = &nv3051d_rgxx3_info }, + { .compatible ="anbernic,rg351v-panel" , .data = &nv3051d_rg351v_info }, + { .compatible ="anbernic,rg353p-panel" , .data = &nv3051d_rg353p_info }, + { .compatible ="powkiddy,rk2023-panel" , .data = &nv3051d_rk2023_info }, {/* sentinel */ } };MODULE_DEVICE_TABLE (of, newvision_nv3051d_of_match);
Signature · 1 line
2.34.1
Re: [PATCH V3 3/6] nv3051d: Add Powkiddy RK2023 Panel Support
Quoted 11 lines · Chris Morgan
From: Chris Morgan <[email protected]>
Refactor the driver to add support for the powkiddy,rk2023-panel panel. This panel is extremely similar to the rg353p-panel but requires a smaller vertical back porch and isn't as tolerant of higher speeds. Note that while all of these panels are identical in size (70x57) it is possible future panels may not be.
Tested on my RG351V, RG353P, RG353V, and RK2023.
Signed-off-by Chris Morgan <[email protected]>
Quoted 95 lines
--- .../gpu/drm/panel/panel-newvision-nv3051d.c | 55 +++++++++++++++---- 1 file changed, 44 insertions(+), 11 deletions(-)drivers/gpu/drm/panel/panel-newvision-nv3051d.c +44
-11@@ -28,6 +28,7 @@ struct nv3051d_panel_info {unsigned int num_modes;u16 width_mm, height_mm;u32 bus_flags; +u32 mode_flags; };struct panel_nv3051d {@@ -387,15 +388,7 @@ static int panel_nv3051d_probe(struct mipi_dsi_device *dsi) dsi->lanes =4 ; dsi->format =MIPI_DSI_FMT_RGB888 ; - dsi->mode_flags =MIPI_DSI_MODE_VIDEO |MIPI_DSI_MODE_VIDEO_BURST | -MIPI_DSI_MODE_LPM |MIPI_DSI_MODE_NO_EOT_PACKET ; - -/* -* The panel in the RG351V is identical to the 353P, except it -* requires MIPI_DSI_CLOCK_NON_CONTINUOUS to operate correctly. -*/ -if (of_device_is_compatible (dev->of_node,"anbernic,rg351v-panel" )) - dsi->mode_flags |=MIPI_DSI_CLOCK_NON_CONTINUOUS ; + dsi->mode_flags = ctx->panel_info->mode_flags;drm_panel_init (&ctx->panel, &dsi->dev, &panel_nv3051d_funcs,DRM_MODE_CONNECTOR_DSI );@@ -483,16 +476,56 @@ static const struct drm_display_mode nv3051d_rgxx3_modes[] = { }, }; -static const struct nv3051d_panel_info nv3051d_rgxx3_info = { +static const struct drm_display_mode nv3051d_rk2023_modes[] = { + { + .hdisplay =640 , + .hsync_start =640 +40 , + .hsync_end =640 +40 +2 , + .htotal =640 +40 +2 +80 , + .vdisplay =480 , + .vsync_start =480 +18 , + .vsync_end =480 +18 +2 , + .vtotal =480 +18 +2 +4 , + .clock =24150 , + .flags =DRM_MODE_FLAG_NHSYNC |DRM_MODE_FLAG_NVSYNC , + }, +}; + +static const struct nv3051d_panel_info nv3051d_rg351v_info = { .display_modes = nv3051d_rgxx3_modes, .num_modes =ARRAY_SIZE (nv3051d_rgxx3_modes), .width_mm =70 , .height_mm =57 , .bus_flags =DRM_BUS_FLAG_DE_LOW |DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE , + .mode_flags =MIPI_DSI_MODE_VIDEO |MIPI_DSI_MODE_VIDEO_BURST | +MIPI_DSI_MODE_LPM |MIPI_DSI_MODE_NO_EOT_PACKET | +MIPI_DSI_CLOCK_NON_CONTINUOUS , +}; + +static const struct nv3051d_panel_info nv3051d_rg353p_info = { + .display_modes = nv3051d_rgxx3_modes, + .num_modes =ARRAY_SIZE (nv3051d_rgxx3_modes), + .width_mm =70 , + .height_mm =57 , + .bus_flags =DRM_BUS_FLAG_DE_LOW |DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE , + .mode_flags =MIPI_DSI_MODE_VIDEO |MIPI_DSI_MODE_VIDEO_BURST | +MIPI_DSI_MODE_LPM |MIPI_DSI_MODE_NO_EOT_PACKET , +}; + +static const struct nv3051d_panel_info nv3051d_rk2023_info = { + .display_modes = nv3051d_rk2023_modes, + .num_modes =ARRAY_SIZE (nv3051d_rk2023_modes), + .width_mm =70 , + .height_mm =57 , + .bus_flags =DRM_BUS_FLAG_DE_LOW |DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE , + .mode_flags =MIPI_DSI_MODE_VIDEO |MIPI_DSI_MODE_VIDEO_BURST | +MIPI_DSI_MODE_LPM |MIPI_DSI_MODE_NO_EOT_PACKET , };static const struct of_device_id newvision_nv3051d_of_match[] = { - { .compatible ="newvision,nv3051d" , .data = &nv3051d_rgxx3_info }, + { .compatible ="anbernic,rg351v-panel" , .data = &nv3051d_rg351v_info }, + { .compatible ="anbernic,rg353p-panel" , .data = &nv3051d_rg353p_info }, + { .compatible ="powkiddy,rk2023-panel" , .data = &nv3051d_rk2023_info }, {/* sentinel */ } };MODULE_DEVICE_TABLE (of, newvision_nv3051d_of_match);Signature · 1 line
2.34.1
PATCH v3 4/6 dt-bindings: arm: rockchip: Add Powkiddy RK2023
In reply to Chris MorganFrom: Chris Morgan <[email protected]>
The Powkiddy RK2023 is a handheld gaming device made by Powkiddy and powered by the Rockchip RK3566 SoC. Group the Powkiddy RK3566 based devices together as they are both extremely similar.
--- Documentation/devicetree/bindings/arm/rockchip.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
Documentation/devicetree/bindings/arm/rockchip.yaml +4 -2
@@ -674,9 +674,11 @@ properties: - const: pine64,soquartz - const: rockchip,rk3566 - - description: Powkiddy RGB30 + - description: Powkiddy RK3566 Handheld Gaming Console items: - - const: powkiddy,rgb30 + - enum: + - powkiddy,rgb30 + - powkiddy,rk2023 - const: rockchip,rk3566 - description: Radxa Compute Module 3(CM3)
Signature · 1 line
2.34.1
PATCH v3 5/6 arm64: dts: rockchip: Update powkiddy, rgb30 include to rk2023 DTSI
In reply to Chris MorganFrom: Chris Morgan <[email protected]>
The Powkiddy RGB30 device is similar to the Anbernic RGxx3 series, however there are several differences which require deleting nodes in order to properly define the hardware. This was deemed unacceptable for the RK2023, so instead create a common include file for the Powkiddy RGB30 and the Powkiddy RK2023. The only notable difference between these Powkiddy devices are the panel in use, the device name, and the PLL_VPLL frequency necessary to support the different panels.
Since the RK2023 was released on the market first, name the common include file after it.
--- .../dts/rockchip/rk3566-powkiddy-rgb30.dts | 154 +-- .../dts/rockchip/rk3566-powkiddy-rk2023.dtsi | 875 ++++++++++++++++++ 2 files changed, 891 insertions(+), 138 deletions(-) create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-powkiddy-rk2023.dtsi
arch/arm64/boot/dts/rockchip/rk3566-powkiddy-rgb30.dts +16 -138
@@ -5,67 +5,11 @@ #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/linux-event-codes.h> #include <dt-bindings/pinctrl/rockchip.h> -#include "rk3566-anbernic-rg353x.dtsi" +#include "rk3566-powkiddy-rk2023.dtsi" / { model = "RGB30"; compatible = "powkiddy,rgb30", "rockchip,rk3566"; - - aliases { - mmc1 = &sdmmc0; - mmc2 = &sdmmc1; - mmc3 = &sdmmc2; - }; - - battery: battery { - compatible = "simple-battery"; - charge-full-design-microamp-hours = <3151000>; - charge-term-current-microamp = <300000>; - constant-charge-current-max-microamp = <2000000>; - constant-charge-voltage-max-microvolt = <4250000>; - factory-internal-resistance-micro-ohms = <117000>; - voltage-max-design-microvolt = <4172000>; - voltage-min-design-microvolt = <3400000>; - - ocv-capacity-celsius = <20>; - ocv-capacity-table-0 = <4172000 100>, <4092000 95>, <4035000 90>, <3990000 85>, - <3939000 80>, <3895000 75>, <3852000 70>, <3807000 65>, - <3762000 60>, <3713000 55>, <3672000 50>, <3647000 45>, - <3629000 40>, <3613000 35>, <3598000 30>, <3578000 25>, - <3550000 20>, <3519000 15>, <3479000 10>, <3438000 5>, - <3400000 0>; - }; - - /* - * Channels reversed for speakers. Headphones automatically switch via hardware when - * detected with no ability to control output in software. Headphones appear to be mono - * (each output channel receives all audio). No microphone support on 3.5mm jack. - */ - sound { - compatible = "simple-audio-card"; - simple-audio-card,name = "rk817_ext"; - simple-audio-card,format = "i2s"; - simple-audio-card,mclk-fs = <256>; - simple-audio-card,widgets = - "Headphone", "Headphones"; - simple-audio-card,routing = - "Headphones", "HPOL", - "Headphones", "HPOR"; - - simple-audio-card,codec { - sound-dai = <&rk817>; - }; - - simple-audio-card,cpu { - sound-dai = <&i2s1_8ch>; - }; - }; -}; - -/delete-node/ &adc_keys; - -&chosen { - /delete-property/ stdout-path; }; &cru {
@@ -75,87 +19,21 @@ &cru { <200000000>, <292500000>; }; -&gpio_keys_control { - button-r1 { - gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>; - label = "TR"; - linux,code = <BTN_TR>; - }; - - button-r2 { - gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>; - label = "TR2"; - linux,code = <BTN_TR2>; - }; -}; - -/delete-node/ &{/i2c@fdd40000/regulator@40}; - -&i2c0 { - vdd_cpu: regulator@1c { - compatible = "tcs,tcs4525"; - reg = <0x1c>; - fcs,suspend-voltage-selector = <1>; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <712500>; - regulator-max-microvolt = <1390000>; - regulator-name = "vdd_cpu"; - regulator-ramp-delay = <2300>; - vin-supply = <&vcc_sys>; - regulator-state-mem { - regulator-off-in-suspend; +&dsi0 { + panel: panel@0 { + compatible = "powkiddy,rgb30-panel"; + reg = <0>; + backlight = <&backlight>; + pinctrl-names = "default"; + pinctrl-0 = <&lcd_rst>; + reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>; + vcc-supply = <&vcc3v3_lcd0_n>; + iovcc-supply = <&vcc3v3_lcd0_n>; + + port { + mipi_in_panel: endpoint { + remote-endpoint = <&mipi_out_panel>; + }; }; }; }; - -/* - * Device has 2 red LEDs instead of an amber and a red. Relabel LEDs as - * red_led0 and red_led1. - */ -/delete-node/ &{/pwm-leds/led-1}; -/delete-node/ &{/pwm-leds/led-2}; - -&leds { - red_led0: led-1 { - color = <LED_COLOR_ID_RED>; - function = LED_FUNCTION_CHARGING; - max-brightness = <255>; - pwms = <&pwm7 0 25000 0>; - }; - - red_led1: led-2 { - color = <LED_COLOR_ID_RED>; - default-state = "off"; - function = LED_FUNCTION_STATUS; - max-brightness = <255>; - pwms = <&pwm0 0 25000 0>; - }; -}; - -&panel { - compatible = "powkiddy,rgb30-panel"; - vcc-supply = <&vcc3v3_lcd0_n>; - iovcc-supply = <&vcc3v3_lcd0_n>; - /delete-property/ vdd-supply; -}; - -&pwm5 { - status = "disabled"; -}; - -&rk817 { - rk817_charger: charger { - monitored-battery = <&battery>; - rockchip,resistor-sense-micro-ohms = <10000>; - rockchip,sleep-enter-current-microamp = <300000>; - rockchip,sleep-filter-current-microamp = <100000>; - }; -}; - -/* There is no UART header visible on the board for this device. */ -&uart2 { - status = "disabled"; -}; - -/delete-node/ &vibrator;
arch/arm64/boot/dts/rockchip/rk3566-powkiddy-rk2023.dtsi new file +875 -0
875 lines not on this page · raw message
Signature · 1 line
2.34.1
PATCH v3 6/6 dt-bindings: arm: rockchip: Add Powkiddy RK2023
In reply to Chris MorganFrom: Chris Morgan <[email protected]>
Add support for the Powkiddy RK2023. The Powkiddy RK2023 is a handheld gaming device with a 3.5 inch screen powered by the Rockchip RK3566 SoC. The device looks physically different from the Powkiddy RGB30, but is functionally identical except for the panel.
--- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../dts/rockchip/rk3566-powkiddy-rk2023.dts | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-powkiddy-rk2023.dts
arch/arm64/boot/dts/rockchip/Makefile +1 -0
@@ -78,6 +78,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg503.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.1.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-powkiddy-rgb30.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-powkiddy-rk2023.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-b.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-radxa-cm3-io.dtb
arch/arm64/boot/dts/rockchip/rk3566-powkiddy-rk2023.dts new file +38 -0
@@ -0,0 +1,38 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/linux-event-codes.h> +#include <dt-bindings/pinctrl/rockchip.h> +#include "rk3566-powkiddy-rk2023.dtsi" + +/ { + model = "RK2023"; + compatible = "powkiddy,rk2023", "rockchip,rk3566"; +}; + +&cru { + assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>, + <&pmucru PLL_PPLL>, <&cru PLL_VPLL>; + assigned-clock-rates = <32768>, <1200000000>, + <200000000>, <115200000>; +}; + +&dsi0 { + panel: panel@0 { + compatible = "powkiddy,rk2023-panel", "newvision,nv3051d"; + reg = <0>; + backlight = <&backlight>; + pinctrl-names = "default"; + pinctrl-0 = <&lcd_rst>; + reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc3v3_lcd0_n>; + + port { + mipi_in_panel: endpoint { + remote-endpoint = <&mipi_out_panel>; + }; + }; + }; +};
Signature · 1 line
2.34.1
Re: [PATCH V3 6/6] dt-bindings: arm: rockchip: Add Powkiddy RK2023
Quoted 9 lines · Chris Morgan
From: Chris Morgan <[email protected]>
Add support for the Powkiddy RK2023. The Powkiddy RK2023 is a handheld gaming device with a 3.5 inch screen powered by the Rockchip RK3566 SoC. The device looks physically different from the Powkiddy RGB30, but is functionally identical except for the panel.
Signed-off-by Chris Morgan <[email protected]>---
Subject prefix is wrong. It's:
ARM: dts: rockchip:
Best regards,
Krzysztof