From 7ae028b6690806e99711fb009908ba8310c40185 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Sun, 11 Feb 2018 11:53:05 +0800 Subject: [PATCH 01/17] rockchip: clk: rk3036: convert to use live dt Use live dt api to get cru base addr. Signed-off-by: Kever Yang Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- drivers/clk/rockchip/clk_rk3036.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/rockchip/clk_rk3036.c b/drivers/clk/rockchip/clk_rk3036.c index 510a00a3aa..560222b96c 100644 --- a/drivers/clk/rockchip/clk_rk3036.c +++ b/drivers/clk/rockchip/clk_rk3036.c @@ -321,7 +321,7 @@ static int rk3036_clk_probe(struct udevice *dev) { struct rk3036_clk_priv *priv = dev_get_priv(dev); - priv->cru = (struct rk3036_cru *)devfdt_get_addr(dev); + priv->cru = dev_read_addr_ptr(dev); rkclk_init(priv->cru); return 0; From aca456471f9e07398b2d4d53dcfd461f768f49af Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Sun, 11 Feb 2018 11:53:06 +0800 Subject: [PATCH 02/17] rockchip: clk: rk3188: convert to use live dt Use live dt api to get cru base addr. Signed-off-by: Kever Yang Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- drivers/clk/rockchip/clk_rk3188.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/rockchip/clk_rk3188.c b/drivers/clk/rockchip/clk_rk3188.c index 6451c95a32..ad8df5a459 100644 --- a/drivers/clk/rockchip/clk_rk3188.c +++ b/drivers/clk/rockchip/clk_rk3188.c @@ -541,7 +541,7 @@ static int rk3188_clk_ofdata_to_platdata(struct udevice *dev) #if !CONFIG_IS_ENABLED(OF_PLATDATA) struct rk3188_clk_priv *priv = dev_get_priv(dev); - priv->cru = (struct rk3188_cru *)devfdt_get_addr(dev); + priv->cru = dev_read_addr_ptr(dev); #endif return 0; From 99b8553cb8b302ff3fec639644fa12ccb85f7734 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Sun, 11 Feb 2018 11:53:07 +0800 Subject: [PATCH 03/17] rockchip: clk: rk322x: convert to use live dt Use live dt api to get cru base addr. Signed-off-by: Kever Yang Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- drivers/clk/rockchip/clk_rk322x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/rockchip/clk_rk322x.c b/drivers/clk/rockchip/clk_rk322x.c index 4e6d2f0834..ebcab73002 100644 --- a/drivers/clk/rockchip/clk_rk322x.c +++ b/drivers/clk/rockchip/clk_rk322x.c @@ -475,7 +475,7 @@ static int rk322x_clk_ofdata_to_platdata(struct udevice *dev) { struct rk322x_clk_priv *priv = dev_get_priv(dev); - priv->cru = (struct rk322x_cru *)devfdt_get_addr(dev); + priv->cru = dev_read_addr_ptr(dev); return 0; } From 995cde1f9c22e9ca44882ba437a0e2dd323d1280 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Sun, 11 Feb 2018 11:53:08 +0800 Subject: [PATCH 04/17] rockchip: clk: rk3288: convert to use live dt Use live dt api to get cru base addr. Signed-off-by: Kever Yang Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- drivers/clk/rockchip/clk_rk3288.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/rockchip/clk_rk3288.c b/drivers/clk/rockchip/clk_rk3288.c index 552a71a82f..3a36d04096 100644 --- a/drivers/clk/rockchip/clk_rk3288.c +++ b/drivers/clk/rockchip/clk_rk3288.c @@ -906,7 +906,7 @@ static int rk3288_clk_ofdata_to_platdata(struct udevice *dev) #if !CONFIG_IS_ENABLED(OF_PLATDATA) struct rk3288_clk_priv *priv = dev_get_priv(dev); - priv->cru = (struct rk3288_cru *)devfdt_get_addr(dev); + priv->cru = dev_read_addr_ptr(dev); #endif return 0; From 08516431cf09cb624d9ead6253d91d96bfef617a Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Sun, 11 Feb 2018 11:53:09 +0800 Subject: [PATCH 05/17] rockchip: clk: rk3328: convert to use live dt Use live dt api to get cru base addr. Signed-off-by: Kever Yang Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- drivers/clk/rockchip/clk_rk3328.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/rockchip/clk_rk3328.c b/drivers/clk/rockchip/clk_rk3328.c index 2ccc79851c..046b4e4c2f 100644 --- a/drivers/clk/rockchip/clk_rk3328.c +++ b/drivers/clk/rockchip/clk_rk3328.c @@ -767,7 +767,7 @@ static int rk3328_clk_ofdata_to_platdata(struct udevice *dev) { struct rk3328_clk_priv *priv = dev_get_priv(dev); - priv->cru = (struct rk3328_cru *)devfdt_get_addr(dev); + priv->cru = dev_read_addr_ptr(dev); return 0; } From bbfef40f92983fd0ccd72577020a434d04165400 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Sun, 11 Feb 2018 11:53:10 +0800 Subject: [PATCH 06/17] rockchip: clk: rk1108: convert to use live dt Use live dt api to get cru base addr. Signed-off-by: Kever Yang Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- drivers/clk/rockchip/clk_rv1108.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/rockchip/clk_rv1108.c b/drivers/clk/rockchip/clk_rv1108.c index 224c81355e..958fc78592 100644 --- a/drivers/clk/rockchip/clk_rv1108.c +++ b/drivers/clk/rockchip/clk_rv1108.c @@ -213,7 +213,7 @@ static int rv1108_clk_probe(struct udevice *dev) { struct rv1108_clk_priv *priv = dev_get_priv(dev); - priv->cru = (struct rv1108_cru *)devfdt_get_addr(dev); + priv->cru = dev_read_addr_ptr(dev); rkclk_init(priv->cru); From f9326ec318e07841d7cd0c4e3fd0fc4b1eb15605 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Thu, 8 Feb 2018 21:15:21 +0800 Subject: [PATCH 07/17] rockchip: pwm: convert to use live dt use live dt api to get base addr Signed-off-by: Kever Yang Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- drivers/pwm/rk_pwm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pwm/rk_pwm.c b/drivers/pwm/rk_pwm.c index 2364c2dfdd..7d3e11d667 100644 --- a/drivers/pwm/rk_pwm.c +++ b/drivers/pwm/rk_pwm.c @@ -76,7 +76,7 @@ static int rk_pwm_ofdata_to_platdata(struct udevice *dev) { struct rk_pwm_priv *priv = dev_get_priv(dev); - priv->regs = (struct rk3288_pwm *)devfdt_get_addr(dev); + priv->regs = (struct rk3288_pwm *)dev_read_addr(dev); return 0; } From 0c8e0b319f38da8a2a6424f742303a5291bc3f94 Mon Sep 17 00:00:00 2001 From: Klaus Goger Date: Mon, 19 Feb 2018 08:02:26 +0100 Subject: [PATCH 08/17] rockchip: add text_offset to kernel_addr_r on aarch64 platforms Booting a aarch64 Linux kernel requires the image to be placed text_offset bytes from a 2MB aligned address. See https://www.kernel.org/doc/Documentation/arm64/booting.txt booti_setup() takes care about this alignment and will relocate the image if not properly aligned with memmove(). This can require up to double the size of the loaded image and therefore accidentally overwrite content placed there (i.e ramdisk_addr_r) for large kernel images. By adding text_offset to the default kernel_addr_r we can prevent that from happening for kernels larger 18MB and also save a few cycles. We can assume a text_offset of 0x80000 for most cases, all others will be handled by booti_setup() anyway. Signed-off-by: Klaus Goger Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- include/configs/rk3328_common.h | 2 +- include/configs/rk3399_common.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/configs/rk3328_common.h b/include/configs/rk3328_common.h index 7018668e00..517d058a11 100644 --- a/include/configs/rk3328_common.h +++ b/include/configs/rk3328_common.h @@ -42,7 +42,7 @@ "scriptaddr=0x00500000\0" \ "pxefile_addr_r=0x00600000\0" \ "fdt_addr_r=0x01f00000\0" \ - "kernel_addr_r=0x02000000\0" \ + "kernel_addr_r=0x02080000\0" \ "ramdisk_addr_r=0x04000000\0" #include diff --git a/include/configs/rk3399_common.h b/include/configs/rk3399_common.h index d700bf2549..8582252dc3 100644 --- a/include/configs/rk3399_common.h +++ b/include/configs/rk3399_common.h @@ -53,7 +53,7 @@ "scriptaddr=0x00500000\0" \ "pxefile_addr_r=0x00600000\0" \ "fdt_addr_r=0x01f00000\0" \ - "kernel_addr_r=0x02000000\0" \ + "kernel_addr_r=0x02080000\0" \ "ramdisk_addr_r=0x04000000\0" #include From d11455f56ac82e9b2d95f9a75a034e8335a95b1e Mon Sep 17 00:00:00 2001 From: Jagan Teki Date: Wed, 14 Feb 2018 21:26:14 +0530 Subject: [PATCH 09/17] ARM: dts: rockchip: Sync rk3288-vyasa dts from Linux Sync rk3288-vyasa board dts from Linux for proper updates and maintenance - rk3288-vyasa.dts: Similar to Linux dts - rk3288-vyasa-u-boot.dtsi: u-boot dts changes Also updated MAINTAINERS for these dts files. Signed-off-by: Jagan Teki Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- arch/arm/dts/rk3288-vyasa-u-boot.dtsi | 29 ++++++ arch/arm/dts/rk3288-vyasa.dts | 136 ++++++++++++++----------- board/amarula/vyasa-rk3288/MAINTAINERS | 2 + 3 files changed, 106 insertions(+), 61 deletions(-) create mode 100644 arch/arm/dts/rk3288-vyasa-u-boot.dtsi diff --git a/arch/arm/dts/rk3288-vyasa-u-boot.dtsi b/arch/arm/dts/rk3288-vyasa-u-boot.dtsi new file mode 100644 index 0000000000..b3a56e94ad --- /dev/null +++ b/arch/arm/dts/rk3288-vyasa-u-boot.dtsi @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2017 Jagan Teki + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +&dmc { + rockchip,pctl-timing = <0x29a 0xc8 0x1f8 0x42 0x4e 0x4 0xea 0xa + 0x5 0x0 0xa 0x7 0x19 0x24 0xa 0x7 + 0x5 0xa 0x5 0x200 0x5 0x10 0x40 0x0 + 0x1 0x7 0x7 0x4 0xc 0x43 0x100 0x0 + 0x5 0x0>; + rockchip,phy-timing = <0x48f9aab4 0xea0910 0x1002c200 + 0xa60 0x40 0x10 0x0>; + /* Add a dummy value to cause of-platdata think this is bytes */ + rockchip,sdram-params = <0x30B25564 0x627 3 666000000 3 9 1>; +}; + +&sdmmc { + u-boot,dm-pre-reloc; +}; + +&uart2 { + u-boot,dm-pre-reloc; +}; + +&pinctrl { + u-boot,dm-pre-reloc; +}; diff --git a/arch/arm/dts/rk3288-vyasa.dts b/arch/arm/dts/rk3288-vyasa.dts index 93a9c5ee09..932311c336 100644 --- a/arch/arm/dts/rk3288-vyasa.dts +++ b/arch/arm/dts/rk3288-vyasa.dts @@ -52,8 +52,8 @@ }; memory { + reg = <0x0 0x0 0x0 0x80000000>; device_type = "memory"; - reg = <0 0x80000000>; }; vcc_sd: sdmmc-regulator { @@ -78,22 +78,20 @@ }; }; -&dmc { - rockchip,pctl-timing = <0x29a 0xc8 0x1f8 0x42 0x4e 0x4 0xea 0xa - 0x5 0x0 0xa 0x7 0x19 0x24 0xa 0x7 - 0x5 0xa 0x5 0x200 0x5 0x10 0x40 0x0 - 0x1 0x7 0x7 0x4 0xc 0x43 0x100 0x0 - 0x5 0x0>; - rockchip,phy-timing = <0x48f9aab4 0xea0910 0x1002c200 - 0xa60 0x40 0x10 0x0>; - /* Add a dummy value to cause of-platdata think this is bytes */ - rockchip,sdram-params = <0x30B25564 0x627 3 666000000 3 9 1>; -}; - &cpu0 { cpu0-supply = <&vdd_cpu>; }; +&gpu { + mali-supply = <&vdd_gpu>; + status = "okay"; +}; + +&hdmi { + ddc-i2c-bus = <&i2c2>; + status = "okay"; +}; + &i2c0 { clock-frequency = <400000>; status = "okay"; @@ -103,12 +101,12 @@ reg = <0x1b>; interrupt-parent = <&gpio0>; interrupts = ; - pinctrl-names = "default"; - pinctrl-0 = <&pmic_int &global_pwroff>; - wakeup-source; - rockchip,system-power-controller; #clock-cells = <1>; clock-output-names = "xin32k", "rk808-clkout2"; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_int &global_pwroff>; + rockchip,system-power-controller; + wakeup-source; vcc1-supply = <&vcc_sys>; vcc2-supply = <&vcc_sys>; @@ -124,22 +122,22 @@ regulators { vdd_cpu: vdd_log: DCDC_REG1 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vdd_log"; regulator-min-microvolt = <750000>; regulator-max-microvolt = <1350000>; - regulator-name = "vdd_log"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_gpu: DCDC_REG2 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vdd_gpu"; regulator-min-microvolt = <850000>; regulator-max-microvolt = <1250000>; - regulator-name = "vdd_gpu"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; @@ -147,20 +145,20 @@ }; vcc_ddr: DCDC_REG3 { + regulator-name = "vcc_ddr"; regulator-always-on; regulator-boot-on; - regulator-name = "vcc_ddr"; regulator-state-mem { regulator-on-in-suspend; }; }; vcc_io: DCDC_REG4 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vcc_io"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - regulator-name = "vcc_io"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; @@ -168,11 +166,11 @@ }; vcca_tp: LDO_REG1 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vcc_tp"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - regulator-name = "vcc_tp"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; @@ -180,22 +178,22 @@ }; vcc_codec: LDO_REG2 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vcc_codec"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - regulator-name = "vcc_codec"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_10: LDO_REG3 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vdd_10"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; - regulator-name = "vdd_10"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; @@ -203,11 +201,11 @@ }; vcc_gps: LDO_REG4 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vcc_gps"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; - regulator-name = "vcc_gps"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; @@ -215,11 +213,11 @@ }; vccio_sd: LDO_REG5 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vccio_sd"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; - regulator-name = "vccio_sd"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; @@ -227,11 +225,11 @@ }; vcc10_lcd: LDO_REG6 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vcc10_lcd"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; - regulator-name = "vcc10_lcd"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; @@ -239,11 +237,11 @@ }; vcc_18: LDO_REG7 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vcc_18"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; - regulator-name = "vcc_18"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; @@ -251,11 +249,11 @@ }; vcc18_lcd: LDO_REG8 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vcc18_lcd"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; - regulator-name = "vcc18_lcd"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; @@ -263,22 +261,22 @@ }; vcc33_sd: SWITCH_REG1 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vcc33_sd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - regulator-name = "vcc33_sd"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; }; }; vcc_lan: SWITCH_REG2 { - regulator-always-on; - regulator-boot-on; + regulator-name = "vcc_lan"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - regulator-name = "vcc_lan"; + regulator-always-on; + regulator-boot-on; regulator-state-mem { regulator-on-in-suspend; }; @@ -287,10 +285,11 @@ }; }; -&sdmmc { - u-boot,dm-pre-reloc; +&i2c2 { status = "okay"; +}; +&sdmmc { bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; @@ -300,10 +299,26 @@ pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>; vmmc-supply = <&vcc_sd>; vqmmc-supply = <&vccio_sd>; + status = "okay"; }; &uart2 { - u-boot,dm-pre-reloc; + status = "okay"; +}; + +&vopb { + status = "okay"; +}; + +&vopb_mmu { + status = "okay"; +}; + +&vopl { + status = "okay"; +}; + +&vopl_mmu { status = "okay"; }; @@ -312,7 +327,6 @@ }; &pinctrl { - u-boot,dm-pre-reloc; pmic { pmic_int: pmic-int { rockchip,pins = ; diff --git a/board/amarula/vyasa-rk3288/MAINTAINERS b/board/amarula/vyasa-rk3288/MAINTAINERS index 10397fcb4b..08ea208004 100644 --- a/board/amarula/vyasa-rk3288/MAINTAINERS +++ b/board/amarula/vyasa-rk3288/MAINTAINERS @@ -4,3 +4,5 @@ S: Maintained F: board/amarula/vyasa-rk3288 F: include/configs/vyasa-rk3288.h F: configs/vyasa-rk3288_defconfig +F: arch/arm/dts/rk3288-vyasa.dts +F: arch/arm/dts/rk3288-vyasa-u-boot.dtsi From 764a94d90c6fa50fa20d264411cbd496fb999b8f Mon Sep 17 00:00:00 2001 From: Jagan Teki Date: Wed, 14 Feb 2018 21:26:15 +0530 Subject: [PATCH 10/17] ARM: dts: rockchip: rk3288-vyasa: Remove vdd_log from rk808, DCDC_REG1 vdd_log, never used on DCDC_REG1 of rk808 from latest schematic so remove the same and update the regulator-name as 'vdd_arm' to sync with existing rk3288 board dts files. Signed-off-by: Jagan Teki Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- arch/arm/dts/rk3288-vyasa.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/dts/rk3288-vyasa.dts b/arch/arm/dts/rk3288-vyasa.dts index 932311c336..6a74eb405f 100644 --- a/arch/arm/dts/rk3288-vyasa.dts +++ b/arch/arm/dts/rk3288-vyasa.dts @@ -121,8 +121,8 @@ vcc12-supply = <&vcc_io>; regulators { - vdd_cpu: vdd_log: DCDC_REG1 { - regulator-name = "vdd_log"; + vdd_cpu: DCDC_REG1 { + regulator-name = "vdd_arm"; regulator-min-microvolt = <750000>; regulator-max-microvolt = <1350000>; regulator-always-on; From 58b3f26fd7241a8b8bdd93ab30586298075a2fbf Mon Sep 17 00:00:00 2001 From: Jagan Teki Date: Wed, 14 Feb 2018 21:26:16 +0530 Subject: [PATCH 11/17] ARM: dts: rockchip: rk3288-vyasa: Use vmmc-supply from PMIC rk808, SWITCH_REG1 has configured for sdmmc regulator as vcc_sd, so use the same by renaming vcc33_sd to vcc_sd(as per schematic) and drop explicit regulator definition from root. Signed-off-by: Jagan Teki Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- arch/arm/dts/rk3288-vyasa.dts | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/arch/arm/dts/rk3288-vyasa.dts b/arch/arm/dts/rk3288-vyasa.dts index 6a74eb405f..aff3cd4b18 100644 --- a/arch/arm/dts/rk3288-vyasa.dts +++ b/arch/arm/dts/rk3288-vyasa.dts @@ -56,18 +56,6 @@ device_type = "memory"; }; - vcc_sd: sdmmc-regulator { - compatible = "regulator-fixed"; - gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>; - pinctrl-names = "default"; - pinctrl-0 = <&sdmmc_pwr>; - regulator-name = "vcc_sd"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - startup-delay-us = <100000>; - vin-supply = <&vcc_io>; - }; - vcc_sys: vsys-regulator { compatible = "regulator-fixed"; regulator-name = "vcc_sys"; @@ -260,8 +248,8 @@ }; }; - vcc33_sd: SWITCH_REG1 { - regulator-name = "vcc33_sd"; + vcc_sd: SWITCH_REG1 { + regulator-name = "vcc_sd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; @@ -332,10 +320,4 @@ rockchip,pins = ; }; }; - - sdmmc { - sdmmc_pwr: sdmmc-pwr { - rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; }; From ad6c965529e5f0e4b884f2da246f347ead514695 Mon Sep 17 00:00:00 2001 From: Jagan Teki Date: Wed, 14 Feb 2018 21:26:17 +0530 Subject: [PATCH 12/17] ARM: dts: rockchip: Add regulators for rk3288-vyasa Add supporting regulators for rk3288-vyasa board, dc12_vbat is parent regulatorand followed regulators as are child regulators. regulator naming conversion followed as per schematic for better readability and easy for identification. Signed-off-by: Jagan Teki Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- arch/arm/dts/rk3288-vyasa.dts | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/arch/arm/dts/rk3288-vyasa.dts b/arch/arm/dts/rk3288-vyasa.dts index aff3cd4b18..f56e10cbad 100644 --- a/arch/arm/dts/rk3288-vyasa.dts +++ b/arch/arm/dts/rk3288-vyasa.dts @@ -56,13 +56,53 @@ device_type = "memory"; }; + dc12_vbat: dc12-vbat { + compatible = "regulator-fixed"; + regulator-name = "dc12_vbat"; + regulator-min-microvolt = <12000000>; + regulator-max-microvolt = <12000000>; + regulator-always-on; + regulator-boot-on; + }; + + vboot_3v3: vboot-3v3 { + compatible = "regulator-fixed"; + regulator-name = "vboot_3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&dc12_vbat>; + }; + vcc_sys: vsys-regulator { compatible = "regulator-fixed"; regulator-name = "vcc_sys"; + regulator-min-microvolt = <3700000>; + regulator-max-microvolt = <3700000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&dc12_vbat>; + }; + + vboot_5v: vboot-5v { + compatible = "regulator-fixed"; + regulator-name = "vboot_sv"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; + vin-supply = <&dc12_vbat>; + }; + + v3g_3v3: v3g-3v3 { + compatible = "regulator-fixed"; + regulator-name = "v3g_3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&dc12_vbat>; }; }; From 0d3193415d2e6109f15f7f9cbc7bb864c90fe69c Mon Sep 17 00:00:00 2001 From: Jagan Teki Date: Wed, 14 Feb 2018 21:26:18 +0530 Subject: [PATCH 13/17] ARM: dts: rockchip: Add gmac support for rk3288-vyasa board Sync gmac dts node from Linux. Signed-off-by: Jagan Teki Acked-by: Philipp Tomsich Signed-off-by: Jagan Teki Reviewed-by: Philipp Tomsich --- arch/arm/dts/rk3288-vyasa.dts | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/arch/arm/dts/rk3288-vyasa.dts b/arch/arm/dts/rk3288-vyasa.dts index f56e10cbad..47fdd9148b 100644 --- a/arch/arm/dts/rk3288-vyasa.dts +++ b/arch/arm/dts/rk3288-vyasa.dts @@ -104,12 +104,35 @@ regulator-boot-on; vin-supply = <&dc12_vbat>; }; + + ext_gmac: external-gmac-clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <125000000>; + clock-output-names = "ext_gmac"; + }; }; &cpu0 { cpu0-supply = <&vdd_cpu>; }; +&gmac { + assigned-clocks = <&cru SCLK_MAC>; + assigned-clock-parents = <&ext_gmac>; + clock_in_out = "input"; + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>; + phy-supply = <&vcc_lan>; + phy-mode = "rgmii"; + snps,reset-active-low; + snps,reset-delays-us = <0 10000 1000000>; + snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>; + tx_delay = <0x30>; + rx_delay = <0x10>; + status = "okay"; +}; + &gpu { mali-supply = <&vdd_gpu>; status = "okay"; @@ -355,6 +378,24 @@ }; &pinctrl { + pcfg_output_high: pcfg-output-high { + output-high; + }; + + gmac { + phy_int: phy-int { + rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + phy_pmeb: phy-pmeb { + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + phy_rst: phy-rst { + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>; + }; + }; + pmic { pmic_int: pmic-int { rockchip,pins = ; From 7d07b836185a383ea5544c0c9b991244ec38eca5 Mon Sep 17 00:00:00 2001 From: Jagan Teki Date: Wed, 14 Feb 2018 21:26:19 +0530 Subject: [PATCH 14/17] rockchip: rk3288-vyasa: defconfig: Enable gmac support Enable gmac support for rk3288-vyasa board. Signed-off-by: Jagan Teki Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- configs/vyasa-rk3288_defconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configs/vyasa-rk3288_defconfig b/configs/vyasa-rk3288_defconfig index 4c760414d3..24a955a94a 100644 --- a/configs/vyasa-rk3288_defconfig +++ b/configs/vyasa-rk3288_defconfig @@ -45,6 +45,9 @@ CONFIG_LED=y CONFIG_LED_GPIO=y CONFIG_MMC_DW=y CONFIG_MMC_DW_ROCKCHIP=y +CONFIG_DM_ETH=y +CONFIG_ETH_DESIGNWARE=y +CONFIG_GMAC_ROCKCHIP=y CONFIG_PINCTRL=y CONFIG_SPL_PINCTRL=y # CONFIG_SPL_PINCTRL_FULL is not set From fd0d7f93458750040221bc23fcf609bb0bd74eca Mon Sep 17 00:00:00 2001 From: Jagan Teki Date: Wed, 14 Feb 2018 21:26:20 +0530 Subject: [PATCH 15/17] ARM: dts: rockchip: Add usb host for rk3288-vyasa Add usb host support for rk3288-vyasa, board support hub power through phy_pwr_en and usb2 host power through usb2_pwr_en and naming conversion followed as per schematic. Signed-off-by: Jagan Teki Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- arch/arm/dts/rk3288-vyasa.dts | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/arch/arm/dts/rk3288-vyasa.dts b/arch/arm/dts/rk3288-vyasa.dts index 47fdd9148b..fe680e2b73 100644 --- a/arch/arm/dts/rk3288-vyasa.dts +++ b/arch/arm/dts/rk3288-vyasa.dts @@ -105,6 +105,30 @@ vin-supply = <&dc12_vbat>; }; + vsus_5v: vsus-5v { + compatible = "regulator-fixed"; + regulator-name = "vsus_5v"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&vcc_io>; + }; + + vusb2_5v: vusb2-5v { + compatible = "regulator-fixed"; + regulator-name = "vusb2_5v"; + enable-active-high; + gpio = <&gpio8 RK_PB1 GPIO_ACTIVE_HIGH>; /* USB2_PWR_EN */ + pinctrl-names = "default"; + pinctrl-0 = <&usb2_pwr_en>; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&vsus_5v>; + }; + ext_gmac: external-gmac-clock { compatible = "fixed-clock"; #clock-cells = <0>; @@ -357,6 +381,20 @@ status = "okay"; }; +&usbphy { + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host1 { + pinctrl-names = "default"; + pinctrl-0 = <&phy_pwr_en>; + status = "okay"; +}; + &vopb { status = "okay"; }; @@ -401,4 +439,14 @@ rockchip,pins = ; }; }; + + usb_host { + phy_pwr_en: phy-pwr-en { + rockchip,pins = ; + }; + + usb2_pwr_en: usb2-pwr-en { + rockchip,pins = <8 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; }; From 159916f4e880c1a738a595686c36791a605e5657 Mon Sep 17 00:00:00 2001 From: Jagan Teki Date: Wed, 14 Feb 2018 21:26:21 +0530 Subject: [PATCH 16/17] ARM: dts: rockchip: Add usb otg for rk3288-vyasa Add usb otg support for rk3288-vyasa, board support usb1 otg power through otg_vbus_drv and naming conversion followed as per schematic. Signed-off-by: Jagan Teki Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- arch/arm/dts/rk3288-vyasa.dts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/arch/arm/dts/rk3288-vyasa.dts b/arch/arm/dts/rk3288-vyasa.dts index fe680e2b73..70c433fbdd 100644 --- a/arch/arm/dts/rk3288-vyasa.dts +++ b/arch/arm/dts/rk3288-vyasa.dts @@ -115,6 +115,20 @@ vin-supply = <&vcc_io>; }; + vusb1_5v: vusb1-5v { + compatible = "regulator-fixed"; + regulator-name = "vusb1_5v"; + enable-active-high; + gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; /* OTG_VBUS_DRV */ + pinctrl-names = "default"; + pinctrl-0 = <&otg_vbus_drv>; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&vsus_5v>; + }; + vusb2_5v: vusb2-5v { compatible = "regulator-fixed"; regulator-name = "vusb2_5v"; @@ -395,6 +409,10 @@ status = "okay"; }; +&usb_otg { + status = "okay"; +}; + &vopb { status = "okay"; }; @@ -449,4 +467,11 @@ rockchip,pins = <8 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; }; }; + + usb_otg { + otg_vbus_drv: otg-vbus-drv { + rockchip,pins = ; + + }; + }; }; From 1e84e44cfec952006f30c42bbab5d7e170776549 Mon Sep 17 00:00:00 2001 From: Jagan Teki Date: Wed, 14 Feb 2018 21:26:22 +0530 Subject: [PATCH 17/17] rk3288: vyasa: Add eMMC boot support RK3288 Vyasa has eMMC boot support, with JP4 open. Signed-off-by: Jagan Teki Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich --- arch/arm/dts/rk3288-vyasa-u-boot.dtsi | 4 ++++ arch/arm/dts/rk3288-vyasa.dts | 11 +++++++++++ board/amarula/vyasa-rk3288/vyasa-rk3288.c | 7 +++++++ 3 files changed, 22 insertions(+) diff --git a/arch/arm/dts/rk3288-vyasa-u-boot.dtsi b/arch/arm/dts/rk3288-vyasa-u-boot.dtsi index b3a56e94ad..6017ca2ddc 100644 --- a/arch/arm/dts/rk3288-vyasa-u-boot.dtsi +++ b/arch/arm/dts/rk3288-vyasa-u-boot.dtsi @@ -20,6 +20,10 @@ u-boot,dm-pre-reloc; }; +&emmc { + u-boot,dm-pre-reloc; +}; + &uart2 { u-boot,dm-pre-reloc; }; diff --git a/arch/arm/dts/rk3288-vyasa.dts b/arch/arm/dts/rk3288-vyasa.dts index 70c433fbdd..850aa25818 100644 --- a/arch/arm/dts/rk3288-vyasa.dts +++ b/arch/arm/dts/rk3288-vyasa.dts @@ -155,6 +155,17 @@ cpu0-supply = <&vdd_cpu>; }; +&emmc { + bus-width = <8>; + cap-mmc-highspeed; + disable-wp; + non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>; + vmmc-supply = <&vcc_io>; + status = "okay"; +}; + &gmac { assigned-clocks = <&cru SCLK_MAC>; assigned-clock-parents = <&ext_gmac>; diff --git a/board/amarula/vyasa-rk3288/vyasa-rk3288.c b/board/amarula/vyasa-rk3288/vyasa-rk3288.c index 7985671fbd..82f8c4e5b7 100644 --- a/board/amarula/vyasa-rk3288/vyasa-rk3288.c +++ b/board/amarula/vyasa-rk3288/vyasa-rk3288.c @@ -9,6 +9,13 @@ #ifndef CONFIG_TPL_BUILD #include +void board_boot_order(u32 *spl_boot_list) +{ + /* eMMC prior to sdcard. */ + spl_boot_list[0] = BOOT_DEVICE_MMC2; + spl_boot_list[1] = BOOT_DEVICE_MMC1; +} + int spl_start_uboot(void) { /* break into full u-boot on 'c' */