[PATCH v1 2/2] arm64: dts: rockchip: Add support for rk3588s evb1 board

Alexey Charkov alchark at gmail.com
Tue Sep 10 01:15:10 PDT 2024


Hi Damon,

On Tue, Sep 10, 2024 at 7:11 AM Damon Ding <damon.ding at rock-chips.com> wrote:
>
> Specification:
> - Rockchip RK3588S
> - RK806-2x2pcs + DiscretePower
> - eMMC5.1 + SPI Flash
> - Micro SD Card3.0
> - 1 x Typec3.0 + 2 x USB2 HOST
> - 1 x 1Lane PCIE2.0 Connector(RC Mode)
> - Headphone output
> - Array Key(MENU/VOL+/VOP-/ESC), Reset, Power on/off Key
> - 6 x SARADC
>
> Signed-off-by: Damon Ding <damon.ding at rock-chips.com>
> ---
>  arch/arm64/boot/dts/rockchip/Makefile         |    1 +
>  .../boot/dts/rockchip/rk3588s-evb1-v10.dts    | 1120 +++++++++++++++++
>  2 files changed, 1121 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts
>
> diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
> index fda1b980eb4b..f2992da01ada 100644
> --- a/arch/arm64/boot/dts/rockchip/Makefile
> +++ b/arch/arm64/boot/dts/rockchip/Makefile
> @@ -139,6 +139,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-tiger-haikou.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-toybrick-x0.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-turing-rk1.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-coolpi-4b.dtb
> +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-evb1-v10.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6s.dtb
> diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts
> new file mode 100644
> index 000000000000..83128d2d8cdd
> --- /dev/null
> +++ b/arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts
> @@ -0,0 +1,1120 @@

<...>

> +       pmic at 1 {
> +               compatible = "rockchip,rk806";
> +               reg = <0x01>;
> +               #gpio-cells = <2>;
> +               gpio-controller;
> +               interrupt-parent = <&gpio0>;
> +               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
> +               pinctrl-0 = <&rk806_slave_dvs1_null>, <&rk806_slave_dvs2_null>,
> +                           <&rk806_slave_dvs3_null>;
> +               pinctrl-names = "default";
> +               spi-max-frequency = <1000000>;
> +
> +               vcc1-supply = <&vcc5v0_sys>;
> +               vcc2-supply = <&vcc5v0_sys>;
> +               vcc3-supply = <&vcc5v0_sys>;
> +               vcc4-supply = <&vcc5v0_sys>;
> +               vcc5-supply = <&vcc5v0_sys>;
> +               vcc6-supply = <&vcc5v0_sys>;
> +               vcc7-supply = <&vcc5v0_sys>;
> +               vcc8-supply = <&vcc5v0_sys>;
> +               vcc9-supply = <&vcc5v0_sys>;
> +               vcc10-supply = <&vcc5v0_sys>;
> +               vcc11-supply = <&vcc_2v0_pldo_s3>;
> +               vcc12-supply = <&vcc5v0_sys>;
> +               vcc13-supply = <&vcc_1v1_nldo_s3>;
> +               vcc14-supply = <&vcc_2v0_pldo_s3>;
> +               vcca-supply = <&vcc5v0_sys>;
> +
> +               rk806_slave_dvs1_null: dvs1-null-pins {
> +                       pins = "gpio_pwrctrl1";
> +                       function = "pin_fun0";
> +               };
> +
> +               rk806_slave_dvs2_null: dvs2-null-pins {
> +                       pins = "gpio_pwrctrl2";
> +                       function = "pin_fun0";
> +               };
> +
> +               rk806_slave_dvs3_null: dvs3-null-pins {
> +                       pins = "gpio_pwrctrl3";
> +                       function = "pin_fun0";
> +               };
> +
> +               regulators {
> +                       vdd_cpu_big1_s0: dcdc-reg1 {
> +                               regulator-always-on;
> +                               regulator-boot-on;

You may want to introduce regulator coupling between CPU supplies and
their respective SRAM supplies, as they are driven by separate
physical regulators and will go out of sync when cpufreq tries to
adjust frequency and voltage of the CPU cluster under load. See [1].
So perhaps:

+                               regulator-coupled-with = <&vdd_cpu_big1_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;

> +                               regulator-init-microvolt = <800000>;
> +                               regulator-min-microvolt = <550000>;
> +                               regulator-max-microvolt = <1050000>;
> +                               regulator-ramp-delay = <12500>;
> +                               regulator-name = "vdd_cpu_big1_s0";
> +                               regulator-state-mem {
> +                                       regulator-off-in-suspend;
> +                               };
> +                       };
> +
> +                       vdd_cpu_big0_s0: dcdc-reg2 {
> +                               regulator-always-on;
> +                               regulator-boot-on;

+                               regulator-coupled-with = <&vdd_cpu_big0_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;

> +                               regulator-init-microvolt = <800000>;
> +                               regulator-min-microvolt = <550000>;
> +                               regulator-max-microvolt = <1050000>;
> +                               regulator-ramp-delay = <12500>;
> +                               regulator-name = "vdd_cpu_big0_s0";
> +                               regulator-state-mem {
> +                                       regulator-off-in-suspend;
> +                               };
> +                       };
> +
> +                       vdd_cpu_lit_s0: dcdc-reg3 {
> +                               regulator-always-on;
> +                               regulator-boot-on;

+                               regulator-coupled-with = <&vdd_cpu_lit_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;

> +                               regulator-init-microvolt = <800000>;
> +                               regulator-min-microvolt = <550000>;
> +                               regulator-max-microvolt = <950000>;
> +                               regulator-ramp-delay = <12500>;
> +                               regulator-name = "vdd_cpu_lit_s0";
> +                               regulator-state-mem {
> +                                       regulator-off-in-suspend;
> +                               };
> +                       };
> +
> +                       vcc_3v3_s3: dcdc-reg4 {
> +                               regulator-always-on;
> +                               regulator-boot-on;
> +                               regulator-min-microvolt = <3300000>;
> +                               regulator-max-microvolt = <3300000>;
> +                               regulator-ramp-delay = <12500>;
> +                               regulator-name = "vcc_3v3_s3";
> +                               regulator-state-mem {
> +                                       regulator-on-in-suspend;
> +                                       regulator-suspend-microvolt = <3300000>;
> +                               };
> +                       };
> +
> +                       vdd_cpu_big1_mem_s0: dcdc-reg5 {
> +                               regulator-always-on;
> +                               regulator-boot-on;

+                               regulator-coupled-with = <&vdd_cpu_big1_s0>;
+                               regulator-coupled-max-spread = <10000>;

> +                               regulator-init-microvolt = <800000>;
> +                               regulator-min-microvolt = <675000>;
> +                               regulator-max-microvolt = <1050000>;
> +                               regulator-ramp-delay = <12500>;
> +                               regulator-name = "vdd_cpu_big1_mem_s0";
> +                               regulator-state-mem {
> +                                       regulator-off-in-suspend;
> +                               };
> +                       };
> +
> +
> +                       vdd_cpu_big0_mem_s0: dcdc-reg6 {
> +                               regulator-always-on;
> +                               regulator-boot-on;

+                               regulator-coupled-with = <&vdd_cpu_big0_s0>;
+                               regulator-coupled-max-spread = <10000>;

> +                               regulator-init-microvolt = <800000>;
> +                               regulator-min-microvolt = <675000>;
> +                               regulator-max-microvolt = <1050000>;
> +                               regulator-ramp-delay = <12500>;
> +                               regulator-name = "vdd_cpu_big0_mem_s0";
> +                               regulator-state-mem {
> +                                       regulator-off-in-suspend;
> +                               };
> +                       };
> +
> +                       vcc_1v8_s0: dcdc-reg7 {
> +                               regulator-always-on;
> +                               regulator-boot-on;
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                               regulator-ramp-delay = <12500>;
> +                               regulator-name = "vcc_1v8_s0";
> +                               regulator-state-mem {
> +                                       regulator-off-in-suspend;
> +                               };
> +                       };
> +
> +                       vdd_cpu_lit_mem_s0: dcdc-reg8 {
> +                               regulator-always-on;
> +                               regulator-boot-on;

+                               regulator-coupled-with = <&vdd_cpu_lit_s0>;
+                               regulator-coupled-max-spread = <10000>;

> +                               regulator-init-microvolt = <800000>;
> +                               regulator-min-microvolt = <675000>;
> +                               regulator-max-microvolt = <950000>;
> +                               regulator-ramp-delay = <12500>;
> +                               regulator-name = "vdd_cpu_lit_mem_s0";
> +                               regulator-state-mem {
> +                                       regulator-off-in-suspend;
> +                               };
> +                       };

<...>

[1] https://github.com/torvalds/linux/commit/0ba0560982bc8d0c3fb3ca209fd0ed29f81402ac

Best regards,
Alexey



More information about the Linux-rockchip mailing list