|
@@ -43,6 +43,10 @@
|
|
|
#define RK3288_SOC_CON2_FLASH0 BIT(7)
|
|
|
#define RK3288_SOC_FLASH_SUPPLY_NUM 2
|
|
|
|
|
|
+#define RK3328_SOC_CON4 0x410
|
|
|
+#define RK3328_SOC_CON4_VCCIO2 BIT(7)
|
|
|
+#define RK3328_SOC_VCCIO2_SUPPLY_NUM 1
|
|
|
+
|
|
|
#define RK3368_SOC_CON15 0x43c
|
|
|
#define RK3368_SOC_CON15_FLASH0 BIT(14)
|
|
|
#define RK3368_SOC_FLASH_SUPPLY_NUM 2
|
|
@@ -166,6 +170,25 @@ static void rk3288_iodomain_init(struct rockchip_iodomain *iod)
|
|
|
dev_warn(iod->dev, "couldn't update flash0 ctrl\n");
|
|
|
}
|
|
|
|
|
|
+static void rk3328_iodomain_init(struct rockchip_iodomain *iod)
|
|
|
+{
|
|
|
+ int ret;
|
|
|
+ u32 val;
|
|
|
+
|
|
|
+ /* if no vccio2 supply we should leave things alone */
|
|
|
+ if (!iod->supplies[RK3328_SOC_VCCIO2_SUPPLY_NUM].reg)
|
|
|
+ return;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * set vccio2 iodomain to also use this framework
|
|
|
+ * instead of a special gpio.
|
|
|
+ */
|
|
|
+ val = RK3328_SOC_CON4_VCCIO2 | (RK3328_SOC_CON4_VCCIO2 << 16);
|
|
|
+ ret = regmap_write(iod->grf, RK3328_SOC_CON4, val);
|
|
|
+ if (ret < 0)
|
|
|
+ dev_warn(iod->dev, "couldn't update vccio2 vsel ctrl\n");
|
|
|
+}
|
|
|
+
|
|
|
static void rk3368_iodomain_init(struct rockchip_iodomain *iod)
|
|
|
{
|
|
|
int ret;
|
|
@@ -247,6 +270,20 @@ static const struct rockchip_iodomain_soc_data soc_data_rk3288 = {
|
|
|
.init = rk3288_iodomain_init,
|
|
|
};
|
|
|
|
|
|
+static const struct rockchip_iodomain_soc_data soc_data_rk3328 = {
|
|
|
+ .grf_offset = 0x410,
|
|
|
+ .supply_names = {
|
|
|
+ "vccio1",
|
|
|
+ "vccio2",
|
|
|
+ "vccio3",
|
|
|
+ "vccio4",
|
|
|
+ "vccio5",
|
|
|
+ "vccio6",
|
|
|
+ "pmuio",
|
|
|
+ },
|
|
|
+ .init = rk3328_iodomain_init,
|
|
|
+};
|
|
|
+
|
|
|
static const struct rockchip_iodomain_soc_data soc_data_rk3368 = {
|
|
|
.grf_offset = 0x900,
|
|
|
.supply_names = {
|
|
@@ -311,6 +348,10 @@ static const struct of_device_id rockchip_iodomain_match[] = {
|
|
|
.compatible = "rockchip,rk3288-io-voltage-domain",
|
|
|
.data = (void *)&soc_data_rk3288
|
|
|
},
|
|
|
+ {
|
|
|
+ .compatible = "rockchip,rk3328-io-voltage-domain",
|
|
|
+ .data = (void *)&soc_data_rk3328
|
|
|
+ },
|
|
|
{
|
|
|
.compatible = "rockchip,rk3368-io-voltage-domain",
|
|
|
.data = (void *)&soc_data_rk3368
|