[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CABjd4YwEGR-bdT6VSJYcC_WcesCrPq1=maKmdP7=Y_fesc3oow@mail.gmail.com>
Date: Tue, 10 Sep 2024 12:15:10 +0400
From: Alexey Charkov <alchark@...il.com>
To: Damon Ding <damon.ding@...k-chips.com>
Cc: heiko@...ech.de, robh@...nel.org, krzk+dt@...nel.org, conor+dt@...nel.org,
macromorgan@...mail.com, jonas@...boo.se, tim@...thertop.org,
knaerzche@...il.com, efectn@...tonmail.com, andyshrk@....com,
jagan@...eble.ai, dsimic@...jaro.org, megi@....cz,
sebastian.reichel@...labora.com, boris.brezillon@...labora.com,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-rockchip@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1 2/2] arm64: dts: rockchip: Add support for rk3588s evb1 board
Hi Damon,
On Tue, Sep 10, 2024 at 7:11 AM Damon Ding <damon.ding@...k-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@...k-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@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
Powered by blists - more mailing lists