power/avs: rockchip-io-domain: rv1126 support to control vccio1

Change-Id: I000a2c7c6e3747aebb6e4b3dd32cb02821c53f15
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
This commit is contained in:
Jianqun Xu
2020-04-21 10:14:44 +08:00
committed by Tao Huang
parent df1e4b538a
commit df8465ab9d

View File

@@ -43,6 +43,10 @@
#define PX30_IO_VSEL_VCCIO6_SRC BIT(0)
#define PX30_IO_VSEL_VCCIO6_SUPPLY_NUM 1
#define RV1126_PMUGRF_IO_VSEL 0x140
#define RV1126_PMUGRF_IO_VSEL_VCCIO1_SRC BIT(0)
#define RV1126_PMUGRF_IO_VSEL_VCCIO1_SUPPLY_NUM 1
#define RK3288_SOC_CON2 0x24c
#define RK3288_SOC_CON2_FLASH0 BIT(7)
#define RK3288_SOC_FLASH_SUPPLY_NUM 2
@@ -178,6 +182,26 @@ static void px30_iodomain_init(struct rockchip_iodomain *iod)
dev_warn(iod->dev, "couldn't update vccio0 ctrl\n");
}
static void rv1126_pmu_iodomain_init(struct rockchip_iodomain *iod)
{
int ret;
u32 val;
/* if no pmu io supply we should leave things alone */
if (!iod->supplies[RV1126_PMUGRF_IO_VSEL_VCCIO1_SUPPLY_NUM].reg)
return;
/*
* set pmu io iodomain to also use this framework
* instead of a special gpio.
*/
val = RV1126_PMUGRF_IO_VSEL_VCCIO1_SRC |
(RV1126_PMUGRF_IO_VSEL_VCCIO1_SRC << 16);
ret = regmap_write(iod->grf, RV1126_PMUGRF_IO_VSEL, val);
if (ret < 0)
dev_warn(iod->dev, "couldn't update pmu io iodomain ctrl\n");
}
static void rk3288_iodomain_init(struct rockchip_iodomain *iod)
{
int ret;
@@ -489,6 +513,7 @@ static const struct rockchip_iodomain_soc_data soc_data_rv1126_pmu = {
"pmuio0",
"pmuio1",
},
.init = rv1126_pmu_iodomain_init,
};
static const struct of_device_id rockchip_iodomain_match[] = {