[PATCH v2 0/7] arm64: dts: rockchip: rk3568-evb1-v10: add sd card support
STALE1835d
Revision v2 of 3 in this series.
13 messages,
3 authors,
2021-08-04 · open the first message on its own page
Hi all,
This series enables the SD card reader on the RK3568 EVB1
and completes the support for the on-board eMMC.
As the PMU IO domains are required, the patch series that
introduces support for the RK3568 [1] has been integrated
in this series to bring this mainline.
Best regards,
Michael
[1] https://patchwork.kernel.org/project/linux-rockchip/list/?series=489383
v2:
- rename alias to match convention
- add support for rk3568 io domains
Jianqun Xu (1):
soc: rockchip: io-domain: add rk3568 support
Michael Riesch (6):
dt-bindings: power: add rk3568-pmu-io-domain support
arm64: dts: rockchip: rk3568-evb1-v10: add regulators of rk809 pmic
arm64: dts: rockchip: enable io domains for rk356x
arm64: dts: rockchip: rk3568-evb1-v10: enable io domains
arm64: dts: rockchip: rk3568-evb1-v10: add pinctrl and alias to emmc
node
arm64: dts: rockchip: rk3568-evb1-v10: add node for sd card
.../bindings/power/rockchip-io-domain.yaml | 30 +++
.../boot/dts/rockchip/rk3568-evb1-v10.dts | 237 ++++++++++++++++++
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 5 +
drivers/soc/rockchip/io-domain.c | 88 ++++++-
4 files changed, 352 insertions(+), 8 deletions(-)
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
From: Jianqun Xu <redacted>
The io-domain registers on RK3568 SoCs have three separated bits to
enable/disable the 1.8v/2.5v/3.3v power.
This patch make the write to be a operation, allow rk3568 uses a private
register set function.
Since the 2.5v is not used on RK3568, so the driver only set
1.8v [enable] + 3.3v [disable] for 1.8v mode
1.8v [disable] + 3.3v [enable] for 3.3v mode
There is not register order requirement which has been cleared by our IC
team.
Signed-off-by: Jianqun Xu <redacted>
---
drivers/soc/rockchip/io-domain.c | 88 +++++++++++++++++++++++++++++---
1 file changed, 80 insertions(+), 8 deletions(-)
diff --git a/drivers/soc/rockchip/io-domain.c b/drivers/soc/rockchip/io-domain.c
index cf8182fc3642..13c446fd33a9 100644
--- a/drivers/soc/rockchip/io-domain.c
+++ b/drivers/soc/rockchip/io-domain.c @@ -51,13 +51,11 @@
#define RK3399_PMUGRF_CON0_VSEL BIT(8)
#define RK3399_PMUGRF_VSEL_SUPPLY_NUM 9
- struct rockchip_iodomain ;
+ #define RK3568_PMU_GRF_IO_VSEL0 (0x0140)
+ #define RK3568_PMU_GRF_IO_VSEL1 (0x0144)
+ #define RK3568_PMU_GRF_IO_VSEL2 (0x0148)
- struct rockchip_iodomain_soc_data {
- int grf_offset ;
- const char * supply_names [ MAX_SUPPLIES ];
- void ( * init )( struct rockchip_iodomain * iod );
- };
+ struct rockchip_iodomain ;
struct rockchip_iodomain_supply {
struct rockchip_iodomain * iod ; @@ -66,13 +64,62 @@ struct rockchip_iodomain_supply {
int idx ;
};
+ struct rockchip_iodomain_soc_data {
+ int grf_offset ;
+ const char * supply_names [ MAX_SUPPLIES ];
+ void ( * init )( struct rockchip_iodomain * iod );
+ int ( * write )( struct rockchip_iodomain_supply * supply , int uV );
+ };
+
struct rockchip_iodomain {
struct device * dev ;
struct regmap * grf ;
const struct rockchip_iodomain_soc_data * soc_data ;
struct rockchip_iodomain_supply supplies [ MAX_SUPPLIES ];
+ int ( * write )( struct rockchip_iodomain_supply * supply , int uV );
};
+ static int rk3568_iodomain_write ( struct rockchip_iodomain_supply * supply , int uV )
+ {
+ struct rockchip_iodomain * iod = supply -> iod ;
+ u32 is_3v3 = uV > MAX_VOLTAGE_1_8 ;
+ u32 val0 , val1 ;
+ int b ;
+
+ switch ( supply -> idx ) {
+ case 0 : /* pmuio1 */
+ break ;
+ case 1 : /* pmuio2 */
+ b = supply -> idx ;
+ val0 = BIT ( 16 + b ) | ( is_3v3 ? 0 : BIT ( b ));
+ b = supply -> idx + 4 ;
+ val1 = BIT ( 16 + b ) | ( is_3v3 ? BIT ( b ) : 0 );
+
+ regmap_write ( iod -> grf , RK3568_PMU_GRF_IO_VSEL2 , val0 );
+ regmap_write ( iod -> grf , RK3568_PMU_GRF_IO_VSEL2 , val1 );
+ break ;
+ case 3 : /* vccio2 */
+ break ;
+ case 2 : /* vccio1 */
+ case 4 : /* vccio3 */
+ case 5 : /* vccio4 */
+ case 6 : /* vccio5 */
+ case 7 : /* vccio6 */
+ case 8 : /* vccio7 */
+ b = supply -> idx - 1 ;
+ val0 = BIT ( 16 + b ) | ( is_3v3 ? 0 : BIT ( b ));
+ val1 = BIT ( 16 + b ) | ( is_3v3 ? BIT ( b ) : 0 );
+
+ regmap_write ( iod -> grf , RK3568_PMU_GRF_IO_VSEL0 , val0 );
+ regmap_write ( iod -> grf , RK3568_PMU_GRF_IO_VSEL1 , val1 );
+ break ;
+ default :
+ return - EINVAL ;
+ };
+
+ return 0 ;
+ }
+
static int rockchip_iodomain_write ( struct rockchip_iodomain_supply * supply ,
int uV )
{ @@ -136,7 +183,7 @@ static int rockchip_iodomain_notify(struct notifier_block *nb,
return NOTIFY_BAD ;
}
- ret = rockchip_iodomain_write ( supply , uV );
+ ret = supply -> iod -> write ( supply , uV );
if ( ret && event == REGULATOR_EVENT_PRE_VOLTAGE_CHANGE )
return NOTIFY_BAD ;
@@ -398,6 +445,22 @@ static const struct rockchip_iodomain_soc_data soc_data_rk3399_pmu = {
. init = rk3399_pmu_iodomain_init ,
};
+ static const struct rockchip_iodomain_soc_data soc_data_rk3568_pmu = {
+ . grf_offset = 0x140 ,
+ . supply_names = {
+ "pmuio1" ,
+ "pmuio2" ,
+ "vccio1" ,
+ "vccio2" ,
+ "vccio3" ,
+ "vccio4" ,
+ "vccio5" ,
+ "vccio6" ,
+ "vccio7" ,
+ },
+ . write = rk3568_iodomain_write ,
+ };
+
static const struct rockchip_iodomain_soc_data soc_data_rv1108 = {
. grf_offset = 0x404 ,
. supply_names = { @@ -469,6 +532,10 @@ static const struct of_device_id rockchip_iodomain_match[] = {
. compatible = "rockchip,rk3399-pmu-io-voltage-domain" ,
. data = & soc_data_rk3399_pmu
},
+ {
+ . compatible = "rockchip,rk3568-pmu-io-voltage-domain" ,
+ . data = & soc_data_rk3568_pmu
+ },
{
. compatible = "rockchip,rv1108-io-voltage-domain" ,
. data = & soc_data_rv1108 @@ -502,6 +569,11 @@ static int rockchip_iodomain_probe(struct platform_device *pdev)
match = of_match_node ( rockchip_iodomain_match , np );
iod -> soc_data = match -> data ;
+ if ( iod -> soc_data -> write )
+ iod -> write = iod -> soc_data -> write ;
+ else
+ iod -> write = rockchip_iodomain_write ;
+
parent = pdev -> dev . parent ;
if ( parent && parent -> of_node ) {
iod -> grf = syscon_node_to_regmap ( parent -> of_node ); @@ -562,7 +634,7 @@ static int rockchip_iodomain_probe(struct platform_device *pdev)
supply -> reg = reg ;
supply -> nb . notifier_call = rockchip_iodomain_notify ;
- ret = rockchip_iodomain_write ( supply , uV );
+ ret = iod -> write ( supply , uV );
if ( ret ) {
supply -> reg = NULL ;
goto unreg_notify ; --
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signed-off-by: Jianqun Xu <redacted>
[add soc-specific section]
Signed-off-by: Michael Riesch <redacted>
---
.../bindings/power/rockchip-io-domain.yaml | 30 +++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/Documentation/devicetree/bindings/power/rockchip-io-domain.yaml b/Documentation/devicetree/bindings/power/rockchip-io-domain.yaml
index 121bec56b2b0..1727bf108979 100644
--- a/Documentation/devicetree/bindings/power/rockchip-io-domain.yaml
+++ b/Documentation/devicetree/bindings/power/rockchip-io-domain.yaml @@ -55,6 +55,7 @@ properties:
- rockchip,rk3368-pmu-io-voltage-domain
- rockchip,rk3399-io-voltage-domain
- rockchip,rk3399-pmu-io-voltage-domain
+ - rockchip,rk3568-pmu-io-voltage-domain
- rockchip,rv1108-io-voltage-domain
- rockchip,rv1108-pmu-io-voltage-domain
@@ -74,6 +75,7 @@ allOf:
- $ref : "#/$defs/rk3368-pmu"
- $ref : "#/$defs/rk3399"
- $ref : "#/$defs/rk3399-pmu"
+ - $ref : "#/$defs/rk3568-pmu"
- $ref : "#/$defs/rv1108"
- $ref : "#/$defs/rv1108-pmu"
@@ -282,6 +284,34 @@ $defs:
pmu1830-supply :
description : The supply connected to PMUIO2_VDD.
+ rk3568-pmu :
+ if :
+ properties :
+ compatible :
+ contains :
+ const : rockchip,rk3568-pmu-io-voltage-domain
+
+ then :
+ properties :
+ pmuio1-supply :
+ description : The supply connected to PMUIO1.
+ pmuio2-supply :
+ description : The supply connected to PMUIO2.
+ vccio1-supply :
+ description : The supply connected to VCCIO1.
+ vccio2-supply :
+ description : The supply connected to VCCIO2.
+ vccio3-supply :
+ description : The supply connected to VCCIO3.
+ vccio4-supply :
+ description : The supply connected to VCCIO4.
+ vccio5-supply :
+ description : The supply connected to VCCIO5.
+ vccio6-supply :
+ description : The supply connected to VCCIO6.
+ vccio7-supply :
+ description : The supply connected to VCCIO7.
+
rv1108 :
if :
properties : --
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signed-off-by: Michael Riesch <redacted>
---
.../boot/dts/rockchip/rk3568-evb1-v10.dts | 206 ++++++++++++++++++
1 file changed, 206 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index 65e536c78d2e..f682144a1892 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -104,6 +104,203 @@
status = "okay" ;
};
+ & i2c0 {
+ status = "okay" ;
+
+ rk809 : pmic @ 20 {
+ compatible = "rockchip,rk809" ;
+ reg = < 0x20 > ;
+ interrupt-parent = <& gpio0 > ;
+ interrupts = < RK_PA3 IRQ_TYPE_LEVEL_LOW > ;
+ # clock-cells = < 1 > ;
+ pinctrl-names = "default" ;
+ pinctrl-0 = <& pmic_int > ;
+ rockchip , system-power-controller ;
+ wakeup-source ;
+
+ vcc1-supply = <& vcc3v3_sys > ;
+ vcc2-supply = <& vcc3v3_sys > ;
+ vcc3-supply = <& vcc3v3_sys > ;
+ vcc4-supply = <& vcc3v3_sys > ;
+ vcc5-supply = <& vcc3v3_sys > ;
+ vcc6-supply = <& vcc3v3_sys > ;
+ vcc7-supply = <& vcc3v3_sys > ;
+ vcc8-supply = <& vcc3v3_sys > ;
+ vcc9-supply = <& vcc3v3_sys > ;
+
+ regulators {
+ vdd_logic : DCDC_REG1 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 500000 > ;
+ regulator-max-microvolt = < 1350000 > ;
+ regulator-init-microvolt = < 900000 > ;
+ regulator-ramp-delay = < 6001 > ;
+ regulator-initial-mode = < 0x2 > ;
+ regulator-name = "vdd_logic" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vdd_gpu : DCDC_REG2 {
+ regulator-min-microvolt = < 500000 > ;
+ regulator-max-microvolt = < 1350000 > ;
+ regulator-init-microvolt = < 900000 > ;
+ regulator-ramp-delay = < 6001 > ;
+ regulator-initial-mode = < 0x2 > ;
+ regulator-name = "vdd_gpu" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcc_ddr : DCDC_REG3 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-initial-mode = < 0x2 > ;
+ regulator-name = "vcc_ddr" ;
+ regulator-state-mem {
+ regulator-on-in-suspend ;
+ };
+ };
+
+ vdd_npu : DCDC_REG4 {
+ regulator-min-microvolt = < 500000 > ;
+ regulator-max-microvolt = < 1350000 > ;
+ regulator-init-microvolt = < 900000 > ;
+ regulator-ramp-delay = < 6001 > ;
+ regulator-initial-mode = < 0x2 > ;
+ regulator-name = "vdd_npu" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcc_1v8 : DCDC_REG5 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 1800000 > ;
+ regulator-max-microvolt = < 1800000 > ;
+ regulator-name = "vcc_1v8" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vdda0v9_image : LDO_REG1 {
+ regulator-min-microvolt = < 900000 > ;
+ regulator-max-microvolt = < 900000 > ;
+ regulator-name = "vdda0v9_image" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vdda_0v9 : LDO_REG2 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 900000 > ;
+ regulator-max-microvolt = < 900000 > ;
+ regulator-name = "vdda_0v9" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vdda0v9_pmu : LDO_REG3 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 900000 > ;
+ regulator-max-microvolt = < 900000 > ;
+ regulator-name = "vdda0v9_pmu" ;
+ regulator-state-mem {
+ regulator-on-in-suspend ;
+ regulator-suspend-microvolt = < 900000 > ;
+ };
+ };
+
+ vccio_acodec : LDO_REG4 {
+ regulator-min-microvolt = < 3300000 > ;
+ regulator-max-microvolt = < 3300000 > ;
+ regulator-name = "vccio_acodec" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vccio_sd : LDO_REG5 {
+ regulator-min-microvolt = < 1800000 > ;
+ regulator-max-microvolt = < 3300000 > ;
+ regulator-name = "vccio_sd" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcc3v3_pmu : LDO_REG6 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 3300000 > ;
+ regulator-max-microvolt = < 3300000 > ;
+ regulator-name = "vcc3v3_pmu" ;
+ regulator-state-mem {
+ regulator-on-in-suspend ;
+ regulator-suspend-microvolt = < 3300000 > ;
+ };
+ };
+
+ vcca_1v8 : LDO_REG7 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 1800000 > ;
+ regulator-max-microvolt = < 1800000 > ;
+ regulator-name = "vcca_1v8" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcca1v8_pmu : LDO_REG8 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-min-microvolt = < 1800000 > ;
+ regulator-max-microvolt = < 1800000 > ;
+ regulator-name = "vcca1v8_pmu" ;
+ regulator-state-mem {
+ regulator-on-in-suspend ;
+ regulator-suspend-microvolt = < 1800000 > ;
+ };
+ };
+
+ vcca1v8_image : LDO_REG9 {
+ regulator-min-microvolt = < 1800000 > ;
+ regulator-max-microvolt = < 1800000 > ;
+ regulator-name = "vcca1v8_image" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcc_3v3 : SWITCH_REG1 {
+ regulator-always-on ;
+ regulator-boot-on ;
+ regulator-name = "vcc_3v3" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+
+ vcc3v3_sd : SWITCH_REG2 {
+ regulator-name = "vcc3v3_sd" ;
+ regulator-state-mem {
+ regulator-off-in-suspend ;
+ };
+ };
+ };
+ };
+ };
+
& mdio0 {
rgmii_phy0 : ethernet-phy @ 0 {
compatible = "ethernet-phy-ieee802.3-c22" ; @@ -124,6 +321,15 @@
};
};
+ & pinctrl {
+ pmic {
+ pmic_int : pmic_int {
+ rockchip , pins =
+ < 0 RK_PA3 RK_FUNC_GPIO & pcfg_pull_up > ;
+ };
+ };
+ };
+
& sdhci {
bus-width = < 8 > ;
max-frequency = < 200000000 > ; --
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signed-off-by: Michael Riesch <redacted>
---
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
index 3e90a8832bb9..834863940eba 100644
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi @@ -203,6 +203,11 @@
pmugrf : syscon @ fdc20000 {
compatible = "rockchip,rk3568-pmugrf" , "syscon" , "simple-mfd" ;
reg = < 0x0 0xfdc20000 0x0 0x10000 > ;
+
+ pmu_io_domains : io-domains {
+ compatible = "rockchip,rk3568-pmu-io-voltage-domain" ;
+ status = "disabled" ;
+ };
};
grf : syscon @ fdc60000 { --
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signed-off-by: Michael Riesch <redacted>
---
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index f682144a1892..f3fd4a6813a2 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -330,6 +330,19 @@
};
};
+ & pmu_io_domains {
+ pmuio1-supply = <& vcc3v3_pmu > ;
+ pmuio2-supply = <& vcc3v3_pmu > ;
+ vccio1-supply = <& vccio_acodec > ;
+ vccio2-supply = <& vcc_1v8 > ;
+ vccio3-supply = <& vccio_sd > ;
+ vccio4-supply = <& vcc_1v8 > ;
+ vccio5-supply = <& vcc_3v3 > ;
+ vccio6-supply = <& vcc_1v8 > ;
+ vccio7-supply = <& vcc_3v3 > ;
+ status = "okay" ;
+ };
+
& sdhci {
bus-width = < 8 > ;
max-frequency = < 200000000 > ; --
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signed-off-by: Michael Riesch <redacted>
---
v2:
- rename alias to match convention
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index f3fd4a6813a2..ed96f27c64a3 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -16,6 +16,7 @@
aliases {
ethernet0 = & gmac0 ;
ethernet1 = & gmac1 ;
+ mmc0 = & sdhci ;
};
chosen : chosen { @@ -347,6 +348,8 @@
bus-width = < 8 > ;
max-frequency = < 200000000 > ;
non-removable ;
+ pinctrl-names = "default" ;
+ pinctrl-0 = <& emmc_bus8 & emmc_clk & emmc_cmd & emmc_datastrobe > ;
status = "okay" ;
};
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Signed-off-by: Michael Riesch <redacted>
---
v2:
- rename alias to match convention
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index ed96f27c64a3..c4da6436059d 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -17,6 +17,7 @@
ethernet0 = & gmac0 ;
ethernet1 = & gmac1 ;
mmc0 = & sdhci ;
+ mmc1 = & sdmmc0 ;
};
chosen : chosen { @@ -353,6 +354,20 @@
status = "okay" ;
};
+ & sdmmc0 {
+ bus-width = < 4 > ;
+ cap-sd-highspeed ;
+ cd-gpios = <& gpio0 RK_PA4 GPIO_ACTIVE_LOW > ;
+ disable-wp ;
+ pinctrl-names = "default" ;
+ pinctrl-0 = <& sdmmc0_bus4 & sdmmc0_clk & sdmmc0_cmd & sdmmc0_det > ;
+ sd-uhs-sdr104 ;
+ supports-sd ;
+ vmmc-supply = <& vcc3v3_sd > ;
+ vqmmc-supply = <& vccio_sd > ;
+ status = "okay" ;
+ };
+
& uart2 {
status = "okay" ;
}; --
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Hi Michael,
Could you add a commit message to all patches in this serie?
On 8/4/21 3:06 PM, Michael Riesch wrote: quoted hunk Signed-off-by: Michael Riesch <redacted>
---
v2:
- rename alias to match convention
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index ed96f27c64a3..c4da6436059d 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -17,6 +17,7 @@
ethernet0 = & gmac0 ;
ethernet1 = & gmac1 ; mmc0 = &sdhci;
+ mmc1 = &sdmmc0;
mmc aliases are sort on reg address based on availability without number
gap.
sdmmc0: mmc@fe2b0000 {}
sdhci: mmc@fe310000 {}
quoted hunk };
chosen: chosen { @@ -353,6 +354,20 @@
status = "okay";
};
+ &sdmmc0 {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+ disable-wp;+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
pinctrl-names below pinctrl-0 like the rest of rk356x.dtsi
+ sd-uhs-sdr104; + supports-sd;
Check mmc-controller.yaml, rockchip-dw-mshc.yaml and
synopsys-dw-mshc-common.yaml for properties.
+ vmmc-supply = <&vcc3v3_sd>;
+ vqmmc-supply = <&vccio_sd>;
+ status = "okay";
+};
+
&uart2 {
status = "okay";
};
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Hi Michael,
Missing commit message.
On 8/4/21 3:06 PM, Michael Riesch wrote: quoted hunk Signed-off-by: Michael Riesch <redacted>
---
.../boot/dts/rockchip/rk3568-evb1-v10.dts | 206 ++++++++++++++++++
1 file changed, 206 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index 65e536c78d2e..f682144a1892 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -104,6 +104,203 @@
status = "okay" ;
};
+ & i2c0 {
+ status = "okay" ;
+
+ rk809 : pmic @ 20 {
+ compatible = "rockchip,rk809" ;
+ reg = < 0x20 > ;
+ interrupt-parent = <& gpio0 > ;
+ interrupts = < RK_PA3 IRQ_TYPE_LEVEL_LOW > ;
+ # clock-cells = < 1 > ; + pinctrl-names = "default";
+ pinctrl-0 = <&pmic_int>;
pinctrl-names below pinctrl-0 like the rest of rk356x.dtsi
+ rockchip,system-power-controller;
+ wakeup-source;
+
+ vcc1-supply = <&vcc3v3_sys>;
+ vcc2-supply = <&vcc3v3_sys>;
+ vcc3-supply = <&vcc3v3_sys>;
+ vcc4-supply = <&vcc3v3_sys>;
+ vcc5-supply = <&vcc3v3_sys>;
+ vcc6-supply = <&vcc3v3_sys>;
+ vcc7-supply = <&vcc3v3_sys>;
+ vcc8-supply = <&vcc3v3_sys>;
+ vcc9-supply = <&vcc3v3_sys>;
+
+ regulators {
+ vdd_logic: DCDC_REG1 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-init-microvolt = <900000>;
+ regulator-ramp-delay = <6001>;
+ regulator-initial-mode = <0x2>;
+ regulator-name = "vdd_logic";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdd_gpu: DCDC_REG2 {
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-init-microvolt = <900000>;
+ regulator-ramp-delay = <6001>;
+ regulator-initial-mode = <0x2>;
+ regulator-name = "vdd_gpu";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_ddr: DCDC_REG3 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-initial-mode = <0x2>;
+ regulator-name = "vcc_ddr";
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ vdd_npu: DCDC_REG4 { + regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1350000>;
Exception to the sort rule:
1: regulator-min-microvolt above regulator-max-microvolt
2: regulator-name above all other regulator properties.
The rest in alphabetical order.
Fix them all.
+ regulator-init-microvolt = <900000>;
+ regulator-ramp-delay = <6001>;
+ regulator-initial-mode = <0x2>;
+ regulator-name = "vdd_npu";
Add empty line between properties and a node.
quoted hunk + regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_1v8: DCDC_REG5 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-name = "vcc_1v8";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda0v9_image: LDO_REG1 {
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+ regulator-name = "vdda0v9_image";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda_0v9: LDO_REG2 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+ regulator-name = "vdda_0v9";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vdda0v9_pmu: LDO_REG3 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+ regulator-name = "vdda0v9_pmu";
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <900000>;
+ };
+ };
+
+ vccio_acodec: LDO_REG4 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vccio_acodec";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vccio_sd: LDO_REG5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vccio_sd";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc3v3_pmu: LDO_REG6 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc3v3_pmu";
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <3300000>;
+ };
+ };
+
+ vcca_1v8: LDO_REG7 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-name = "vcca_1v8";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcca1v8_pmu: LDO_REG8 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-name = "vcca1v8_pmu";
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1800000>;
+ };
+ };
+
+ vcca1v8_image: LDO_REG9 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-name = "vcca1v8_image";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_3v3: SWITCH_REG1 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-name = "vcc_3v3";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc3v3_sd: SWITCH_REG2 {
+ regulator-name = "vcc3v3_sd";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+ };
+ };
+};
+
&mdio0 {
rgmii_phy0: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22"; @@ -124,6 +321,15 @@
};
};
+ &pinctrl {
+ pmic {
+ pmic_int: pmic_int {
+ rockchip,pins =
+ <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+ };
+
&sdhci {
bus-width = <8>;
max-frequency = <200000000>;
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Hi Michael,
pmu_io_domains is a sub node of pmugrf, so add it to grf.yaml as well in
a separate patch. Place document changes before driver patches for
checkpatch scripts (undocumented compatible string):
./scripts/checkpatch.pl --strict <patch1> <patch2>
- if:
properties:
compatible:
contains:
enum:
- rockchip,px30-pmugrf
- rockchip,px30-grf
- rockchip,rk3228-grf
- rockchip,rk3288-grf
- rockchip,rk3328-grf
- rockchip,rk3368-pmugrf
- rockchip,rk3368-grf
- rockchip,rk3399-pmugrf
- rockchip,rk3399-grf
==>
- rockchip,rk3568-pmugrf
then:
properties:
io-domains:
type: object
$ref: "/schemas/power/rockchip-io-domain.yaml#"
On 8/4/21 3:06 PM, Michael Riesch wrote: quoted hunk Signed-off-by: Michael Riesch <redacted>
---
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
index 3e90a8832bb9..834863940eba 100644
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi @@ -203,6 +203,11 @@
pmugrf : syscon @ fdc20000 {
compatible = "rockchip,rk3568-pmugrf" , "syscon" , "simple-mfd" ;
reg = < 0x0 0xfdc20000 0x0 0x10000 > ;
+
+ pmu_io_domains : io-domains {
+ compatible = "rockchip,rk3568-pmu-io-voltage-domain" ;
+ status = "disabled" ;
+ };
};
grf : syscon @ fdc60000 {
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Hi Johan,
Thanks for your comments, I'll try to implement the requested changes
and prepare a v3 tomorrow.
On 8/4/21 4:30 PM, Johan Jonker wrote: Hi Michael,
Could you add a commit message to all patches in this serie?
Well the short commit message (i.e., the subject line) pretty much wraps
it all up in my opinion, hence no need for an extended commit message.
Is there anything in particular you would like to see or have explained
that requires an extended message? I would like to refrain from adding
an extended commit message just for the sake of having one.
On 8/4/21 3:06 PM, Michael Riesch wrote: quoted Signed-off-by: Michael Riesch <redacted>
---
v2:
- rename alias to match convention
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index ed96f27c64a3..c4da6436059d 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -17,6 +17,7 @@
ethernet0 = & gmac0 ;
ethernet1 = & gmac1 ; quoted mmc0 = &sdhci;
+ mmc1 = &sdmmc0;
mmc aliases are sort on reg address based on availability without number
gap.
sdmmc0: mmc@fe2b0000 {}
sdhci: mmc@fe310000 {}
I'll turn these around.
quoted };
chosen: chosen { @@ -353,6 +354,20 @@
status = "okay";
};
+ &sdmmc0 {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+ disable-wp;quoted + pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
pinctrl-names below pinctrl-0 like the rest of rk356x.dtsi
OK!
quoted + sd-uhs-sdr104; quoted + supports-sd;
Check mmc-controller.yaml, rockchip-dw-mshc.yaml and
synopsys-dw-mshc-common.yaml for properties.
I am afraid I don't quite follow. What exactly should I check? I am
pretty sure that the properties I used are described in the mentioned
yaml files.
Regards, Michael
quoted + vmmc-supply = <&vcc3v3_sd>;
+ vqmmc-supply = <&vccio_sd>;
+ status = "okay";
+};
+
&uart2 {
status = "okay";
};
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Hi Michael,
Am Mittwoch, 4. August 2021, 20:49:45 CEST schrieb Michael Riesch: Hi Johan,
Thanks for your comments, I'll try to implement the requested changes
and prepare a v3 tomorrow.
On 8/4/21 4:30 PM, Johan Jonker wrote: quoted Hi Michael,
Could you add a commit message to all patches in this serie?
Well the short commit message (i.e., the subject line) pretty much wraps
it all up in my opinion, hence no need for an extended commit message.
Is there anything in particular you would like to see or have explained
that requires an extended message? I would like to refrain from adding
an extended commit message just for the sake of having one.
it's just a matter of style, and yes having a non-empty commit message
is preferred in most parts of the kernel.
Even if it's just a simple one-liner ;-), for example
"Enable the sdmmc node on the rk3568-evb1 with the 4 lanes connected on it"
Heiko
quoted On 8/4/21 3:06 PM, Michael Riesch wrote: quoted Signed-off-by: Michael Riesch <redacted>
---
v2:
- rename alias to match convention
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
index ed96f27c64a3..c4da6436059d 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -17,6 +17,7 @@
ethernet0 = & gmac0 ;
ethernet1 = & gmac1 ; quoted mmc0 = &sdhci;
+ mmc1 = &sdmmc0;
mmc aliases are sort on reg address based on availability without number
gap.
sdmmc0: mmc@fe2b0000 {}
sdhci: mmc@fe310000 {}
I'll turn these around.
quoted quoted };
chosen: chosen { @@ -353,6 +354,20 @@
status = "okay";
};
+ &sdmmc0 {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+ disable-wp;quoted + pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
pinctrl-names below pinctrl-0 like the rest of rk356x.dtsi
OK!
quoted quoted + sd-uhs-sdr104; quoted + supports-sd;
Check mmc-controller.yaml, rockchip-dw-mshc.yaml and
synopsys-dw-mshc-common.yaml for properties.
I am afraid I don't quite follow. What exactly should I check? I am
pretty sure that the properties I used are described in the mentioned
yaml files.
Regards, Michael
quoted quoted + vmmc-supply = <&vcc3v3_sd>;
+ vqmmc-supply = <&vccio_sd>;
+ status = "okay";
+};
+
&uart2 {
status = "okay";
};
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel