105a708c6SChris Morgan// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 205a708c6SChris Morgan 305a708c6SChris Morgan/dts-v1/; 405a708c6SChris Morgan 505a708c6SChris Morgan#include <dt-bindings/gpio/gpio.h> 605a708c6SChris Morgan#include <dt-bindings/input/linux-event-codes.h> 705a708c6SChris Morgan#include <dt-bindings/pinctrl/rockchip.h> 805a708c6SChris Morgan#include "rk3566-anbernic-rgxx3.dtsi" 905a708c6SChris Morgan 1005a708c6SChris Morgan/ { 1105a708c6SChris Morgan backlight: backlight { 1205a708c6SChris Morgan compatible = "pwm-backlight"; 1305a708c6SChris Morgan power-supply = <&vcc_sys>; 1405a708c6SChris Morgan pwms = <&pwm4 0 25000 0>; 1505a708c6SChris Morgan }; 1605a708c6SChris Morgan 1705a708c6SChris Morgan battery: battery { 1805a708c6SChris Morgan compatible = "simple-battery"; 1905a708c6SChris Morgan charge-full-design-microamp-hours = <3472000>; 2005a708c6SChris Morgan charge-term-current-microamp = <300000>; 2105a708c6SChris Morgan constant-charge-current-max-microamp = <2000000>; 2205a708c6SChris Morgan constant-charge-voltage-max-microvolt = <4200000>; 2305a708c6SChris Morgan factory-internal-resistance-micro-ohms = <117000>; 2405a708c6SChris Morgan voltage-max-design-microvolt = <4172000>; 2505a708c6SChris Morgan voltage-min-design-microvolt = <3400000>; 2605a708c6SChris Morgan 2705a708c6SChris Morgan ocv-capacity-celsius = <20>; 2805a708c6SChris Morgan ocv-capacity-table-0 = <4172000 100>, <4054000 95>, <3984000 90>, <3926000 85>, 2905a708c6SChris Morgan <3874000 80>, <3826000 75>, <3783000 70>, <3746000 65>, 3005a708c6SChris Morgan <3714000 60>, <3683000 55>, <3650000 50>, <3628000 45>, 3105a708c6SChris Morgan <3612000 40>, <3600000 35>, <3587000 30>, <3571000 25>, 3205a708c6SChris Morgan <3552000 20>, <3525000 15>, <3492000 10>, <3446000 5>, 3305a708c6SChris Morgan <3400000 0>; 3405a708c6SChris Morgan }; 3505a708c6SChris Morgan 3605a708c6SChris Morgan /* Channels reversed for both headphones and speakers. */ 3705a708c6SChris Morgan sound { 3805a708c6SChris Morgan compatible = "simple-audio-card"; 3905a708c6SChris Morgan pinctrl-0 = <&hp_det>; 4005a708c6SChris Morgan pinctrl-names = "default"; 4105a708c6SChris Morgan simple-audio-card,name = "rk817_ext"; 4205a708c6SChris Morgan simple-audio-card,aux-devs = <&spk_amp>; 4305a708c6SChris Morgan simple-audio-card,format = "i2s"; 44*7ac5c0a5SGeert Uytterhoeven simple-audio-card,hp-det-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>; 4505a708c6SChris Morgan simple-audio-card,mclk-fs = <256>; 4605a708c6SChris Morgan simple-audio-card,widgets = 4705a708c6SChris Morgan "Microphone", "Mic Jack", 4805a708c6SChris Morgan "Headphone", "Headphones", 4905a708c6SChris Morgan "Speaker", "Internal Speakers"; 5005a708c6SChris Morgan simple-audio-card,routing = 5105a708c6SChris Morgan "MICL", "Mic Jack", 5205a708c6SChris Morgan "Headphones", "HPOL", 5305a708c6SChris Morgan "Headphones", "HPOR", 5405a708c6SChris Morgan "Internal Speakers", "Speaker Amp OUTL", 5505a708c6SChris Morgan "Internal Speakers", "Speaker Amp OUTR", 5605a708c6SChris Morgan "Speaker Amp INL", "HPOL", 5705a708c6SChris Morgan "Speaker Amp INR", "HPOR"; 5805a708c6SChris Morgan simple-audio-card,pin-switches = "Internal Speakers"; 5905a708c6SChris Morgan 6005a708c6SChris Morgan simple-audio-card,codec { 6105a708c6SChris Morgan sound-dai = <&rk817>; 6205a708c6SChris Morgan }; 6305a708c6SChris Morgan 6405a708c6SChris Morgan simple-audio-card,cpu { 6505a708c6SChris Morgan sound-dai = <&i2s1_8ch>; 6605a708c6SChris Morgan }; 6705a708c6SChris Morgan }; 6805a708c6SChris Morgan 6905a708c6SChris Morgan spk_amp: audio-amplifier { 7005a708c6SChris Morgan compatible = "simple-audio-amplifier"; 7105a708c6SChris Morgan enable-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>; 7205a708c6SChris Morgan pinctrl-0 = <&spk_amp_enable_h>; 7305a708c6SChris Morgan pinctrl-names = "default"; 7405a708c6SChris Morgan sound-name-prefix = "Speaker Amp"; 7505a708c6SChris Morgan }; 7605a708c6SChris Morgan}; 7705a708c6SChris Morgan 7805a708c6SChris Morgan&cru { 7905a708c6SChris Morgan assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>, 8005a708c6SChris Morgan <&pmucru PLL_PPLL>, <&cru PLL_VPLL>; 8105a708c6SChris Morgan assigned-clock-rates = <32768>, <1200000000>, 8205a708c6SChris Morgan <200000000>, <128000000>; 8305a708c6SChris Morgan}; 8405a708c6SChris Morgan 8505a708c6SChris Morgan&dsi_dphy0 { 8605a708c6SChris Morgan status = "okay"; 8705a708c6SChris Morgan}; 8805a708c6SChris Morgan 8905a708c6SChris Morgan&dsi0 { 9005a708c6SChris Morgan status = "okay"; 9105a708c6SChris Morgan #address-cells = <1>; 9205a708c6SChris Morgan #size-cells = <0>; 9305a708c6SChris Morgan 9405a708c6SChris Morgan ports { 9505a708c6SChris Morgan dsi0_in: port@0 { 9605a708c6SChris Morgan reg = <0>; 9705a708c6SChris Morgan dsi0_in_vp1: endpoint { 9805a708c6SChris Morgan remote-endpoint = <&vp1_out_dsi0>; 9905a708c6SChris Morgan }; 10005a708c6SChris Morgan }; 10105a708c6SChris Morgan 10205a708c6SChris Morgan dsi0_out: port@1 { 10305a708c6SChris Morgan reg = <1>; 10405a708c6SChris Morgan mipi_out_panel: endpoint { 10505a708c6SChris Morgan remote-endpoint = <&mipi_in_panel>; 10605a708c6SChris Morgan }; 10705a708c6SChris Morgan }; 10805a708c6SChris Morgan }; 10905a708c6SChris Morgan 11005a708c6SChris Morgan panel: panel@0 { 11105a708c6SChris Morgan compatible = "anbernic,rg-arc-panel", "sitronix,st7701"; 11205a708c6SChris Morgan reg = <0>; 11305a708c6SChris Morgan backlight = <&backlight>; 11405a708c6SChris Morgan IOVCC-supply = <&vcc3v3_lcd0_n>; 11505a708c6SChris Morgan pinctrl-names = "default"; 11605a708c6SChris Morgan pinctrl-0 = <&lcd_rst>; 11705a708c6SChris Morgan reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>; 11805a708c6SChris Morgan rotation = <90>; 11905a708c6SChris Morgan VCC-supply = <&vcc3v3_lcd0_n>; 12005a708c6SChris Morgan 12105a708c6SChris Morgan port { 12205a708c6SChris Morgan mipi_in_panel: endpoint { 12305a708c6SChris Morgan remote-endpoint = <&mipi_out_panel>; 12405a708c6SChris Morgan }; 12505a708c6SChris Morgan }; 12605a708c6SChris Morgan }; 12705a708c6SChris Morgan}; 12805a708c6SChris Morgan 12905a708c6SChris Morgan/* 13005a708c6SChris Morgan * Device uses a non-standard six button layout for a gamepad with X, 13105a708c6SChris Morgan * Y, and Z on the top row of buttons and A, B, and C under the bottom 13205a708c6SChris Morgan * row. 13305a708c6SChris Morgan */ 13405a708c6SChris Morgan&gpio_keys_control { 13505a708c6SChris Morgan button-a { 13605a708c6SChris Morgan gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_LOW>; 13705a708c6SChris Morgan label = "A"; 13805a708c6SChris Morgan linux,code = <BTN_A>; 13905a708c6SChris Morgan }; 14005a708c6SChris Morgan 14105a708c6SChris Morgan button-b { 14205a708c6SChris Morgan gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>; 14305a708c6SChris Morgan label = "B"; 14405a708c6SChris Morgan linux,code = <BTN_B>; 14505a708c6SChris Morgan }; 14605a708c6SChris Morgan 14705a708c6SChris Morgan button-c { 14805a708c6SChris Morgan gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>; 14905a708c6SChris Morgan label = "C"; 15005a708c6SChris Morgan linux,code = <BTN_C>; 15105a708c6SChris Morgan }; 15205a708c6SChris Morgan 15305a708c6SChris Morgan button-left { 15405a708c6SChris Morgan gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>; 15505a708c6SChris Morgan label = "DPAD-LEFT"; 15605a708c6SChris Morgan linux,code = <BTN_DPAD_LEFT>; 15705a708c6SChris Morgan }; 15805a708c6SChris Morgan 15905a708c6SChris Morgan button-r1 { 16005a708c6SChris Morgan gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>; 16105a708c6SChris Morgan label = "TR"; 16205a708c6SChris Morgan linux,code = <BTN_TR>; 16305a708c6SChris Morgan }; 16405a708c6SChris Morgan 16505a708c6SChris Morgan button-r2 { 16605a708c6SChris Morgan gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>; 16705a708c6SChris Morgan label = "TR2"; 16805a708c6SChris Morgan linux,code = <BTN_TR2>; 16905a708c6SChris Morgan }; 17005a708c6SChris Morgan 17105a708c6SChris Morgan button-right { 17205a708c6SChris Morgan gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>; 17305a708c6SChris Morgan label = "DPAD-RIGHT"; 17405a708c6SChris Morgan linux,code = <BTN_DPAD_RIGHT>; 17505a708c6SChris Morgan }; 17605a708c6SChris Morgan 17705a708c6SChris Morgan button-x { 17805a708c6SChris Morgan gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>; 17905a708c6SChris Morgan label = "X"; 18005a708c6SChris Morgan linux,code = <BTN_X>; 18105a708c6SChris Morgan }; 18205a708c6SChris Morgan 18305a708c6SChris Morgan button-y { 18405a708c6SChris Morgan gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>; 18505a708c6SChris Morgan label = "Y"; 18605a708c6SChris Morgan linux,code = <BTN_Y>; 18705a708c6SChris Morgan }; 18805a708c6SChris Morgan 18905a708c6SChris Morgan button-z { 19005a708c6SChris Morgan gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>; 19105a708c6SChris Morgan label = "Z"; 19205a708c6SChris Morgan linux,code = <BTN_Z>; 19305a708c6SChris Morgan }; 19405a708c6SChris Morgan}; 19505a708c6SChris Morgan 19605a708c6SChris Morgan&pinctrl { 19705a708c6SChris Morgan audio-amplifier { 19805a708c6SChris Morgan spk_amp_enable_h: spk-amp-enable-h { 19905a708c6SChris Morgan rockchip,pins = 20005a708c6SChris Morgan <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; 20105a708c6SChris Morgan }; 20205a708c6SChris Morgan }; 20305a708c6SChris Morgan 20405a708c6SChris Morgan gpio-lcd { 20505a708c6SChris Morgan lcd_rst: lcd-rst { 20605a708c6SChris Morgan rockchip,pins = 20705a708c6SChris Morgan <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 20805a708c6SChris Morgan }; 20905a708c6SChris Morgan }; 21005a708c6SChris Morgan 21105a708c6SChris Morgan headphone { 21205a708c6SChris Morgan hp_det: hp-det { 21305a708c6SChris Morgan rockchip,pins = 21405a708c6SChris Morgan <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 21505a708c6SChris Morgan }; 21605a708c6SChris Morgan }; 21705a708c6SChris Morgan}; 21805a708c6SChris Morgan 21905a708c6SChris Morgan&pwm4 { 22005a708c6SChris Morgan status = "okay"; 22105a708c6SChris Morgan}; 22205a708c6SChris Morgan 22305a708c6SChris Morgan&rk817 { 22405a708c6SChris Morgan rk817_charger: charger { 22505a708c6SChris Morgan monitored-battery = <&battery>; 22605a708c6SChris Morgan rockchip,resistor-sense-micro-ohms = <10000>; 22705a708c6SChris Morgan rockchip,sleep-enter-current-microamp = <300000>; 22805a708c6SChris Morgan rockchip,sleep-filter-current-microamp = <100000>; 22905a708c6SChris Morgan }; 23005a708c6SChris Morgan}; 23105a708c6SChris Morgan 23205a708c6SChris Morgan&vp1 { 23305a708c6SChris Morgan vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 { 23405a708c6SChris Morgan reg = <ROCKCHIP_VOP2_EP_MIPI0>; 23505a708c6SChris Morgan remote-endpoint = <&dsi0_in_vp1>; 23605a708c6SChris Morgan }; 23705a708c6SChris Morgan}; 238