diff --git a/drivers/pmdomain/sunxi/sun55i-pck600.c b/drivers/pmdomain/sunxi/sun55i-pck600.c
index 1d47bbd35ced..8a37d11b65a2 100644
--- a/drivers/pmdomain/sunxi/sun55i-pck600.c
+++ b/drivers/pmdomain/sunxi/sun55i-pck600.c
@@ -41,8 +41,13 @@
 
 #define PPU_REG_SIZE	0x1000
 
+struct sunxi_pck600_pd_desc {
+	const char *name;
+	unsigned int flags;
+};
+
 struct sunxi_pck600_desc {
-	const char * const *pd_names;
+	const struct sunxi_pck600_pd_desc *pd_descs;
 	unsigned int num_domains;
 	u32 logic_power_switch0_delay_offset;
 	u32 logic_power_switch1_delay_offset;
@@ -164,10 +169,12 @@ static int sunxi_pck600_probe(struct platform_device *pdev)
 
 	for (i = 0; i < desc->num_domains; i++) {
 		struct sunxi_pck600_pd *pd = &pck->pds[i];
+		const struct sunxi_pck600_pd_desc *pd_desc = &desc->pd_descs[i];
 
-		pd->genpd.name = desc->pd_names[i];
+		pd->genpd.name = pd_desc->name;
 		pd->genpd.power_off = sunxi_pck600_power_off;
 		pd->genpd.power_on = sunxi_pck600_power_on;
+		pd->genpd.flags = pd_desc->flags;
 		pd->base = base + PPU_REG_SIZE * i;
 
 		sunxi_pck600_pd_setup(pd, desc);
@@ -195,13 +202,14 @@ static int sunxi_pck600_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static const char * const sun55i_a523_pck600_pd_names[] = {
-	"VE", "GPU", "VI", "VO0", "VO1", "DE", "NAND", "PCIE"
+static const struct sunxi_pck600_pd_desc sun55i_a523_pck600_pds[] = {
+	{ "VE", }, { "GPU", }, { "VI", }, { "VO0", }, { "VO1", },
+	{ "DE", }, { "NAND", }, { "PCIE", },
 };
 
 static const struct sunxi_pck600_desc sun55i_a523_pck600_desc = {
-	.pd_names = sun55i_a523_pck600_pd_names,
-	.num_domains = ARRAY_SIZE(sun55i_a523_pck600_pd_names),
+	.pd_descs = sun55i_a523_pck600_pds,
+	.num_domains = ARRAY_SIZE(sun55i_a523_pck600_pds),
 	.logic_power_switch0_delay_offset = 0xc00,
 	.logic_power_switch1_delay_offset = 0xc04,
 	.off2on_delay_offset = 0xc10,
@@ -213,14 +221,15 @@ static const struct sunxi_pck600_desc sun55i_a523_pck600_desc = {
 	.has_rst_clk = true,
 };
 
-static const char * const sun60i_a733_pck600_pd_names[] = {
-	"VI", "DE_SYS", "VE_DEC", "VE_ENC", "NPU",
-	"GPU_TOP", "GPU_CORE", "PCIE", "USB2", "VO", "VO1"
+static const struct sunxi_pck600_pd_desc sun60i_a733_pck600_pds[] = {
+	{ "VI", }, { "DE_SYS", }, { "VE_DEC", }, { "VE_ENC", }, { "NPU", },
+	{ "GPU_TOP", }, { "GPU_CORE", GENPD_FLAG_ALWAYS_ON },
+	{ "PCIE", }, { "USB2", }, { "VO", }, { "VO1", },
 };
 
 static const struct sunxi_pck600_desc sun60i_a733_pck600_desc = {
-	.pd_names = sun60i_a733_pck600_pd_names,
-	.num_domains = ARRAY_SIZE(sun60i_a733_pck600_pd_names),
+	.pd_descs = sun60i_a733_pck600_pds,
+	.num_domains = ARRAY_SIZE(sun60i_a733_pck600_pds),
 	.logic_power_switch0_delay_offset = 0xc00,
 	.logic_power_switch1_delay_offset = 0xc04,
 	.off2on_delay_offset = 0xc10,
