Some clenaup, removed dragonboard820c, adjusted board descriptions, added another OPP for 3288 family,
193 lines
5.4 KiB
Diff
193 lines
5.4 KiB
Diff
diff --git a/arch/arm/dts/rk3328-rock64.dts b/arch/arm/dts/rk3328-rock64.dts
|
|
index d19d609..5c72488 100644
|
|
--- a/arch/arm/dts/rk3328-rock64.dts
|
|
+++ b/arch/arm/dts/rk3328-rock64.dts
|
|
@@ -17,7 +17,7 @@
|
|
};
|
|
|
|
aliases {
|
|
- spi0 = &spi0;
|
|
+ mmc1 = &sdmmc_ext;
|
|
};
|
|
|
|
gmac_clkin: external-gmac-clock {
|
|
@@ -37,7 +37,7 @@
|
|
vcc3v3_sdmmc: sdmmc-pwren {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc3v3";
|
|
- gpio = <&gpio0 30 GPIO_ACTIVE_LOW>;
|
|
+ gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
@@ -75,16 +75,16 @@
|
|
status = "okay";
|
|
};
|
|
|
|
-&sdmmc {
|
|
+&sdmmc_ext {
|
|
u-boot,dm-spl;
|
|
bus-width = <4>;
|
|
cap-mmc-highspeed;
|
|
cap-sd-highspeed;
|
|
- card-detect-delay = <200>;
|
|
+ cd-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
|
|
disable-wp;
|
|
num-slots = <1>;
|
|
pinctrl-names = "default";
|
|
- pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>;
|
|
+ pinctrl-0 = <&sdmmc0ext_clk>, <&sdmmc0ext_cmd>, <&sdmmc0ext_dectn>, <&sdmmc0ext_bus4>;
|
|
status = "okay";
|
|
};
|
|
|
|
@@ -268,42 +268,6 @@
|
|
status = "okay";
|
|
};
|
|
|
|
-&spi0 {
|
|
- u-boot,dm-spl;
|
|
- status = "okay";
|
|
-
|
|
- spiflash: spi-flash@0 {
|
|
- u-boot,dm-spl;
|
|
- #address-cells = <0x1>;
|
|
- #size-cells = <1>;
|
|
- compatible = "spi-flash";
|
|
- reg = <0x0>;
|
|
- spi-max-frequency = <25000000>;
|
|
- status = "okay";
|
|
-
|
|
- partitions {
|
|
- compatible = "fixed-partitions";
|
|
- #address-cells = <1>;
|
|
- #size-cells = <1>;
|
|
-
|
|
- loader@8000 {
|
|
- label = "loader";
|
|
- reg = <0x8000 0x3F0000>;
|
|
- };
|
|
-
|
|
- env@3f8000 {
|
|
- label = "env";
|
|
- reg = <0x3F8000 0x8000>;
|
|
- };
|
|
-
|
|
- vendor@7c0000 {
|
|
- label = "vendor";
|
|
- reg = <0x7C0000 0x40000>;
|
|
- };
|
|
- };
|
|
- };
|
|
-};
|
|
-
|
|
&pinctrl {
|
|
pmic {
|
|
pmic_int_l: pmic-int-l {
|
|
diff --git a/arch/arm/include/asm/arch-rockchip/grf_rk3328.h b/arch/arm/include/asm/arch-rockchip/grf_rk3328.h
|
|
index a396510..260117b 100644
|
|
--- a/arch/arm/include/asm/arch-rockchip/grf_rk3328.h
|
|
+++ b/arch/arm/include/asm/arch-rockchip/grf_rk3328.h
|
|
@@ -361,6 +361,17 @@ enum {
|
|
GPIO2D4_SEL_MASK = 0xff << GPIO2D4_SEL_SHIFT,
|
|
GPIO2D4_EMMC_DATA1234 = 0xaa,
|
|
|
|
+ /* GPIO3AL_IOMUX */
|
|
+ GPIO3A0_SEL_SHIFT = 0,
|
|
+ GPIO3A0_SEL_MASK = 0x71ff << GPIO3A0_SEL_SHIFT,
|
|
+ GPIO3A0_CARD_DATA_CLK_CMD_DETN = 0x36db,
|
|
+
|
|
+ /* GPIO3AH_IOMUX */
|
|
+ GPIO3A5_SEL_SHIFT = 0,
|
|
+ GPIO3A5_SEL_MASK = 0x1ff << GPIO3A5_SEL_SHIFT,
|
|
+ GPIO3A5_CARD_DATA234 = 0xdb,
|
|
+
|
|
+
|
|
/* GPIO3C_IOMUX */
|
|
GPIO3C0_SEL_SHIFT = 0,
|
|
GPIO3C0_SEL_MASK = 0x3fff << GPIO3C0_SEL_SHIFT,
|
|
diff --git a/arch/arm/mach-rockchip/rk3328/rk3328.c b/arch/arm/mach-rockchip/rk3328/rk3328.c
|
|
index f1db5bf..b627083 100644
|
|
--- a/arch/arm/mach-rockchip/rk3328/rk3328.c
|
|
+++ b/arch/arm/mach-rockchip/rk3328/rk3328.c
|
|
@@ -96,11 +96,10 @@ int board_init(void)
|
|
#define GRF_BASE 0xff100000
|
|
struct rk3328_grf_regs * const grf = (void *)GRF_BASE;
|
|
|
|
- /* uart2 select m1, sdcard select m1*/
|
|
+ /* uart2 select m1, no sdcard select, because we use sdmmc_ext */
|
|
rk_clrsetreg(&grf->com_iomux,
|
|
- IOMUX_SEL_UART2_MASK | IOMUX_SEL_SDMMC_MASK,
|
|
- IOMUX_SEL_UART2_M1 << IOMUX_SEL_UART2_SHIFT |
|
|
- IOMUX_SEL_SDMMC_M1 << IOMUX_SEL_SDMMC_SHIFT);
|
|
+ IOMUX_SEL_UART2_MASK,
|
|
+ IOMUX_SEL_UART2_M1 << IOMUX_SEL_UART2_SHIFT);
|
|
|
|
ret = regulators_enable_boot_on(false);
|
|
if (ret)
|
|
diff --git a/drivers/clk/rockchip/clk_rk3328.c b/drivers/clk/rockchip/clk_rk3328.c
|
|
index 8438047..9af8262 100644
|
|
--- a/drivers/clk/rockchip/clk_rk3328.c
|
|
+++ b/drivers/clk/rockchip/clk_rk3328.c
|
|
@@ -401,7 +401,7 @@ static ulong rk3328_mmc_get_clk(struct rk3328_cru *cru, uint clk_id)
|
|
switch (clk_id) {
|
|
case HCLK_SDMMC:
|
|
case SCLK_SDMMC:
|
|
- con_id = 30;
|
|
+ con_id = 43;
|
|
break;
|
|
case HCLK_EMMC:
|
|
case SCLK_EMMC:
|
|
@@ -429,7 +429,7 @@ static ulong rk3328_mmc_set_clk(struct rk3328_cru *cru,
|
|
switch (clk_id) {
|
|
case HCLK_SDMMC:
|
|
case SCLK_SDMMC:
|
|
- con_id = 30;
|
|
+ con_id = 43;
|
|
break;
|
|
case HCLK_EMMC:
|
|
case SCLK_EMMC:
|
|
diff --git a/drivers/pinctrl/rockchip/pinctrl_rk3328.c b/drivers/pinctrl/rockchip/pinctrl_rk3328.c
|
|
index c928134..01ed39d 100644
|
|
--- a/drivers/pinctrl/rockchip/pinctrl_rk3328.c
|
|
+++ b/drivers/pinctrl/rockchip/pinctrl_rk3328.c
|
|
@@ -180,19 +180,17 @@ static void pinctrl_rk3328_sdmmc_config(struct rk3328_grf_regs *grf,
|
|
<< GPIO3C0_SEL_SHIFT);
|
|
break;
|
|
case PERIPH_ID_SDCARD:
|
|
- /* SDMMC_PWREN use GPIO and init as regulator-fiexed */
|
|
- if (com_iomux & IOMUX_SEL_SDMMC_MASK)
|
|
- rk_clrsetreg(&grf->gpio0d_iomux,
|
|
- GPIO0D6_SEL_MASK,
|
|
- GPIO0D6_GPIO << GPIO0D6_SEL_SHIFT);
|
|
- else
|
|
- rk_clrsetreg(&grf->gpio2a_iomux,
|
|
- GPIO2A7_SEL_MASK,
|
|
- GPIO2A7_GPIO << GPIO2A7_SEL_SHIFT);
|
|
- rk_clrsetreg(&grf->gpio1a_iomux,
|
|
- GPIO1A0_SEL_MASK,
|
|
- GPIO1A0_CARD_DATA_CLK_CMD_DETN
|
|
- << GPIO1A0_SEL_SHIFT);
|
|
+ /* SDMMC_PWREN use GPIO and init as regulator-fixed */
|
|
+ /* SDMMC0EXT hardcoded */
|
|
+ rk_clrsetreg(&grf->gpio2a_iomux,
|
|
+ GPIO2A7_SEL_MASK,
|
|
+ GPIO2A7_GPIO << GPIO2A7_SEL_SHIFT);
|
|
+ rk_clrsetreg(&grf->gpio3al_iomux,
|
|
+ GPIO3A0_SEL_MASK,
|
|
+ GPIO3A0_CARD_DATA_CLK_CMD_DETN << GPIO3A0_SEL_SHIFT);
|
|
+ rk_clrsetreg(&grf->gpio3ah_iomux,
|
|
+ GPIO3A5_SEL_MASK,
|
|
+ GPIO3A5_CARD_DATA234 << GPIO3A5_SEL_SHIFT);
|
|
break;
|
|
default:
|
|
debug("mmc id = %d iomux error!\n", mmc_id);
|
|
@@ -425,7 +423,7 @@ static int rk3328_pinctrl_get_periph_id(struct udevice *dev,
|
|
return PERIPH_ID_I2C2;
|
|
case 39:
|
|
return PERIPH_ID_I2C3;
|
|
- case 12:
|
|
+ case 4:
|
|
return PERIPH_ID_SDCARD;
|
|
case 14:
|
|
return PERIPH_ID_EMMC;
|