diff mbox series

[v7,06/11] clk: Ingenic: Clean up and reformat the code.

Message ID 1627119286-125821-7-git-send-email-zhouyanjie@wanyeetech.com (mailing list archive)
State Superseded, archived
Headers show
Series Add new clocks and fix bugs for Ingenic SoCs. | expand

Commit Message

Zhou Yanjie July 24, 2021, 9:34 a.m. UTC
1.When the clock does not have "CGU_CLK_MUX", the 2/3/4 bits in
  parents do not need to be filled with -1. When the clock have
  a "CGU_CLK_MUX" has only one bit, the 3/4 bits of parents do
  not need to be filled with -1. Clean up these unnecessary -1
  from all the xxxx-cgu.c files.
2.Reformat code, add missing blank lines, remove unnecessary
  commas and tabs, and align code.

Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
---

Notes:
    v1->v2:
    Remove unnecessary -1 and commas.
    
    v2->v3:
    No change.
    
    v3->v4:
    1.The -1 used for placeholders on the unused bits of the
      parents in the custom clock should not be removed.
    2.Move "JZ4780_CLK_CORE1" from the "Gate-only clocks"
      class to the "Custom (SoC-specific)" class, because
      it belongs to the custom clock.
    
    v4->v5:
    No change.
    
    v5->v6:
    No change.
    
    v6->v7:
    No change.

 drivers/clk/ingenic/jz4725b-cgu.c |  49 ++++++++-------
 drivers/clk/ingenic/jz4740-cgu.c  |  49 ++++++++-------
 drivers/clk/ingenic/jz4760-cgu.c  | 106 ++++++++++++++++++++-----------
 drivers/clk/ingenic/jz4770-cgu.c  |  83 ++++++++++++------------
 drivers/clk/ingenic/jz4780-cgu.c  | 128 +++++++++++++++++++-------------------
 drivers/clk/ingenic/x1000-cgu.c   | 117 +++++++++++++++++-----------------
 drivers/clk/ingenic/x1830-cgu.c   | 113 ++++++++++++++++-----------------
 7 files changed, 343 insertions(+), 302 deletions(-)

Comments

Paul Cercueil Aug. 19, 2021, 9:46 a.m. UTC | #1
Hi Zhou,

Le sam., juil. 24 2021 at 17:34:41 +0800, 周琰杰 (Zhou Yanjie) 
<zhouyanjie@wanyeetech.com> a écrit :
> 1.When the clock does not have "CGU_CLK_MUX", the 2/3/4 bits in
>   parents do not need to be filled with -1. When the clock have
>   a "CGU_CLK_MUX" has only one bit, the 3/4 bits of parents do
>   not need to be filled with -1. Clean up these unnecessary -1
>   from all the xxxx-cgu.c files.
> 2.Reformat code, add missing blank lines, remove unnecessary
>   commas and tabs, and align code.
> 
> Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
> ---
> 
> Notes:
>     v1->v2:
>     Remove unnecessary -1 and commas.
> 
>     v2->v3:
>     No change.
> 
>     v3->v4:
>     1.The -1 used for placeholders on the unused bits of the
>       parents in the custom clock should not be removed.
>     2.Move "JZ4780_CLK_CORE1" from the "Gate-only clocks"
>       class to the "Custom (SoC-specific)" class, because
>       it belongs to the custom clock.
> 
>     v4->v5:
>     No change.
> 
>     v5->v6:
>     No change.
> 
>     v6->v7:
>     No change.
> 
>  drivers/clk/ingenic/jz4725b-cgu.c |  49 ++++++++-------
>  drivers/clk/ingenic/jz4740-cgu.c  |  49 ++++++++-------
>  drivers/clk/ingenic/jz4760-cgu.c  | 106 
> ++++++++++++++++++++-----------
>  drivers/clk/ingenic/jz4770-cgu.c  |  83 ++++++++++++------------
>  drivers/clk/ingenic/jz4780-cgu.c  | 128 
> +++++++++++++++++++-------------------
>  drivers/clk/ingenic/x1000-cgu.c   | 117 
> +++++++++++++++++-----------------
>  drivers/clk/ingenic/x1830-cgu.c   | 113 
> ++++++++++++++++-----------------
>  7 files changed, 343 insertions(+), 302 deletions(-)
> 
> diff --git a/drivers/clk/ingenic/jz4725b-cgu.c 
> b/drivers/clk/ingenic/jz4725b-cgu.c
> index 5154b0c..77d6979 100644
> --- a/drivers/clk/ingenic/jz4725b-cgu.c
> +++ b/drivers/clk/ingenic/jz4725b-cgu.c
> @@ -17,7 +17,7 @@
> 
>  /* CGU register offsets */
>  #define CGU_REG_CPCCR		0x00
> -#define CGU_REG_LCR		0x04
> +#define CGU_REG_LCR			0x04
>  #define CGU_REG_CPPCR		0x10
>  #define CGU_REG_CLKGR		0x20
>  #define CGU_REG_OPCR		0x24
> @@ -28,7 +28,7 @@
>  #define CGU_REG_CIMCDR		0x78
> 
>  /* bits within the LCR register */
> -#define LCR_SLEEP		BIT(0)
> +#define LCR_SLEEP			BIT(0)
> 
>  static struct ingenic_cgu *cgu;
> 
> @@ -78,7 +78,7 @@ static const struct ingenic_cgu_clk_info 
> jz4725b_cgu_clocks[] = {
> 
>  	[JZ4725B_CLK_PLL_HALF] = {
>  		"pll half", CGU_CLK_DIV,
> -		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_PLL },
>  		.div = {
>  			CGU_REG_CPCCR, 21, 1, 1, -1, -1, -1, 0,
>  			jz4725b_cgu_pll_half_div_table,
> @@ -87,7 +87,7 @@ static const struct ingenic_cgu_clk_info 
> jz4725b_cgu_clocks[] = {
> 
>  	[JZ4725B_CLK_CCLK] = {
>  		"cclk", CGU_CLK_DIV,
> -		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_PLL },
>  		.div = {
>  			CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
>  			jz4725b_cgu_cpccr_div_table,
> @@ -96,7 +96,7 @@ static const struct ingenic_cgu_clk_info 
> jz4725b_cgu_clocks[] = {
> 
>  	[JZ4725B_CLK_HCLK] = {
>  		"hclk", CGU_CLK_DIV,
> -		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_PLL },
>  		.div = {
>  			CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
>  			jz4725b_cgu_cpccr_div_table,
> @@ -105,7 +105,7 @@ static const struct ingenic_cgu_clk_info 
> jz4725b_cgu_clocks[] = {
> 
>  	[JZ4725B_CLK_PCLK] = {
>  		"pclk", CGU_CLK_DIV,
> -		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_PLL },
>  		.div = {
>  			CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
>  			jz4725b_cgu_cpccr_div_table,
> @@ -114,7 +114,7 @@ static const struct ingenic_cgu_clk_info 
> jz4725b_cgu_clocks[] = {
> 
>  	[JZ4725B_CLK_MCLK] = {
>  		"mclk", CGU_CLK_DIV,
> -		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_PLL },
>  		.div = {
>  			CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
>  			jz4725b_cgu_cpccr_div_table,
> @@ -123,7 +123,7 @@ static const struct ingenic_cgu_clk_info 
> jz4725b_cgu_clocks[] = {
> 
>  	[JZ4725B_CLK_IPU] = {
>  		"ipu", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_PLL },
>  		.div = {
>  			CGU_REG_CPCCR, 16, 1, 4, 22, -1, -1, 0,
>  			jz4725b_cgu_cpccr_div_table,
> @@ -133,14 +133,14 @@ static const struct ingenic_cgu_clk_info 
> jz4725b_cgu_clocks[] = {
> 
>  	[JZ4725B_CLK_LCD] = {
>  		"lcd", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_PLL_HALF, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_PLL_HALF },
>  		.div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR, 9 },
>  	},
> 
>  	[JZ4725B_CLK_I2S] = {
>  		"i2s", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF, -1, -1 },
> +		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF },
>  		.mux = { CGU_REG_CPCCR, 31, 1 },
>  		.div = { CGU_REG_I2SCDR, 0, 1, 9, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR, 6 },
> @@ -148,7 +148,7 @@ static const struct ingenic_cgu_clk_info 
> jz4725b_cgu_clocks[] = {
> 
>  	[JZ4725B_CLK_SPI] = {
>  		"spi", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL, -1, -1 },
> +		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL },
>  		.mux = { CGU_REG_SSICDR, 31, 1 },
>  		.div = { CGU_REG_SSICDR, 0, 1, 4, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR, 4 },
> @@ -156,13 +156,13 @@ static const struct ingenic_cgu_clk_info 
> jz4725b_cgu_clocks[] = {
> 
>  	[JZ4725B_CLK_MMC_MUX] = {
>  		"mmc_mux", CGU_CLK_DIV,
> -		.parents = { JZ4725B_CLK_PLL_HALF, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_PLL_HALF },
>  		.div = { CGU_REG_MSCCDR, 0, 1, 5, -1, -1, -1 },
>  	},
> 
>  	[JZ4725B_CLK_UDC] = {
>  		"udc", CGU_CLK_MUX | CGU_CLK_DIV,
> -		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF, -1, -1 },
> +		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF },
>  		.mux = { CGU_REG_CPCCR, 29, 1 },
>  		.div = { CGU_REG_CPCCR, 23, 1, 6, -1, -1, -1 },
>  	},
> @@ -171,55 +171,55 @@ static const struct ingenic_cgu_clk_info 
> jz4725b_cgu_clocks[] = {
> 
>  	[JZ4725B_CLK_UART] = {
>  		"uart", CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR, 0 },
>  	},
> 
>  	[JZ4725B_CLK_DMA] = {
>  		"dma", CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_PCLK, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR, 12 },
>  	},
> 
>  	[JZ4725B_CLK_ADC] = {
>  		"adc", CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR, 7 },
>  	},
> 
>  	[JZ4725B_CLK_I2C] = {
>  		"i2c", CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR, 3 },
>  	},
> 
>  	[JZ4725B_CLK_AIC] = {
>  		"aic", CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR, 5 },
>  	},
> 
>  	[JZ4725B_CLK_MMC0] = {
>  		"mmc0", CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_MMC_MUX, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_MMC_MUX },
>  		.gate = { CGU_REG_CLKGR, 6 },
>  	},
> 
>  	[JZ4725B_CLK_MMC1] = {
>  		"mmc1", CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_MMC_MUX, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_MMC_MUX },
>  		.gate = { CGU_REG_CLKGR, 16 },
>  	},
> 
>  	[JZ4725B_CLK_BCH] = {
>  		"bch", CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_MCLK/* not sure */, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_MCLK/* not sure */ },
>  		.gate = { CGU_REG_CLKGR, 11 },
>  	},
> 
>  	[JZ4725B_CLK_TCU] = {
>  		"tcu", CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_EXT/* not sure */, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_EXT/* not sure */ },
>  		.gate = { CGU_REG_CLKGR, 1 },
>  	},
> 
> @@ -233,13 +233,13 @@ static const struct ingenic_cgu_clk_info 
> jz4725b_cgu_clocks[] = {
> 
>  	[JZ4725B_CLK_RTC] = {
>  		"rtc", CGU_CLK_MUX,
> -		.parents = { JZ4725B_CLK_EXT512, JZ4725B_CLK_OSC32K, -1, -1 },
> +		.parents = { JZ4725B_CLK_EXT512, JZ4725B_CLK_OSC32K },
>  		.mux = { CGU_REG_OPCR, 2, 1},
>  	},
> 
>  	[JZ4725B_CLK_UDC_PHY] = {
>  		"udc_phy", CGU_CLK_GATE,
> -		.parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
> +		.parents = { JZ4725B_CLK_EXT },
>  		.gate = { CGU_REG_OPCR, 6, true },
>  	},
>  };
> @@ -261,4 +261,5 @@ static void __init jz4725b_cgu_init(struct 
> device_node *np)
> 
>  	ingenic_cgu_register_syscore_ops(cgu);
>  }
> +
>  CLK_OF_DECLARE_DRIVER(jz4725b_cgu, "ingenic,jz4725b-cgu", 
> jz4725b_cgu_init);
> diff --git a/drivers/clk/ingenic/jz4740-cgu.c 
> b/drivers/clk/ingenic/jz4740-cgu.c
> index cd878f0..4ec7699 100644
> --- a/drivers/clk/ingenic/jz4740-cgu.c
> +++ b/drivers/clk/ingenic/jz4740-cgu.c
> @@ -18,10 +18,10 @@
> 
>  /* CGU register offsets */
>  #define CGU_REG_CPCCR		0x00
> -#define CGU_REG_LCR		0x04
> +#define CGU_REG_LCR			0x04
>  #define CGU_REG_CPPCR		0x10
>  #define CGU_REG_CLKGR		0x20
> -#define CGU_REG_SCR		0x24
> +#define CGU_REG_SCR			0x24
>  #define CGU_REG_I2SCDR		0x60
>  #define CGU_REG_LPCDR		0x64
>  #define CGU_REG_MSCCDR		0x68
> @@ -40,10 +40,10 @@
>  #define PLLCTL_ENABLE		(1 << 8)
> 
>  /* bits within the LCR register */
> -#define LCR_SLEEP		(1 << 0)
> +#define LCR_SLEEP			(1 << 0)
> 
>  /* bits within the CLKGR register */
> -#define CLKGR_UDC		(1 << 11)
> +#define CLKGR_UDC			(1 << 11)
> 
>  static struct ingenic_cgu *cgu;
> 
> @@ -93,7 +93,7 @@ static const struct ingenic_cgu_clk_info 
> jz4740_cgu_clocks[] = {
> 
>  	[JZ4740_CLK_PLL_HALF] = {
>  		"pll half", CGU_CLK_DIV,
> -		.parents = { JZ4740_CLK_PLL, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_PLL },
>  		.div = {
>  			CGU_REG_CPCCR, 21, 1, 1, -1, -1, -1, 0,
>  			jz4740_cgu_pll_half_div_table,
> @@ -102,7 +102,7 @@ static const struct ingenic_cgu_clk_info 
> jz4740_cgu_clocks[] = {
> 
>  	[JZ4740_CLK_CCLK] = {
>  		"cclk", CGU_CLK_DIV,
> -		.parents = { JZ4740_CLK_PLL, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_PLL },
>  		.div = {
>  			CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
>  			jz4740_cgu_cpccr_div_table,
> @@ -111,7 +111,7 @@ static const struct ingenic_cgu_clk_info 
> jz4740_cgu_clocks[] = {
> 
>  	[JZ4740_CLK_HCLK] = {
>  		"hclk", CGU_CLK_DIV,
> -		.parents = { JZ4740_CLK_PLL, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_PLL },
>  		.div = {
>  			CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
>  			jz4740_cgu_cpccr_div_table,
> @@ -120,7 +120,7 @@ static const struct ingenic_cgu_clk_info 
> jz4740_cgu_clocks[] = {
> 
>  	[JZ4740_CLK_PCLK] = {
>  		"pclk", CGU_CLK_DIV,
> -		.parents = { JZ4740_CLK_PLL, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_PLL },
>  		.div = {
>  			CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
>  			jz4740_cgu_cpccr_div_table,
> @@ -129,7 +129,7 @@ static const struct ingenic_cgu_clk_info 
> jz4740_cgu_clocks[] = {
> 
>  	[JZ4740_CLK_MCLK] = {
>  		"mclk", CGU_CLK_DIV,
> -		.parents = { JZ4740_CLK_PLL, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_PLL },
>  		.div = {
>  			CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
>  			jz4740_cgu_cpccr_div_table,
> @@ -138,7 +138,7 @@ static const struct ingenic_cgu_clk_info 
> jz4740_cgu_clocks[] = {
> 
>  	[JZ4740_CLK_LCD] = {
>  		"lcd", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_PLL_HALF },
>  		.div = {
>  			CGU_REG_CPCCR, 16, 1, 5, 22, -1, -1, 0,
>  			jz4740_cgu_cpccr_div_table,
> @@ -148,13 +148,13 @@ static const struct ingenic_cgu_clk_info 
> jz4740_cgu_clocks[] = {
> 
>  	[JZ4740_CLK_LCD_PCLK] = {
>  		"lcd_pclk", CGU_CLK_DIV,
> -		.parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_PLL_HALF },
>  		.div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
>  	},
> 
>  	[JZ4740_CLK_I2S] = {
>  		"i2s", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF, -1, -1 },
> +		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF },
>  		.mux = { CGU_REG_CPCCR, 31, 1 },
>  		.div = { CGU_REG_I2SCDR, 0, 1, 9, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR, 6 },
> @@ -162,7 +162,7 @@ static const struct ingenic_cgu_clk_info 
> jz4740_cgu_clocks[] = {
> 
>  	[JZ4740_CLK_SPI] = {
>  		"spi", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL, -1, -1 },
> +		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL },
>  		.mux = { CGU_REG_SSICDR, 31, 1 },
>  		.div = { CGU_REG_SSICDR, 0, 1, 4, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR, 4 },
> @@ -170,21 +170,21 @@ static const struct ingenic_cgu_clk_info 
> jz4740_cgu_clocks[] = {
> 
>  	[JZ4740_CLK_MMC] = {
>  		"mmc", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_PLL_HALF },
>  		.div = { CGU_REG_MSCCDR, 0, 1, 5, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR, 7 },
>  	},
> 
>  	[JZ4740_CLK_UHC] = {
>  		"uhc", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_PLL_HALF },
>  		.div = { CGU_REG_UHCCDR, 0, 1, 4, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR, 14 },
>  	},
> 
>  	[JZ4740_CLK_UDC] = {
>  		"udc", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF, -1, -1 },
> +		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF },
>  		.mux = { CGU_REG_CPCCR, 29, 1 },
>  		.div = { CGU_REG_CPCCR, 23, 1, 6, -1, -1, -1 },
>  		.gate = { CGU_REG_SCR, 6, true },
> @@ -194,49 +194,49 @@ static const struct ingenic_cgu_clk_info 
> jz4740_cgu_clocks[] = {
> 
>  	[JZ4740_CLK_UART0] = {
>  		"uart0", CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR, 0 },
>  	},
> 
>  	[JZ4740_CLK_UART1] = {
>  		"uart1", CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR, 15 },
>  	},
> 
>  	[JZ4740_CLK_DMA] = {
>  		"dma", CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_PCLK, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR, 12 },
>  	},
> 
>  	[JZ4740_CLK_IPU] = {
>  		"ipu", CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_PCLK, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR, 13 },
>  	},
> 
>  	[JZ4740_CLK_ADC] = {
>  		"adc", CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR, 8 },
>  	},
> 
>  	[JZ4740_CLK_I2C] = {
>  		"i2c", CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR, 3 },
>  	},
> 
>  	[JZ4740_CLK_AIC] = {
>  		"aic", CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR, 5 },
>  	},
> 
>  	[JZ4740_CLK_TCU] = {
>  		"tcu", CGU_CLK_GATE,
> -		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
> +		.parents = { JZ4740_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR, 1 },
>  	},
>  };
> @@ -258,4 +258,5 @@ static void __init jz4740_cgu_init(struct 
> device_node *np)
> 
>  	ingenic_cgu_register_syscore_ops(cgu);
>  }
> +
>  CLK_OF_DECLARE_DRIVER(jz4740_cgu, "ingenic,jz4740-cgu", 
> jz4740_cgu_init);
> diff --git a/drivers/clk/ingenic/jz4760-cgu.c 
> b/drivers/clk/ingenic/jz4760-cgu.c
> index 1448379..9237429 100644
> --- a/drivers/clk/ingenic/jz4760-cgu.c
> +++ b/drivers/clk/ingenic/jz4760-cgu.c
> @@ -23,7 +23,7 @@
>   * CPM registers offset address definition
>   */
>  #define CGU_REG_CPCCR		0x00
> -#define CGU_REG_LCR		0x04
> +#define CGU_REG_LCR			0x04
>  #define CGU_REG_CPPCR0		0x10
>  #define CGU_REG_CLKGR0		0x20
>  #define CGU_REG_OPCR		0x24
> @@ -93,7 +93,7 @@ static const struct ingenic_cgu_clk_info 
> jz4760_cgu_clocks[] = {
> 
>  	[JZ4760_CLK_PLL0] = {
>  		"pll0", CGU_CLK_PLL,
> -		.parents = { JZ4760_CLK_EXT },
> +		.parents = { JZ4760_CLK_EXT, -1, -1, -1 },

You remove the "-1" in jz4740-cgu.c, but you add them here?

-Paul

>  		.pll = {
>  			.reg = CGU_REG_CPPCR0,
>  			.rate_multiplier = 1,
> @@ -118,7 +118,7 @@ static const struct ingenic_cgu_clk_info 
> jz4760_cgu_clocks[] = {
>  	[JZ4760_CLK_PLL1] = {
>  		/* TODO: PLL1 can depend on PLL0 */
>  		"pll1", CGU_CLK_PLL,
> -		.parents = { JZ4760_CLK_EXT },
> +		.parents = { JZ4760_CLK_EXT, -1, -1, -1 },
>  		.pll = {
>  			.reg = CGU_REG_CPPCR1,
>  			.rate_multiplier = 1,
> @@ -143,47 +143,52 @@ static const struct ingenic_cgu_clk_info 
> jz4760_cgu_clocks[] = {
> 
>  	[JZ4760_CLK_CCLK] = {
>  		"cclk", CGU_CLK_DIV,
> -		.parents = { JZ4760_CLK_PLL0, },
> +		.parents = { JZ4760_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
>  			jz4760_cgu_cpccr_div_table,
>  		},
>  	},
> +
>  	[JZ4760_CLK_HCLK] = {
>  		"hclk", CGU_CLK_DIV,
> -		.parents = { JZ4760_CLK_PLL0, },
> +		.parents = { JZ4760_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
>  			jz4760_cgu_cpccr_div_table,
>  		},
>  	},
> +
>  	[JZ4760_CLK_SCLK] = {
>  		"sclk", CGU_CLK_DIV,
> -		.parents = { JZ4760_CLK_PLL0, },
> +		.parents = { JZ4760_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 24, 1, 4, 22, -1, -1, 0,
>  			jz4760_cgu_cpccr_div_table,
>  		},
>  	},
> +
>  	[JZ4760_CLK_H2CLK] = {
>  		"h2clk", CGU_CLK_DIV,
> -		.parents = { JZ4760_CLK_PLL0, },
> +		.parents = { JZ4760_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 16, 1, 4, 22, -1, -1, 0,
>  			jz4760_cgu_cpccr_div_table,
>  		},
>  	},
> +
>  	[JZ4760_CLK_MCLK] = {
>  		"mclk", CGU_CLK_DIV,
> -		.parents = { JZ4760_CLK_PLL0, },
> +		.parents = { JZ4760_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
>  			jz4760_cgu_cpccr_div_table,
>  		},
>  	},
> +
>  	[JZ4760_CLK_PCLK] = {
>  		"pclk", CGU_CLK_DIV,
> -		.parents = { JZ4760_CLK_PLL0, },
> +		.parents = { JZ4760_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
>  			jz4760_cgu_cpccr_div_table,
> @@ -205,39 +210,44 @@ static const struct ingenic_cgu_clk_info 
> jz4760_cgu_clocks[] = {
> 
>  	[JZ4760_CLK_UHC] = {
>  		"uhc", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
> +		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
>  		.mux = { CGU_REG_UHCCDR, 31, 1 },
>  		.div = { CGU_REG_UHCCDR, 0, 1, 4, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR0, 24 },
>  	},
> +
>  	[JZ4760_CLK_GPU] = {
>  		"gpu", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
> +		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
>  		.mux = { CGU_REG_GPUCDR, 31, 1 },
>  		.div = { CGU_REG_GPUCDR, 0, 1, 3, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR1, 9 },
>  	},
> +
>  	[JZ4760_CLK_LPCLK_DIV] = {
>  		"lpclk_div", CGU_CLK_DIV | CGU_CLK_MUX,
> -		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
> +		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
>  		.mux = { CGU_REG_LPCDR, 29, 1 },
>  		.div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
>  	},
> +
>  	[JZ4760_CLK_TVE] = {
>  		"tve", CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_EXT, },
> +		.parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_EXT },
>  		.mux = { CGU_REG_LPCDR, 31, 1 },
>  		.gate = { CGU_REG_CLKGR0, 27 },
>  	},
> +
>  	[JZ4760_CLK_LPCLK] = {
>  		"lpclk", CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_TVE, },
> +		.parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_TVE },
>  		.mux = { CGU_REG_LPCDR, 30, 1 },
>  		.gate = { CGU_REG_CLKGR0, 28 },
>  	},
> +
>  	[JZ4760_CLK_GPS] = {
>  		"gps", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
> +		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
>  		.mux = { CGU_REG_GPSCDR, 31, 1 },
>  		.div = { CGU_REG_GPSCDR, 0, 1, 4, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR0, 22 },
> @@ -253,6 +263,7 @@ static const struct ingenic_cgu_clk_info 
> jz4760_cgu_clocks[] = {
>  		.div = { CGU_REG_PCMCDR, 0, 1, 9, -1, -1, -1, BIT(0) },
>  		.gate = { CGU_REG_CLKGR1, 8 },
>  	},
> +
>  	[JZ4760_CLK_I2S] = {
>  		"i2s", CGU_CLK_DIV | CGU_CLK_MUX,
>  		.parents = { JZ4760_CLK_EXT, -1,
> @@ -260,6 +271,7 @@ static const struct ingenic_cgu_clk_info 
> jz4760_cgu_clocks[] = {
>  		.mux = { CGU_REG_I2SCDR, 30, 2 },
>  		.div = { CGU_REG_I2SCDR, 0, 1, 9, -1, -1, -1, BIT(0) },
>  	},
> +
>  	[JZ4760_CLK_OTG] = {
>  		"usb", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>  		.parents = { JZ4760_CLK_EXT, -1,
> @@ -272,13 +284,14 @@ static const struct ingenic_cgu_clk_info 
> jz4760_cgu_clocks[] = {
>  	/* Those divided clocks can connect to EXT or PLL0 */
>  	[JZ4760_CLK_MMC_MUX] = {
>  		"mmc_mux", CGU_CLK_MUX | CGU_CLK_DIV,
> -		.parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF, },
> +		.parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF },
>  		.mux = { CGU_REG_MSCCDR, 31, 1 },
>  		.div = { CGU_REG_MSCCDR, 0, 1, 6, -1, -1, -1, BIT(0) },
>  	},
> +
>  	[JZ4760_CLK_SSI_MUX] = {
>  		"ssi_mux", CGU_CLK_DIV | CGU_CLK_MUX,
> -		.parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF, },
> +		.parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF },
>  		.mux = { CGU_REG_SSICDR, 31, 1 },
>  		.div = { CGU_REG_SSICDR, 0, 1, 6, -1, -1, -1, BIT(0) },
>  	},
> @@ -295,94 +308,112 @@ static const struct ingenic_cgu_clk_info 
> jz4760_cgu_clocks[] = {
> 
>  	[JZ4760_CLK_SSI0] = {
>  		"ssi0", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_SSI_MUX, },
> +		.parents = { JZ4760_CLK_SSI_MUX },
>  		.gate = { CGU_REG_CLKGR0, 4 },
>  	},
> +
>  	[JZ4760_CLK_SSI1] = {
>  		"ssi1", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_SSI_MUX, },
> +		.parents = { JZ4760_CLK_SSI_MUX },
>  		.gate = { CGU_REG_CLKGR0, 19 },
>  	},
> +
>  	[JZ4760_CLK_SSI2] = {
>  		"ssi2", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_SSI_MUX, },
> +		.parents = { JZ4760_CLK_SSI_MUX },
>  		.gate = { CGU_REG_CLKGR0, 20 },
>  	},
> +
>  	[JZ4760_CLK_DMA] = {
>  		"dma", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_H2CLK, },
> +		.parents = { JZ4760_CLK_H2CLK },
>  		.gate = { CGU_REG_CLKGR0, 21 },
>  	},
> +
>  	[JZ4760_CLK_I2C0] = {
>  		"i2c0", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_EXT, },
> +		.parents = { JZ4760_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 5 },
>  	},
> +
>  	[JZ4760_CLK_I2C1] = {
>  		"i2c1", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_EXT, },
> +		.parents = { JZ4760_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 6 },
>  	},
> +
>  	[JZ4760_CLK_UART0] = {
>  		"uart0", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_EXT, },
> +		.parents = { JZ4760_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 15 },
>  	},
> +
>  	[JZ4760_CLK_UART1] = {
>  		"uart1", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_EXT, },
> +		.parents = { JZ4760_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 16 },
>  	},
> +
>  	[JZ4760_CLK_UART2] = {
>  		"uart2", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_EXT, },
> +		.parents = { JZ4760_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 17 },
>  	},
> +
>  	[JZ4760_CLK_UART3] = {
>  		"uart3", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_EXT, },
> +		.parents = { JZ4760_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 18 },
>  	},
> +
>  	[JZ4760_CLK_IPU] = {
>  		"ipu", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_HCLK, },
> +		.parents = { JZ4760_CLK_HCLK },
>  		.gate = { CGU_REG_CLKGR0, 29 },
>  	},
> +
>  	[JZ4760_CLK_ADC] = {
>  		"adc", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_EXT, },
> +		.parents = { JZ4760_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 14 },
>  	},
> +
>  	[JZ4760_CLK_AIC] = {
>  		"aic", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_EXT, },
> +		.parents = { JZ4760_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 8 },
>  	},
> +
>  	[JZ4760_CLK_VPU] = {
>  		"vpu", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_HCLK, },
> +		.parents = { JZ4760_CLK_HCLK },
>  		.gate = { CGU_REG_LCR, 30, false, 150 },
>  	},
> +
>  	[JZ4760_CLK_MMC0] = {
>  		"mmc0", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_MMC_MUX, },
> +		.parents = { JZ4760_CLK_MMC_MUX },
>  		.gate = { CGU_REG_CLKGR0, 3 },
>  	},
> +
>  	[JZ4760_CLK_MMC1] = {
>  		"mmc1", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_MMC_MUX, },
> +		.parents = { JZ4760_CLK_MMC_MUX },
>  		.gate = { CGU_REG_CLKGR0, 11 },
>  	},
> +
>  	[JZ4760_CLK_MMC2] = {
>  		"mmc2", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_MMC_MUX, },
> +		.parents = { JZ4760_CLK_MMC_MUX },
>  		.gate = { CGU_REG_CLKGR0, 12 },
>  	},
> +
>  	[JZ4760_CLK_UHC_PHY] = {
>  		"uhc_phy", CGU_CLK_GATE,
> -		.parents = { JZ4760_CLK_UHC, },
> +		.parents = { JZ4760_CLK_UHC },
>  		.gate = { CGU_REG_OPCR, 5 },
>  	},
> +
>  	[JZ4760_CLK_OTG_PHY] = {
>  		"usb_phy", CGU_CLK_GATE,
>  		.parents = { JZ4760_CLK_OTG },
> @@ -395,10 +426,11 @@ static const struct ingenic_cgu_clk_info 
> jz4760_cgu_clocks[] = {
>  		.parents = { JZ4760_CLK_EXT },
>  		.fixdiv = { 512 },
>  	},
> +
>  	[JZ4760_CLK_RTC] = {
>  		"rtc", CGU_CLK_MUX,
> -		.parents = { JZ4760_CLK_EXT512, JZ4760_CLK_OSC32K, },
> -		.mux = { CGU_REG_OPCR, 2, 1},
> +		.parents = { JZ4760_CLK_EXT512, JZ4760_CLK_OSC32K },
> +		.mux = { CGU_REG_OPCR, 2, 1 },
>  	},
>  };
> 
> diff --git a/drivers/clk/ingenic/jz4770-cgu.c 
> b/drivers/clk/ingenic/jz4770-cgu.c
> index 2321742..315caa0 100644
> --- a/drivers/clk/ingenic/jz4770-cgu.c
> +++ b/drivers/clk/ingenic/jz4770-cgu.c
> @@ -19,7 +19,7 @@
>   * CPM registers offset address definition
>   */
>  #define CGU_REG_CPCCR		0x00
> -#define CGU_REG_LCR		0x04
> +#define CGU_REG_LCR			0x04
>  #define CGU_REG_CPPCR0		0x10
>  #define CGU_REG_CLKGR0		0x20
>  #define CGU_REG_OPCR		0x24
> @@ -41,7 +41,7 @@
>  #define CGU_REG_BCHCDR		0xAC
> 
>  /* bits within the OPCR register */
> -#define OPCR_SPENDH		BIT(5)		/* UHC PHY suspend */
> +#define OPCR_SPENDH			BIT(5)		/* UHC PHY suspend */
> 
>  /* bits within the USBPCR1 register */
>  #define USBPCR1_UHC_POWER	BIT(5)		/* UHC PHY power down */
> @@ -55,6 +55,7 @@ static int jz4770_uhc_phy_enable(struct clk_hw *hw)
> 
>  	writel(readl(reg_opcr) & ~OPCR_SPENDH, reg_opcr);
>  	writel(readl(reg_usbpcr1) | USBPCR1_UHC_POWER, reg_usbpcr1);
> +
>  	return 0;
>  }
> 
> @@ -101,7 +102,7 @@ static const struct ingenic_cgu_clk_info 
> jz4770_cgu_clocks[] = {
> 
>  	[JZ4770_CLK_PLL0] = {
>  		"pll0", CGU_CLK_PLL,
> -		.parents = { JZ4770_CLK_EXT },
> +		.parents = { JZ4770_CLK_EXT, -1, -1, -1 },
>  		.pll = {
>  			.reg = CGU_REG_CPPCR0,
>  			.rate_multiplier = 1,
> @@ -125,7 +126,7 @@ static const struct ingenic_cgu_clk_info 
> jz4770_cgu_clocks[] = {
>  	[JZ4770_CLK_PLL1] = {
>  		/* TODO: PLL1 can depend on PLL0 */
>  		"pll1", CGU_CLK_PLL,
> -		.parents = { JZ4770_CLK_EXT },
> +		.parents = { JZ4770_CLK_EXT, -1, -1, -1 },
>  		.pll = {
>  			.reg = CGU_REG_CPPCR1,
>  			.rate_multiplier = 1,
> @@ -149,7 +150,7 @@ static const struct ingenic_cgu_clk_info 
> jz4770_cgu_clocks[] = {
> 
>  	[JZ4770_CLK_CCLK] = {
>  		"cclk", CGU_CLK_DIV,
> -		.parents = { JZ4770_CLK_PLL0, },
> +		.parents = { JZ4770_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
>  			jz4770_cgu_cpccr_div_table,
> @@ -157,7 +158,7 @@ static const struct ingenic_cgu_clk_info 
> jz4770_cgu_clocks[] = {
>  	},
>  	[JZ4770_CLK_H0CLK] = {
>  		"h0clk", CGU_CLK_DIV,
> -		.parents = { JZ4770_CLK_PLL0, },
> +		.parents = { JZ4770_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
>  			jz4770_cgu_cpccr_div_table,
> @@ -165,7 +166,7 @@ static const struct ingenic_cgu_clk_info 
> jz4770_cgu_clocks[] = {
>  	},
>  	[JZ4770_CLK_H1CLK] = {
>  		"h1clk", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_PLL0, },
> +		.parents = { JZ4770_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 24, 1, 4, 22, -1, -1, 0,
>  			jz4770_cgu_cpccr_div_table,
> @@ -174,7 +175,7 @@ static const struct ingenic_cgu_clk_info 
> jz4770_cgu_clocks[] = {
>  	},
>  	[JZ4770_CLK_H2CLK] = {
>  		"h2clk", CGU_CLK_DIV,
> -		.parents = { JZ4770_CLK_PLL0, },
> +		.parents = { JZ4770_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 16, 1, 4, 22, -1, -1, 0,
>  			jz4770_cgu_cpccr_div_table,
> @@ -182,7 +183,7 @@ static const struct ingenic_cgu_clk_info 
> jz4770_cgu_clocks[] = {
>  	},
>  	[JZ4770_CLK_C1CLK] = {
>  		"c1clk", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_PLL0, },
> +		.parents = { JZ4770_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
>  			jz4770_cgu_cpccr_div_table,
> @@ -191,7 +192,7 @@ static const struct ingenic_cgu_clk_info 
> jz4770_cgu_clocks[] = {
>  	},
>  	[JZ4770_CLK_PCLK] = {
>  		"pclk", CGU_CLK_DIV,
> -		.parents = { JZ4770_CLK_PLL0, },
> +		.parents = { JZ4770_CLK_PLL0 },
>  		.div = {
>  			CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
>  			jz4770_cgu_cpccr_div_table,
> @@ -202,63 +203,63 @@ static const struct ingenic_cgu_clk_info 
> jz4770_cgu_clocks[] = {
> 
>  	[JZ4770_CLK_MMC0_MUX] = {
>  		"mmc0_mux", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
> +		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>  		.mux = { CGU_REG_MSC0CDR, 30, 1 },
>  		.div = { CGU_REG_MSC0CDR, 0, 1, 7, -1, -1, 31 },
>  		.gate = { CGU_REG_MSC0CDR, 31 },
>  	},
>  	[JZ4770_CLK_MMC1_MUX] = {
>  		"mmc1_mux", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
> +		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>  		.mux = { CGU_REG_MSC1CDR, 30, 1 },
>  		.div = { CGU_REG_MSC1CDR, 0, 1, 7, -1, -1, 31 },
>  		.gate = { CGU_REG_MSC1CDR, 31 },
>  	},
>  	[JZ4770_CLK_MMC2_MUX] = {
>  		"mmc2_mux", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
> +		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>  		.mux = { CGU_REG_MSC2CDR, 30, 1 },
>  		.div = { CGU_REG_MSC2CDR, 0, 1, 7, -1, -1, 31 },
>  		.gate = { CGU_REG_MSC2CDR, 31 },
>  	},
>  	[JZ4770_CLK_CIM] = {
>  		"cim", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
> +		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>  		.mux = { CGU_REG_CIMCDR, 31, 1 },
>  		.div = { CGU_REG_CIMCDR, 0, 1, 8, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR0, 26 },
>  	},
>  	[JZ4770_CLK_UHC] = {
>  		"uhc", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
> +		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>  		.mux = { CGU_REG_UHCCDR, 29, 1 },
>  		.div = { CGU_REG_UHCCDR, 0, 1, 4, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR0, 24 },
>  	},
>  	[JZ4770_CLK_GPU] = {
>  		"gpu", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, -1 },
> +		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>  		.mux = { CGU_REG_GPUCDR, 31, 1 },
>  		.div = { CGU_REG_GPUCDR, 0, 1, 3, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR1, 9 },
>  	},
>  	[JZ4770_CLK_BCH] = {
>  		"bch", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
> +		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>  		.mux = { CGU_REG_BCHCDR, 31, 1 },
>  		.div = { CGU_REG_BCHCDR, 0, 1, 3, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR0, 1 },
>  	},
>  	[JZ4770_CLK_LPCLK_MUX] = {
>  		"lpclk", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
> +		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>  		.mux = { CGU_REG_LPCDR, 29, 1 },
>  		.div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR0, 28 },
>  	},
>  	[JZ4770_CLK_GPS] = {
>  		"gps", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
> -		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
> +		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>  		.mux = { CGU_REG_GPSCDR, 31, 1 },
>  		.div = { CGU_REG_GPSCDR, 0, 1, 4, -1, -1, -1 },
>  		.gate = { CGU_REG_CLKGR0, 22 },
> @@ -301,107 +302,107 @@ static const struct ingenic_cgu_clk_info 
> jz4770_cgu_clocks[] = {
> 
>  	[JZ4770_CLK_SSI0] = {
>  		"ssi0", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_SSI_MUX, },
> +		.parents = { JZ4770_CLK_SSI_MUX },
>  		.gate = { CGU_REG_CLKGR0, 4 },
>  	},
>  	[JZ4770_CLK_SSI1] = {
>  		"ssi1", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_SSI_MUX, },
> +		.parents = { JZ4770_CLK_SSI_MUX },
>  		.gate = { CGU_REG_CLKGR0, 19 },
>  	},
>  	[JZ4770_CLK_SSI2] = {
>  		"ssi2", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_SSI_MUX, },
> +		.parents = { JZ4770_CLK_SSI_MUX },
>  		.gate = { CGU_REG_CLKGR0, 20 },
>  	},
>  	[JZ4770_CLK_PCM0] = {
>  		"pcm0", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_PCM_MUX, },
> +		.parents = { JZ4770_CLK_PCM_MUX },
>  		.gate = { CGU_REG_CLKGR1, 8 },
>  	},
>  	[JZ4770_CLK_PCM1] = {
>  		"pcm1", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_PCM_MUX, },
> +		.parents = { JZ4770_CLK_PCM_MUX },
>  		.gate = { CGU_REG_CLKGR1, 10 },
>  	},
>  	[JZ4770_CLK_DMA] = {
>  		"dma", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_H2CLK, },
> +		.parents = { JZ4770_CLK_H2CLK },
>  		.gate = { CGU_REG_CLKGR0, 21 },
>  	},
>  	[JZ4770_CLK_I2C0] = {
>  		"i2c0", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_EXT, },
> +		.parents = { JZ4770_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 5 },
>  	},
>  	[JZ4770_CLK_I2C1] = {
>  		"i2c1", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_EXT, },
> +		.parents = { JZ4770_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 6 },
>  	},
>  	[JZ4770_CLK_I2C2] = {
>  		"i2c2", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_EXT, },
> +		.parents = { JZ4770_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR1, 15 },
>  	},
>  	[JZ4770_CLK_UART0] = {
>  		"uart0", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_EXT, },
> +		.parents = { JZ4770_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 15 },
>  	},
>  	[JZ4770_CLK_UART1] = {
>  		"uart1", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_EXT, },
> +		.parents = { JZ4770_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 16 },
>  	},
>  	[JZ4770_CLK_UART2] = {
>  		"uart2", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_EXT, },
> +		.parents = { JZ4770_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 17 },
>  	},
>  	[JZ4770_CLK_UART3] = {
>  		"uart3", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_EXT, },
> +		.parents = { JZ4770_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 18 },
>  	},
>  	[JZ4770_CLK_IPU] = {
>  		"ipu", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_H0CLK, },
> +		.parents = { JZ4770_CLK_H0CLK },
>  		.gate = { CGU_REG_CLKGR0, 29 },
>  	},
>  	[JZ4770_CLK_ADC] = {
>  		"adc", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_EXT, },
> +		.parents = { JZ4770_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 14 },
>  	},
>  	[JZ4770_CLK_AIC] = {
>  		"aic", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_EXT, },
> +		.parents = { JZ4770_CLK_EXT },
>  		.gate = { CGU_REG_CLKGR0, 8 },
>  	},
>  	[JZ4770_CLK_AUX] = {
>  		"aux", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_C1CLK, },
> +		.parents = { JZ4770_CLK_C1CLK },
>  		.gate = { CGU_REG_CLKGR1, 14 },
>  	},
>  	[JZ4770_CLK_VPU] = {
>  		"vpu", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_H1CLK, },
> +		.parents = { JZ4770_CLK_H1CLK },
>  		.gate = { CGU_REG_LCR, 30, false, 150 },
>  	},
>  	[JZ4770_CLK_MMC0] = {
>  		"mmc0", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_MMC0_MUX, },
> +		.parents = { JZ4770_CLK_MMC0_MUX },
>  		.gate = { CGU_REG_CLKGR0, 3 },
>  	},
>  	[JZ4770_CLK_MMC1] = {
>  		"mmc1", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_MMC1_MUX, },
> +		.parents = { JZ4770_CLK_MMC1_MUX },
>  		.gate = { CGU_REG_CLKGR0, 11 },
>  	},
>  	[JZ4770_CLK_MMC2] = {
>  		"mmc2", CGU_CLK_GATE,
> -		.parents = { JZ4770_CLK_MMC2_MUX, },
> +		.parents = { JZ4770_CLK_MMC2_MUX },
>  		.gate = { CGU_REG_CLKGR0, 12 },
>  	},
>  	[JZ4770_CLK_OTG_PHY] = {
> @@ -426,7 +427,7 @@ static const struct ingenic_cgu_clk_info 
> jz4770_cgu_clocks[] = {
> 
>  	[JZ4770_CLK_RTC] = {
>  		"rtc", CGU_CLK_MUX,
> -		.parents = { JZ4770_CLK_EXT512, JZ4770_CLK_OSC32K, },
> +		.parents = { JZ4770_CLK_EXT512, JZ4770_CLK_OSC32K },
>  		.mux = { CGU_REG_OPCR, 2, 1},
>  	},
>  };
> diff --git a/drivers/clk/ingenic/jz4780-cgu.c 
> b/drivers/clk/ingenic/jz4780-cgu.c
> index dcca74e..267deb4 100644
> --- a/drivers/clk/ingenic/jz4780-cgu.c
> +++ b/drivers/clk/ingenic/jz4780-cgu.c
> @@ -178,6 +178,7 @@ static int jz4780_otg_phy_set_rate(struct clk_hw 
> *hw, unsigned long req_rate,
>  	writel(usbpcr1, cgu->base + CGU_REG_USBPCR1);
> 
>  	spin_unlock_irqrestore(&cgu->lock, flags);
> +
>  	return 0;
>  }
> 
> @@ -188,6 +189,7 @@ static int jz4780_otg_phy_enable(struct clk_hw 
> *hw)
> 
>  	writel(readl(reg_opcr) | OPCR_SPENDN0, reg_opcr);
>  	writel(readl(reg_usbpcr) & ~USBPCR_OTG_DISABLE & ~USBPCR_SIDDQ, 
> reg_usbpcr);
> +
>  	return 0;
>  }
> 
> @@ -215,9 +217,9 @@ static const struct clk_ops jz4780_otg_phy_ops = {
>  	.round_rate = jz4780_otg_phy_round_rate,
>  	.set_rate = jz4780_otg_phy_set_rate,
> 
> -	.enable		= jz4780_otg_phy_enable,
> -	.disable	= jz4780_otg_phy_disable,
> -	.is_enabled	= jz4780_otg_phy_is_enabled,
> +	.enable = jz4780_otg_phy_enable,
> +	.disable = jz4780_otg_phy_disable,
> +	.is_enabled = jz4780_otg_phy_is_enabled,
>  };
> 
>  static int jz4780_core1_enable(struct clk_hw *hw)
> @@ -336,11 +338,17 @@ static const struct ingenic_cgu_clk_info 
> jz4780_cgu_clocks[] = {
> 
>  #undef DEF_PLL
> 
> -	/* Custom (SoC-specific) OTG PHY */
> +	/* Custom (SoC-specific) */
> +
> +	[JZ4780_CLK_CORE1] = {
> +		"core1", CGU_CLK_CUSTOM,
> +		.parents = { JZ4780_CLK_CPU, -1, -1, -1 },
> +		.custom = { &jz4780_core1_ops },
> +	},
> 
>  	[JZ4780_CLK_OTGPHY] = {
>  		"otg_phy", CGU_CLK_CUSTOM,
> -		.parents = { -1, -1, JZ4780_CLK_EXCLK, -1 },
> +		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>  		.custom = { &jz4780_otg_phy_ops },
>  	},
> 
> @@ -362,13 +370,13 @@ static const struct ingenic_cgu_clk_info 
> jz4780_cgu_clocks[] = {
> 
>  	[JZ4780_CLK_CPU] = {
>  		"cpu", CGU_CLK_DIV,
> -		.parents = { JZ4780_CLK_CPUMUX, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_CPUMUX },
>  		.div = { CGU_REG_CLOCKCONTROL, 0, 1, 4, 22, -1, -1 },
>  	},
> 
>  	[JZ4780_CLK_L2CACHE] = {
>  		"l2cache", CGU_CLK_DIV,
> -		.parents = { JZ4780_CLK_CPUMUX, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_CPUMUX },
>  		.div = { CGU_REG_CLOCKCONTROL, 4, 1, 4, -1, -1, -1 },
>  	},
> 
> @@ -389,13 +397,13 @@ static const struct ingenic_cgu_clk_info 
> jz4780_cgu_clocks[] = {
> 
>  	[JZ4780_CLK_AHB2] = {
>  		"ahb2", CGU_CLK_DIV,
> -		.parents = { JZ4780_CLK_AHB2PMUX, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_AHB2PMUX },
>  		.div = { CGU_REG_CLOCKCONTROL, 12, 1, 4, 20, -1, -1 },
>  	},
> 
>  	[JZ4780_CLK_PCLK] = {
>  		"pclk", CGU_CLK_DIV,
> -		.parents = { JZ4780_CLK_AHB2PMUX, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_AHB2PMUX },
>  		.div = { CGU_REG_CLOCKCONTROL, 16, 1, 4, 20, -1, -1 },
>  	},
> 
> @@ -417,14 +425,14 @@ static const struct ingenic_cgu_clk_info 
> jz4780_cgu_clocks[] = {
> 
>  	[JZ4780_CLK_I2SPLL] = {
>  		"i2s_pll", CGU_CLK_MUX | CGU_CLK_DIV,
> -		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_EPLL, -1, -1 },
> +		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_EPLL },
>  		.mux = { CGU_REG_I2SCDR, 30, 1 },
>  		.div = { CGU_REG_I2SCDR, 0, 1, 8, 29, 28, 27 },
>  	},
> 
>  	[JZ4780_CLK_I2S] = {
>  		"i2s", CGU_CLK_MUX,
> -		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_I2SPLL, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_I2SPLL },
>  		.mux = { CGU_REG_I2SCDR, 31, 1 },
>  	},
> 
> @@ -452,21 +460,21 @@ static const struct ingenic_cgu_clk_info 
> jz4780_cgu_clocks[] = {
> 
>  	[JZ4780_CLK_MSC0] = {
>  		"msc0", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_MSCMUX, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_MSCMUX },
>  		.div = { CGU_REG_MSC0CDR, 0, 2, 8, 29, 28, 27 },
>  		.gate = { CGU_REG_CLKGR0, 3 },
>  	},
> 
>  	[JZ4780_CLK_MSC1] = {
>  		"msc1", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_MSCMUX, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_MSCMUX },
>  		.div = { CGU_REG_MSC1CDR, 0, 2, 8, 29, 28, 27 },
>  		.gate = { CGU_REG_CLKGR0, 11 },
>  	},
> 
>  	[JZ4780_CLK_MSC2] = {
>  		"msc2", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_MSCMUX, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_MSCMUX },
>  		.div = { CGU_REG_MSC2CDR, 0, 2, 8, 29, 28, 27 },
>  		.gate = { CGU_REG_CLKGR0, 12 },
>  	},
> @@ -482,20 +490,20 @@ static const struct ingenic_cgu_clk_info 
> jz4780_cgu_clocks[] = {
> 
>  	[JZ4780_CLK_SSIPLL] = {
>  		"ssi_pll", CGU_CLK_MUX | CGU_CLK_DIV,
> -		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL, -1, -1 },
> +		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL },
>  		.mux = { CGU_REG_SSICDR, 30, 1 },
>  		.div = { CGU_REG_SSICDR, 0, 1, 8, 29, 28, 27 },
>  	},
> 
>  	[JZ4780_CLK_SSI] = {
>  		"ssi", CGU_CLK_MUX,
> -		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_SSIPLL, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_SSIPLL },
>  		.mux = { CGU_REG_SSICDR, 31, 1 },
>  	},
> 
>  	[JZ4780_CLK_CIMMCLK] = {
>  		"cim_mclk", CGU_CLK_MUX | CGU_CLK_DIV,
> -		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL, -1, -1 },
> +		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL },
>  		.mux = { CGU_REG_CIMCDR, 31, 1 },
>  		.div = { CGU_REG_CIMCDR, 0, 1, 8, 30, 29, 28 },
>  	},
> @@ -510,7 +518,7 @@ static const struct ingenic_cgu_clk_info 
> jz4780_cgu_clocks[] = {
> 
>  	[JZ4780_CLK_PCM] = {
>  		"pcm", CGU_CLK_MUX | CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_PCMPLL, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_PCMPLL },
>  		.mux = { CGU_REG_PCMCDR, 31, 1 },
>  		.gate = { CGU_REG_CLKGR1, 3 },
>  	},
> @@ -558,238 +566,231 @@ static const struct ingenic_cgu_clk_info 
> jz4780_cgu_clocks[] = {
> 
>  	[JZ4780_CLK_NEMC] = {
>  		"nemc", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_AHB2, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_AHB2 },
>  		.gate = { CGU_REG_CLKGR0, 0 },
>  	},
> 
>  	[JZ4780_CLK_OTG0] = {
>  		"otg0", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 2 },
>  	},
> 
>  	[JZ4780_CLK_SSI0] = {
>  		"ssi0", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_SSI, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_SSI },
>  		.gate = { CGU_REG_CLKGR0, 4 },
>  	},
> 
>  	[JZ4780_CLK_SMB0] = {
>  		"smb0", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR0, 5 },
>  	},
> 
>  	[JZ4780_CLK_SMB1] = {
>  		"smb1", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR0, 6 },
>  	},
> 
>  	[JZ4780_CLK_SCC] = {
>  		"scc", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 7 },
>  	},
> 
>  	[JZ4780_CLK_AIC] = {
>  		"aic", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 8 },
>  	},
> 
>  	[JZ4780_CLK_TSSI0] = {
>  		"tssi0", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 9 },
>  	},
> 
>  	[JZ4780_CLK_OWI] = {
>  		"owi", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 10 },
>  	},
> 
>  	[JZ4780_CLK_KBC] = {
>  		"kbc", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 13 },
>  	},
> 
>  	[JZ4780_CLK_SADC] = {
>  		"sadc", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 14 },
>  	},
> 
>  	[JZ4780_CLK_UART0] = {
>  		"uart0", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 15 },
>  	},
> 
>  	[JZ4780_CLK_UART1] = {
>  		"uart1", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 16 },
>  	},
> 
>  	[JZ4780_CLK_UART2] = {
>  		"uart2", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 17 },
>  	},
> 
>  	[JZ4780_CLK_UART3] = {
>  		"uart3", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 18 },
>  	},
> 
>  	[JZ4780_CLK_SSI1] = {
>  		"ssi1", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_SSI, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_SSI },
>  		.gate = { CGU_REG_CLKGR0, 19 },
>  	},
> 
>  	[JZ4780_CLK_SSI2] = {
>  		"ssi2", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_SSI, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_SSI },
>  		.gate = { CGU_REG_CLKGR0, 20 },
>  	},
> 
>  	[JZ4780_CLK_PDMA] = {
>  		"pdma", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 21 },
>  	},
> 
>  	[JZ4780_CLK_GPS] = {
>  		"gps", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 22 },
>  	},
> 
>  	[JZ4780_CLK_MAC] = {
>  		"mac", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 23 },
>  	},
> 
>  	[JZ4780_CLK_SMB2] = {
>  		"smb2", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR0, 24 },
>  	},
> 
>  	[JZ4780_CLK_CIM] = {
>  		"cim", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 26 },
>  	},
> 
>  	[JZ4780_CLK_LCD] = {
>  		"lcd", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 28 },
>  	},
> 
>  	[JZ4780_CLK_TVE] = {
>  		"tve", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_LCD, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_LCD },
>  		.gate = { CGU_REG_CLKGR0, 27 },
>  	},
> 
>  	[JZ4780_CLK_IPU] = {
>  		"ipu", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 29 },
>  	},
> 
>  	[JZ4780_CLK_DDR0] = {
>  		"ddr0", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_DDR, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_DDR },
>  		.gate = { CGU_REG_CLKGR0, 30 },
>  	},
> 
>  	[JZ4780_CLK_DDR1] = {
>  		"ddr1", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_DDR, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_DDR },
>  		.gate = { CGU_REG_CLKGR0, 31 },
>  	},
> 
>  	[JZ4780_CLK_SMB3] = {
>  		"smb3", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR1, 0 },
>  	},
> 
>  	[JZ4780_CLK_TSSI1] = {
>  		"tssi1", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR1, 1 },
>  	},
> 
>  	[JZ4780_CLK_COMPRESS] = {
>  		"compress", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR1, 5 },
>  	},
> 
>  	[JZ4780_CLK_AIC1] = {
>  		"aic1", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR1, 6 },
>  	},
> 
>  	[JZ4780_CLK_GPVLC] = {
>  		"gpvlc", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR1, 7 },
>  	},
> 
>  	[JZ4780_CLK_OTG1] = {
>  		"otg1", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR1, 8 },
>  	},
> 
>  	[JZ4780_CLK_UART4] = {
>  		"uart4", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR1, 10 },
>  	},
> 
>  	[JZ4780_CLK_AHBMON] = {
>  		"ahb_mon", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR1, 11 },
>  	},
> 
>  	[JZ4780_CLK_SMB4] = {
>  		"smb4", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR1, 12 },
>  	},
> 
>  	[JZ4780_CLK_DES] = {
>  		"des", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR1, 13 },
>  	},
> 
>  	[JZ4780_CLK_X2D] = {
>  		"x2d", CGU_CLK_GATE,
> -		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { JZ4780_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR1, 14 },
>  	},
> -
> -	[JZ4780_CLK_CORE1] = {
> -		"core1", CGU_CLK_CUSTOM,
> -		.parents = { JZ4780_CLK_CPU, -1, -1, -1 },
> -		.custom = { &jz4780_core1_ops },
> -	},
> -
>  };
> 
>  static void __init jz4780_cgu_init(struct device_node *np)
> @@ -811,4 +812,5 @@ static void __init jz4780_cgu_init(struct 
> device_node *np)
> 
>  	ingenic_cgu_register_syscore_ops(cgu);
>  }
> +
>  CLK_OF_DECLARE_DRIVER(jz4780_cgu, "ingenic,jz4780-cgu", 
> jz4780_cgu_init);
> diff --git a/drivers/clk/ingenic/x1000-cgu.c 
> b/drivers/clk/ingenic/x1000-cgu.c
> index 59b16a6..8eea2533 100644
> --- a/drivers/clk/ingenic/x1000-cgu.c
> +++ b/drivers/clk/ingenic/x1000-cgu.c
> @@ -15,38 +15,38 @@
>  #include "pm.h"
> 
>  /* CGU register offsets */
> -#define CGU_REG_CPCCR		0x00
> -#define CGU_REG_APLL		0x10
> -#define CGU_REG_MPLL		0x14
> -#define CGU_REG_CLKGR		0x20
> -#define CGU_REG_OPCR		0x24
> -#define CGU_REG_DDRCDR		0x2c
> -#define CGU_REG_USBPCR		0x3c
> -#define CGU_REG_USBPCR1		0x48
> -#define CGU_REG_USBCDR		0x50
> -#define CGU_REG_MACCDR		0x54
> -#define CGU_REG_I2SCDR		0x60
> -#define CGU_REG_LPCDR		0x64
> -#define CGU_REG_MSC0CDR		0x68
> -#define CGU_REG_I2SCDR1		0x70
> -#define CGU_REG_SSICDR		0x74
> -#define CGU_REG_CIMCDR		0x7c
> -#define CGU_REG_PCMCDR		0x84
> -#define CGU_REG_MSC1CDR		0xa4
> -#define CGU_REG_CMP_INTR	0xb0
> -#define CGU_REG_CMP_INTRE	0xb4
> -#define CGU_REG_DRCG		0xd0
> -#define CGU_REG_CPCSR		0xd4
> -#define CGU_REG_PCMCDR1		0xe0
> -#define CGU_REG_MACPHYC		0xe8
> +#define CGU_REG_CPCCR			0x00
> +#define CGU_REG_APLL			0x10
> +#define CGU_REG_MPLL			0x14
> +#define CGU_REG_CLKGR			0x20
> +#define CGU_REG_OPCR			0x24
> +#define CGU_REG_DDRCDR			0x2c
> +#define CGU_REG_USBPCR			0x3c
> +#define CGU_REG_USBPCR1			0x48
> +#define CGU_REG_USBCDR			0x50
> +#define CGU_REG_MACCDR			0x54
> +#define CGU_REG_I2SCDR			0x60
> +#define CGU_REG_LPCDR			0x64
> +#define CGU_REG_MSC0CDR			0x68
> +#define CGU_REG_I2SCDR1			0x70
> +#define CGU_REG_SSICDR			0x74
> +#define CGU_REG_CIMCDR			0x7c
> +#define CGU_REG_PCMCDR			0x84
> +#define CGU_REG_MSC1CDR			0xa4
> +#define CGU_REG_CMP_INTR		0xb0
> +#define CGU_REG_CMP_INTRE		0xb4
> +#define CGU_REG_DRCG			0xd0
> +#define CGU_REG_CPCSR			0xd4
> +#define CGU_REG_PCMCDR1			0xe0
> +#define CGU_REG_MACPHYC			0xe8
> 
>  /* bits within the OPCR register */
> -#define OPCR_SPENDN0		BIT(7)
> -#define OPCR_SPENDN1		BIT(6)
> +#define OPCR_SPENDN0			BIT(7)
> +#define OPCR_SPENDN1			BIT(6)
> 
>  /* bits within the USBPCR register */
> -#define USBPCR_SIDDQ		BIT(21)
> -#define USBPCR_OTG_DISABLE	BIT(20)
> +#define USBPCR_SIDDQ			BIT(21)
> +#define USBPCR_OTG_DISABLE		BIT(20)
> 
>  /* bits within the USBPCR1 register */
>  #define USBPCR1_REFCLKSEL_SHIFT	26
> @@ -174,6 +174,7 @@ static int x1000_otg_phy_set_rate(struct clk_hw 
> *hw, unsigned long req_rate,
>  	writel(usbpcr1, cgu->base + CGU_REG_USBPCR1);
> 
>  	spin_unlock_irqrestore(&cgu->lock, flags);
> +
>  	return 0;
>  }
> 
> @@ -184,6 +185,7 @@ static int x1000_usb_phy_enable(struct clk_hw *hw)
> 
>  	writel(readl(reg_opcr) | OPCR_SPENDN0, reg_opcr);
>  	writel(readl(reg_usbpcr) & ~USBPCR_OTG_DISABLE & ~USBPCR_SIDDQ, 
> reg_usbpcr);
> +
>  	return 0;
>  }
> 
> @@ -211,9 +213,9 @@ static const struct clk_ops x1000_otg_phy_ops = {
>  	.round_rate = x1000_otg_phy_round_rate,
>  	.set_rate = x1000_otg_phy_set_rate,
> 
> -	.enable		= x1000_usb_phy_enable,
> -	.disable	= x1000_usb_phy_disable,
> -	.is_enabled	= x1000_usb_phy_is_enabled,
> +	.enable = x1000_usb_phy_enable,
> +	.disable = x1000_usb_phy_disable,
> +	.is_enabled = x1000_usb_phy_is_enabled,
>  };
> 
>  static const s8 pll_od_encoding[8] = {
> @@ -300,7 +302,7 @@ static const struct ingenic_cgu_clk_info 
> x1000_cgu_clocks[] = {
> 
>  	[X1000_CLK_OTGPHY] = {
>  		"otg_phy", CGU_CLK_CUSTOM,
> -		.parents = { -1, -1, X1000_CLK_EXCLK, -1 },
> +		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
>  		.custom = { &x1000_otg_phy_ops },
>  	},
> 
> @@ -320,14 +322,14 @@ static const struct ingenic_cgu_clk_info 
> x1000_cgu_clocks[] = {
> 
>  	[X1000_CLK_CPU] = {
>  		"cpu", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { X1000_CLK_CPUMUX, -1, -1, -1 },
> +		.parents = { X1000_CLK_CPUMUX },
>  		.div = { CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1 },
>  		.gate = { CGU_REG_CLKGR, 30 },
>  	},
> 
>  	[X1000_CLK_L2CACHE] = {
>  		"l2cache", CGU_CLK_DIV,
> -		.parents = { X1000_CLK_CPUMUX, -1, -1, -1 },
> +		.parents = { X1000_CLK_CPUMUX },
>  		.div = { CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1 },
>  	},
> 
> @@ -346,13 +348,13 @@ static const struct ingenic_cgu_clk_info 
> x1000_cgu_clocks[] = {
> 
>  	[X1000_CLK_AHB2] = {
>  		"ahb2", CGU_CLK_DIV,
> -		.parents = { X1000_CLK_AHB2PMUX, -1, -1, -1 },
> +		.parents = { X1000_CLK_AHB2PMUX },
>  		.div = { CGU_REG_CPCCR, 12, 1, 4, 20, -1, -1 },
>  	},
> 
>  	[X1000_CLK_PCLK] = {
>  		"pclk", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { X1000_CLK_AHB2PMUX, -1, -1, -1 },
> +		.parents = { X1000_CLK_AHB2PMUX },
>  		.div = { CGU_REG_CPCCR, 16, 1, 4, 20, -1, -1 },
>  		.gate = { CGU_REG_CLKGR, 28 },
>  	},
> @@ -382,20 +384,20 @@ static const struct ingenic_cgu_clk_info 
> x1000_cgu_clocks[] = {
> 
>  	[X1000_CLK_MSCMUX] = {
>  		"msc_mux", CGU_CLK_MUX,
> -		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL},
> +		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL },
>  		.mux = { CGU_REG_MSC0CDR, 31, 1 },
>  	},
> 
>  	[X1000_CLK_MSC0] = {
>  		"msc0", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { X1000_CLK_MSCMUX, -1, -1, -1 },
> +		.parents = { X1000_CLK_MSCMUX },
>  		.div = { CGU_REG_MSC0CDR, 0, 2, 8, 29, 28, 27 },
>  		.gate = { CGU_REG_CLKGR, 4 },
>  	},
> 
>  	[X1000_CLK_MSC1] = {
>  		"msc1", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { X1000_CLK_MSCMUX, -1, -1, -1 },
> +		.parents = { X1000_CLK_MSCMUX },
>  		.div = { CGU_REG_MSC1CDR, 0, 2, 8, 29, 28, 27 },
>  		.gate = { CGU_REG_CLKGR, 5 },
>  	},
> @@ -411,7 +413,7 @@ static const struct ingenic_cgu_clk_info 
> x1000_cgu_clocks[] = {
> 
>  	[X1000_CLK_SSIPLL] = {
>  		"ssi_pll", CGU_CLK_MUX | CGU_CLK_DIV,
> -		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL, -1, -1 },
> +		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL },
>  		.mux = { CGU_REG_SSICDR, 31, 1 },
>  		.div = { CGU_REG_SSICDR, 0, 1, 8, 29, 28, 27 },
>  	},
> @@ -424,13 +426,13 @@ static const struct ingenic_cgu_clk_info 
> x1000_cgu_clocks[] = {
> 
>  	[X1000_CLK_SSIMUX] = {
>  		"ssi_mux", CGU_CLK_MUX,
> -		.parents = { X1000_CLK_EXCLK, X1000_CLK_SSIPLL_DIV2, -1, -1 },
> +		.parents = { X1000_CLK_EXCLK, X1000_CLK_SSIPLL_DIV2 },
>  		.mux = { CGU_REG_SSICDR, 30, 1 },
>  	},
> 
>  	[X1000_CLK_CIM] = {
>  		"cim", CGU_CLK_MUX | CGU_CLK_DIV,
> -		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL, -1, -1 },
> +		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL },
>  		.mux = { CGU_REG_CIMCDR, 31, 1 },
>  		.div = { CGU_REG_CIMCDR, 0, 1, 8, 29, 28, 27 },
>  	},
> @@ -452,91 +454,91 @@ static const struct ingenic_cgu_clk_info 
> x1000_cgu_clocks[] = {
> 
>  	[X1000_CLK_EMC] = {
>  		"emc", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_AHB2, -1, -1, -1 },
> +		.parents = { X1000_CLK_AHB2 },
>  		.gate = { CGU_REG_CLKGR, 0 },
>  	},
> 
>  	[X1000_CLK_EFUSE] = {
>  		"efuse", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_AHB2, -1, -1, -1 },
> +		.parents = { X1000_CLK_AHB2 },
>  		.gate = { CGU_REG_CLKGR, 1 },
>  	},
> 
>  	[X1000_CLK_SFC] = {
>  		"sfc", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_SSIPLL, -1, -1, -1 },
> +		.parents = { X1000_CLK_SSIPLL },
>  		.gate = { CGU_REG_CLKGR, 2 },
>  	},
> 
>  	[X1000_CLK_I2C0] = {
>  		"i2c0", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_PCLK, -1, -1, -1 },
> +		.parents = { X1000_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR, 7 },
>  	},
> 
>  	[X1000_CLK_I2C1] = {
>  		"i2c1", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_PCLK, -1, -1, -1 },
> +		.parents = { X1000_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR, 8 },
>  	},
> 
>  	[X1000_CLK_I2C2] = {
>  		"i2c2", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_PCLK, -1, -1, -1 },
> +		.parents = { X1000_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR, 9 },
>  	},
> 
>  	[X1000_CLK_AIC] = {
>  		"aic", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1000_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR, 11 },
>  	},
> 
>  	[X1000_CLK_UART0] = {
>  		"uart0", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1000_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR, 14 },
>  	},
> 
>  	[X1000_CLK_UART1] = {
>  		"uart1", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1000_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR, 15 },
>  	},
> 
>  	[X1000_CLK_UART2] = {
>  		"uart2", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1000_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR, 16 },
>  	},
> 
>  	[X1000_CLK_DMIC] = {
>  		"dmic", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_PCLK, -1, -1, -1 },
> +		.parents = { X1000_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR, 17 },
>  	},
> 
>  	[X1000_CLK_TCU] = {
>  		"tcu", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1000_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR, 18 },
>  	},
> 
>  	[X1000_CLK_SSI] = {
>  		"ssi", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_SSIMUX, -1, -1, -1 },
> +		.parents = { X1000_CLK_SSIMUX },
>  		.gate = { CGU_REG_CLKGR, 19 },
>  	},
> 
>  	[X1000_CLK_OST] = {
>  		"ost", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1000_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR, 20 },
>  	},
> 
>  	[X1000_CLK_PDMA] = {
>  		"pdma", CGU_CLK_GATE,
> -		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1000_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR, 21 },
>  	},
> 
> @@ -566,6 +568,7 @@ static void __init x1000_cgu_init(struct 
> device_node *np)
> 
>  	ingenic_cgu_register_syscore_ops(cgu);
>  }
> +
>  /*
>   * CGU has some children devices, this is useful for probing 
> children devices
>   * in the case where the device node is compatible with "simple-mfd".
> diff --git a/drivers/clk/ingenic/x1830-cgu.c 
> b/drivers/clk/ingenic/x1830-cgu.c
> index cfb0314..8d6479e 100644
> --- a/drivers/clk/ingenic/x1830-cgu.c
> +++ b/drivers/clk/ingenic/x1830-cgu.c
> @@ -15,42 +15,42 @@
>  #include "pm.h"
> 
>  /* CGU register offsets */
> -#define CGU_REG_CPCCR		0x00
> -#define CGU_REG_CPPCR		0x0c
> -#define CGU_REG_APLL		0x10
> -#define CGU_REG_MPLL		0x14
> -#define CGU_REG_CLKGR0		0x20
> -#define CGU_REG_OPCR		0x24
> -#define CGU_REG_CLKGR1		0x28
> -#define CGU_REG_DDRCDR		0x2c
> -#define CGU_REG_USBPCR		0x3c
> -#define CGU_REG_USBRDT		0x40
> -#define CGU_REG_USBVBFIL	0x44
> -#define CGU_REG_USBPCR1		0x48
> -#define CGU_REG_MACCDR		0x54
> -#define CGU_REG_EPLL		0x58
> -#define CGU_REG_I2SCDR		0x60
> -#define CGU_REG_LPCDR		0x64
> -#define CGU_REG_MSC0CDR		0x68
> -#define CGU_REG_I2SCDR1		0x70
> -#define CGU_REG_SSICDR		0x74
> -#define CGU_REG_CIMCDR		0x7c
> -#define CGU_REG_MSC1CDR		0xa4
> -#define CGU_REG_CMP_INTR	0xb0
> -#define CGU_REG_CMP_INTRE	0xb4
> -#define CGU_REG_DRCG		0xd0
> -#define CGU_REG_CPCSR		0xd4
> -#define CGU_REG_VPLL		0xe0
> -#define CGU_REG_MACPHYC		0xe8
> +#define CGU_REG_CPCCR			0x00
> +#define CGU_REG_CPPCR			0x0c
> +#define CGU_REG_APLL			0x10
> +#define CGU_REG_MPLL			0x14
> +#define CGU_REG_CLKGR0			0x20
> +#define CGU_REG_OPCR			0x24
> +#define CGU_REG_CLKGR1			0x28
> +#define CGU_REG_DDRCDR			0x2c
> +#define CGU_REG_USBPCR			0x3c
> +#define CGU_REG_USBRDT			0x40
> +#define CGU_REG_USBVBFIL		0x44
> +#define CGU_REG_USBPCR1			0x48
> +#define CGU_REG_MACCDR			0x54
> +#define CGU_REG_EPLL			0x58
> +#define CGU_REG_I2SCDR			0x60
> +#define CGU_REG_LPCDR			0x64
> +#define CGU_REG_MSC0CDR			0x68
> +#define CGU_REG_I2SCDR1			0x70
> +#define CGU_REG_SSICDR			0x74
> +#define CGU_REG_CIMCDR			0x7c
> +#define CGU_REG_MSC1CDR			0xa4
> +#define CGU_REG_CMP_INTR		0xb0
> +#define CGU_REG_CMP_INTRE		0xb4
> +#define CGU_REG_DRCG			0xd0
> +#define CGU_REG_CPCSR			0xd4
> +#define CGU_REG_VPLL			0xe0
> +#define CGU_REG_MACPHYC			0xe8
> 
>  /* bits within the OPCR register */
> -#define OPCR_GATE_USBPHYCLK	BIT(23)
> -#define OPCR_SPENDN0		BIT(7)
> -#define OPCR_SPENDN1		BIT(6)
> +#define OPCR_GATE_USBPHYCLK		BIT(23)
> +#define OPCR_SPENDN0			BIT(7)
> +#define OPCR_SPENDN1			BIT(6)
> 
>  /* bits within the USBPCR register */
> -#define USBPCR_SIDDQ		BIT(21)
> -#define USBPCR_OTG_DISABLE	BIT(20)
> +#define USBPCR_SIDDQ			BIT(21)
> +#define USBPCR_OTG_DISABLE		BIT(20)
> 
>  static struct ingenic_cgu *cgu;
> 
> @@ -295,14 +295,14 @@ static const struct ingenic_cgu_clk_info 
> x1830_cgu_clocks[] = {
> 
>  	[X1830_CLK_CPU] = {
>  		"cpu", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { X1830_CLK_CPUMUX, -1, -1, -1 },
> +		.parents = { X1830_CLK_CPUMUX },
>  		.div = { CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1 },
>  		.gate = { CGU_REG_CLKGR1, 15 },
>  	},
> 
>  	[X1830_CLK_L2CACHE] = {
>  		"l2cache", CGU_CLK_DIV,
> -		.parents = { X1830_CLK_CPUMUX, -1, -1, -1 },
> +		.parents = { X1830_CLK_CPUMUX },
>  		.div = { CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1 },
>  	},
> 
> @@ -321,13 +321,13 @@ static const struct ingenic_cgu_clk_info 
> x1830_cgu_clocks[] = {
> 
>  	[X1830_CLK_AHB2] = {
>  		"ahb2", CGU_CLK_DIV,
> -		.parents = { X1830_CLK_AHB2PMUX, -1, -1, -1 },
> +		.parents = { X1830_CLK_AHB2PMUX },
>  		.div = { CGU_REG_CPCCR, 12, 1, 4, 20, -1, -1 },
>  	},
> 
>  	[X1830_CLK_PCLK] = {
>  		"pclk", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { X1830_CLK_AHB2PMUX, -1, -1, -1 },
> +		.parents = { X1830_CLK_AHB2PMUX },
>  		.div = { CGU_REG_CPCCR, 16, 1, 4, 20, -1, -1 },
>  		.gate = { CGU_REG_CLKGR1, 14 },
>  	},
> @@ -366,14 +366,14 @@ static const struct ingenic_cgu_clk_info 
> x1830_cgu_clocks[] = {
> 
>  	[X1830_CLK_MSC0] = {
>  		"msc0", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { X1830_CLK_MSCMUX, -1, -1, -1 },
> +		.parents = { X1830_CLK_MSCMUX },
>  		.div = { CGU_REG_MSC0CDR, 0, 2, 8, 29, 28, 27 },
>  		.gate = { CGU_REG_CLKGR0, 4 },
>  	},
> 
>  	[X1830_CLK_MSC1] = {
>  		"msc1", CGU_CLK_DIV | CGU_CLK_GATE,
> -		.parents = { X1830_CLK_MSCMUX, -1, -1, -1 },
> +		.parents = { X1830_CLK_MSCMUX },
>  		.div = { CGU_REG_MSC1CDR, 0, 2, 8, 29, 28, 27 },
>  		.gate = { CGU_REG_CLKGR0, 5 },
>  	},
> @@ -394,7 +394,7 @@ static const struct ingenic_cgu_clk_info 
> x1830_cgu_clocks[] = {
> 
>  	[X1830_CLK_SSIMUX] = {
>  		"ssi_mux", CGU_CLK_MUX,
> -		.parents = { X1830_CLK_EXCLK, X1830_CLK_SSIPLL_DIV2, -1, -1 },
> +		.parents = { X1830_CLK_EXCLK, X1830_CLK_SSIPLL_DIV2 },
>  		.mux = { CGU_REG_SSICDR, 29, 1 },
>  	},
> 
> @@ -423,97 +423,97 @@ static const struct ingenic_cgu_clk_info 
> x1830_cgu_clocks[] = {
> 
>  	[X1830_CLK_EMC] = {
>  		"emc", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_AHB2, -1, -1, -1 },
> +		.parents = { X1830_CLK_AHB2 },
>  		.gate = { CGU_REG_CLKGR0, 0 },
>  	},
> 
>  	[X1830_CLK_EFUSE] = {
>  		"efuse", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_AHB2, -1, -1, -1 },
> +		.parents = { X1830_CLK_AHB2 },
>  		.gate = { CGU_REG_CLKGR0, 1 },
>  	},
> 
>  	[X1830_CLK_OTG] = {
>  		"otg", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 3 },
>  	},
> 
>  	[X1830_CLK_SSI0] = {
>  		"ssi0", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_SSIMUX, -1, -1, -1 },
> +		.parents = { X1830_CLK_SSIMUX },
>  		.gate = { CGU_REG_CLKGR0, 6 },
>  	},
> 
>  	[X1830_CLK_SMB0] = {
>  		"smb0", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_PCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR0, 7 },
>  	},
> 
>  	[X1830_CLK_SMB1] = {
>  		"smb1", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_PCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR0, 8 },
>  	},
> 
>  	[X1830_CLK_SMB2] = {
>  		"smb2", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_PCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR0, 9 },
>  	},
> 
>  	[X1830_CLK_AIC] = {
>  		"aic", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 11 },
>  	},
> 
>  	[X1830_CLK_DMIC] = {
>  		"dmic", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_PCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR0, 12 },
>  	},
> 
>  	[X1830_CLK_UART0] = {
>  		"uart0", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 14 },
>  	},
> 
>  	[X1830_CLK_UART1] = {
>  		"uart1", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 15 },
>  	},
> 
>  	[X1830_CLK_SSI1] = {
>  		"ssi1", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_SSIMUX, -1, -1, -1 },
> +		.parents = { X1830_CLK_SSIMUX },
>  		.gate = { CGU_REG_CLKGR0, 19 },
>  	},
> 
>  	[X1830_CLK_SFC] = {
>  		"sfc", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_SSIPLL, -1, -1, -1 },
> +		.parents = { X1830_CLK_SSIPLL },
>  		.gate = { CGU_REG_CLKGR0, 20 },
>  	},
> 
>  	[X1830_CLK_PDMA] = {
>  		"pdma", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 21 },
>  	},
> 
>  	[X1830_CLK_TCU] = {
>  		"tcu", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR0, 30 },
>  	},
> 
>  	[X1830_CLK_DTRNG] = {
>  		"dtrng", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_PCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_PCLK },
>  		.gate = { CGU_REG_CLKGR1, 1 },
>  	},
> 
> @@ -525,7 +525,7 @@ static const struct ingenic_cgu_clk_info 
> x1830_cgu_clocks[] = {
> 
>  	[X1830_CLK_OST] = {
>  		"ost", CGU_CLK_GATE,
> -		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
> +		.parents = { X1830_CLK_EXCLK },
>  		.gate = { CGU_REG_CLKGR1, 11 },
>  	},
>  };
> @@ -549,6 +549,7 @@ static void __init x1830_cgu_init(struct 
> device_node *np)
> 
>  	ingenic_cgu_register_syscore_ops(cgu);
>  }
> +
>  /*
>   * CGU has some children devices, this is useful for probing 
> children devices
>   * in the case where the device node is compatible with "simple-mfd".
> --
> 2.7.4
>
Zhou Yanjie Aug. 27, 2021, 5:47 p.m. UTC | #2
Hi Paul,

On 2021/8/19 下午5:46, Paul Cercueil wrote:
> Hi Zhou,
>
> Le sam., juil. 24 2021 at 17:34:41 +0800, 周琰杰 (Zhou Yanjie) 
> <zhouyanjie@wanyeetech.com> a écrit :
>> 1.When the clock does not have "CGU_CLK_MUX", the 2/3/4 bits in
>>   parents do not need to be filled with -1. When the clock have
>>   a "CGU_CLK_MUX" has only one bit, the 3/4 bits of parents do
>>   not need to be filled with -1. Clean up these unnecessary -1
>>   from all the xxxx-cgu.c files.
>> 2.Reformat code, add missing blank lines, remove unnecessary
>>   commas and tabs, and align code.
>>
>> Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
>> ---
>>
>> Notes:
>>     v1->v2:
>>     Remove unnecessary -1 and commas.
>>
>>     v2->v3:
>>     No change.
>>
>>     v3->v4:
>>     1.The -1 used for placeholders on the unused bits of the
>>       parents in the custom clock should not be removed.
>>     2.Move "JZ4780_CLK_CORE1" from the "Gate-only clocks"
>>       class to the "Custom (SoC-specific)" class, because
>>       it belongs to the custom clock.
>>
>>     v4->v5:
>>     No change.
>>
>>     v5->v6:
>>     No change.
>>
>>     v6->v7:
>>     No change.
>>
>>  drivers/clk/ingenic/jz4725b-cgu.c |  49 ++++++++-------
>>  drivers/clk/ingenic/jz4740-cgu.c  |  49 ++++++++-------
>>  drivers/clk/ingenic/jz4760-cgu.c  | 106 ++++++++++++++++++++-----------
>>  drivers/clk/ingenic/jz4770-cgu.c  |  83 ++++++++++++------------
>>  drivers/clk/ingenic/jz4780-cgu.c  | 128 
>> +++++++++++++++++++-------------------
>>  drivers/clk/ingenic/x1000-cgu.c   | 117 
>> +++++++++++++++++-----------------
>>  drivers/clk/ingenic/x1830-cgu.c   | 113 
>> ++++++++++++++++-----------------
>>  7 files changed, 343 insertions(+), 302 deletions(-)
>>
>> diff --git a/drivers/clk/ingenic/jz4725b-cgu.c 
>> b/drivers/clk/ingenic/jz4725b-cgu.c
>> index 5154b0c..77d6979 100644
>> --- a/drivers/clk/ingenic/jz4725b-cgu.c
>> +++ b/drivers/clk/ingenic/jz4725b-cgu.c
>> @@ -17,7 +17,7 @@
>>
>>  /* CGU register offsets */
>>  #define CGU_REG_CPCCR        0x00
>> -#define CGU_REG_LCR        0x04
>> +#define CGU_REG_LCR            0x04
>>  #define CGU_REG_CPPCR        0x10
>>  #define CGU_REG_CLKGR        0x20
>>  #define CGU_REG_OPCR        0x24
>> @@ -28,7 +28,7 @@
>>  #define CGU_REG_CIMCDR        0x78
>>
>>  /* bits within the LCR register */
>> -#define LCR_SLEEP        BIT(0)
>> +#define LCR_SLEEP            BIT(0)
>>
>>  static struct ingenic_cgu *cgu;
>>
>> @@ -78,7 +78,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4725b_cgu_clocks[] = {
>>
>>      [JZ4725B_CLK_PLL_HALF] = {
>>          "pll half", CGU_CLK_DIV,
>> -        .parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_PLL },
>>          .div = {
>>              CGU_REG_CPCCR, 21, 1, 1, -1, -1, -1, 0,
>>              jz4725b_cgu_pll_half_div_table,
>> @@ -87,7 +87,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4725b_cgu_clocks[] = {
>>
>>      [JZ4725B_CLK_CCLK] = {
>>          "cclk", CGU_CLK_DIV,
>> -        .parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_PLL },
>>          .div = {
>>              CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
>>              jz4725b_cgu_cpccr_div_table,
>> @@ -96,7 +96,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4725b_cgu_clocks[] = {
>>
>>      [JZ4725B_CLK_HCLK] = {
>>          "hclk", CGU_CLK_DIV,
>> -        .parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_PLL },
>>          .div = {
>>              CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
>>              jz4725b_cgu_cpccr_div_table,
>> @@ -105,7 +105,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4725b_cgu_clocks[] = {
>>
>>      [JZ4725B_CLK_PCLK] = {
>>          "pclk", CGU_CLK_DIV,
>> -        .parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_PLL },
>>          .div = {
>>              CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
>>              jz4725b_cgu_cpccr_div_table,
>> @@ -114,7 +114,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4725b_cgu_clocks[] = {
>>
>>      [JZ4725B_CLK_MCLK] = {
>>          "mclk", CGU_CLK_DIV,
>> -        .parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_PLL },
>>          .div = {
>>              CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
>>              jz4725b_cgu_cpccr_div_table,
>> @@ -123,7 +123,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4725b_cgu_clocks[] = {
>>
>>      [JZ4725B_CLK_IPU] = {
>>          "ipu", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_PLL },
>>          .div = {
>>              CGU_REG_CPCCR, 16, 1, 4, 22, -1, -1, 0,
>>              jz4725b_cgu_cpccr_div_table,
>> @@ -133,14 +133,14 @@ static const struct ingenic_cgu_clk_info 
>> jz4725b_cgu_clocks[] = {
>>
>>      [JZ4725B_CLK_LCD] = {
>>          "lcd", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_PLL_HALF, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_PLL_HALF },
>>          .div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR, 9 },
>>      },
>>
>>      [JZ4725B_CLK_I2S] = {
>>          "i2s", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF, -1, -1 },
>> +        .parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF },
>>          .mux = { CGU_REG_CPCCR, 31, 1 },
>>          .div = { CGU_REG_I2SCDR, 0, 1, 9, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR, 6 },
>> @@ -148,7 +148,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4725b_cgu_clocks[] = {
>>
>>      [JZ4725B_CLK_SPI] = {
>>          "spi", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL, -1, -1 },
>> +        .parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL },
>>          .mux = { CGU_REG_SSICDR, 31, 1 },
>>          .div = { CGU_REG_SSICDR, 0, 1, 4, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR, 4 },
>> @@ -156,13 +156,13 @@ static const struct ingenic_cgu_clk_info 
>> jz4725b_cgu_clocks[] = {
>>
>>      [JZ4725B_CLK_MMC_MUX] = {
>>          "mmc_mux", CGU_CLK_DIV,
>> -        .parents = { JZ4725B_CLK_PLL_HALF, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_PLL_HALF },
>>          .div = { CGU_REG_MSCCDR, 0, 1, 5, -1, -1, -1 },
>>      },
>>
>>      [JZ4725B_CLK_UDC] = {
>>          "udc", CGU_CLK_MUX | CGU_CLK_DIV,
>> -        .parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF, -1, -1 },
>> +        .parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF },
>>          .mux = { CGU_REG_CPCCR, 29, 1 },
>>          .div = { CGU_REG_CPCCR, 23, 1, 6, -1, -1, -1 },
>>      },
>> @@ -171,55 +171,55 @@ static const struct ingenic_cgu_clk_info 
>> jz4725b_cgu_clocks[] = {
>>
>>      [JZ4725B_CLK_UART] = {
>>          "uart", CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR, 0 },
>>      },
>>
>>      [JZ4725B_CLK_DMA] = {
>>          "dma", CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR, 12 },
>>      },
>>
>>      [JZ4725B_CLK_ADC] = {
>>          "adc", CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR, 7 },
>>      },
>>
>>      [JZ4725B_CLK_I2C] = {
>>          "i2c", CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR, 3 },
>>      },
>>
>>      [JZ4725B_CLK_AIC] = {
>>          "aic", CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR, 5 },
>>      },
>>
>>      [JZ4725B_CLK_MMC0] = {
>>          "mmc0", CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_MMC_MUX, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_MMC_MUX },
>>          .gate = { CGU_REG_CLKGR, 6 },
>>      },
>>
>>      [JZ4725B_CLK_MMC1] = {
>>          "mmc1", CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_MMC_MUX, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_MMC_MUX },
>>          .gate = { CGU_REG_CLKGR, 16 },
>>      },
>>
>>      [JZ4725B_CLK_BCH] = {
>>          "bch", CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_MCLK/* not sure */, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_MCLK/* not sure */ },
>>          .gate = { CGU_REG_CLKGR, 11 },
>>      },
>>
>>      [JZ4725B_CLK_TCU] = {
>>          "tcu", CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_EXT/* not sure */, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_EXT/* not sure */ },
>>          .gate = { CGU_REG_CLKGR, 1 },
>>      },
>>
>> @@ -233,13 +233,13 @@ static const struct ingenic_cgu_clk_info 
>> jz4725b_cgu_clocks[] = {
>>
>>      [JZ4725B_CLK_RTC] = {
>>          "rtc", CGU_CLK_MUX,
>> -        .parents = { JZ4725B_CLK_EXT512, JZ4725B_CLK_OSC32K, -1, -1 },
>> +        .parents = { JZ4725B_CLK_EXT512, JZ4725B_CLK_OSC32K },
>>          .mux = { CGU_REG_OPCR, 2, 1},
>>      },
>>
>>      [JZ4725B_CLK_UDC_PHY] = {
>>          "udc_phy", CGU_CLK_GATE,
>> -        .parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
>> +        .parents = { JZ4725B_CLK_EXT },
>>          .gate = { CGU_REG_OPCR, 6, true },
>>      },
>>  };
>> @@ -261,4 +261,5 @@ static void __init jz4725b_cgu_init(struct 
>> device_node *np)
>>
>>      ingenic_cgu_register_syscore_ops(cgu);
>>  }
>> +
>>  CLK_OF_DECLARE_DRIVER(jz4725b_cgu, "ingenic,jz4725b-cgu", 
>> jz4725b_cgu_init);
>> diff --git a/drivers/clk/ingenic/jz4740-cgu.c 
>> b/drivers/clk/ingenic/jz4740-cgu.c
>> index cd878f0..4ec7699 100644
>> --- a/drivers/clk/ingenic/jz4740-cgu.c
>> +++ b/drivers/clk/ingenic/jz4740-cgu.c
>> @@ -18,10 +18,10 @@
>>
>>  /* CGU register offsets */
>>  #define CGU_REG_CPCCR        0x00
>> -#define CGU_REG_LCR        0x04
>> +#define CGU_REG_LCR            0x04
>>  #define CGU_REG_CPPCR        0x10
>>  #define CGU_REG_CLKGR        0x20
>> -#define CGU_REG_SCR        0x24
>> +#define CGU_REG_SCR            0x24
>>  #define CGU_REG_I2SCDR        0x60
>>  #define CGU_REG_LPCDR        0x64
>>  #define CGU_REG_MSCCDR        0x68
>> @@ -40,10 +40,10 @@
>>  #define PLLCTL_ENABLE        (1 << 8)
>>
>>  /* bits within the LCR register */
>> -#define LCR_SLEEP        (1 << 0)
>> +#define LCR_SLEEP            (1 << 0)
>>
>>  /* bits within the CLKGR register */
>> -#define CLKGR_UDC        (1 << 11)
>> +#define CLKGR_UDC            (1 << 11)
>>
>>  static struct ingenic_cgu *cgu;
>>
>> @@ -93,7 +93,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4740_cgu_clocks[] = {
>>
>>      [JZ4740_CLK_PLL_HALF] = {
>>          "pll half", CGU_CLK_DIV,
>> -        .parents = { JZ4740_CLK_PLL, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_PLL },
>>          .div = {
>>              CGU_REG_CPCCR, 21, 1, 1, -1, -1, -1, 0,
>>              jz4740_cgu_pll_half_div_table,
>> @@ -102,7 +102,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4740_cgu_clocks[] = {
>>
>>      [JZ4740_CLK_CCLK] = {
>>          "cclk", CGU_CLK_DIV,
>> -        .parents = { JZ4740_CLK_PLL, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_PLL },
>>          .div = {
>>              CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
>>              jz4740_cgu_cpccr_div_table,
>> @@ -111,7 +111,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4740_cgu_clocks[] = {
>>
>>      [JZ4740_CLK_HCLK] = {
>>          "hclk", CGU_CLK_DIV,
>> -        .parents = { JZ4740_CLK_PLL, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_PLL },
>>          .div = {
>>              CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
>>              jz4740_cgu_cpccr_div_table,
>> @@ -120,7 +120,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4740_cgu_clocks[] = {
>>
>>      [JZ4740_CLK_PCLK] = {
>>          "pclk", CGU_CLK_DIV,
>> -        .parents = { JZ4740_CLK_PLL, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_PLL },
>>          .div = {
>>              CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
>>              jz4740_cgu_cpccr_div_table,
>> @@ -129,7 +129,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4740_cgu_clocks[] = {
>>
>>      [JZ4740_CLK_MCLK] = {
>>          "mclk", CGU_CLK_DIV,
>> -        .parents = { JZ4740_CLK_PLL, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_PLL },
>>          .div = {
>>              CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
>>              jz4740_cgu_cpccr_div_table,
>> @@ -138,7 +138,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4740_cgu_clocks[] = {
>>
>>      [JZ4740_CLK_LCD] = {
>>          "lcd", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_PLL_HALF },
>>          .div = {
>>              CGU_REG_CPCCR, 16, 1, 5, 22, -1, -1, 0,
>>              jz4740_cgu_cpccr_div_table,
>> @@ -148,13 +148,13 @@ static const struct ingenic_cgu_clk_info 
>> jz4740_cgu_clocks[] = {
>>
>>      [JZ4740_CLK_LCD_PCLK] = {
>>          "lcd_pclk", CGU_CLK_DIV,
>> -        .parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_PLL_HALF },
>>          .div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
>>      },
>>
>>      [JZ4740_CLK_I2S] = {
>>          "i2s", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF, -1, -1 },
>> +        .parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF },
>>          .mux = { CGU_REG_CPCCR, 31, 1 },
>>          .div = { CGU_REG_I2SCDR, 0, 1, 9, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR, 6 },
>> @@ -162,7 +162,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4740_cgu_clocks[] = {
>>
>>      [JZ4740_CLK_SPI] = {
>>          "spi", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL, -1, -1 },
>> +        .parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL },
>>          .mux = { CGU_REG_SSICDR, 31, 1 },
>>          .div = { CGU_REG_SSICDR, 0, 1, 4, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR, 4 },
>> @@ -170,21 +170,21 @@ static const struct ingenic_cgu_clk_info 
>> jz4740_cgu_clocks[] = {
>>
>>      [JZ4740_CLK_MMC] = {
>>          "mmc", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_PLL_HALF },
>>          .div = { CGU_REG_MSCCDR, 0, 1, 5, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR, 7 },
>>      },
>>
>>      [JZ4740_CLK_UHC] = {
>>          "uhc", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_PLL_HALF },
>>          .div = { CGU_REG_UHCCDR, 0, 1, 4, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR, 14 },
>>      },
>>
>>      [JZ4740_CLK_UDC] = {
>>          "udc", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF, -1, -1 },
>> +        .parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF },
>>          .mux = { CGU_REG_CPCCR, 29, 1 },
>>          .div = { CGU_REG_CPCCR, 23, 1, 6, -1, -1, -1 },
>>          .gate = { CGU_REG_SCR, 6, true },
>> @@ -194,49 +194,49 @@ static const struct ingenic_cgu_clk_info 
>> jz4740_cgu_clocks[] = {
>>
>>      [JZ4740_CLK_UART0] = {
>>          "uart0", CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_EXT, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR, 0 },
>>      },
>>
>>      [JZ4740_CLK_UART1] = {
>>          "uart1", CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_EXT, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR, 15 },
>>      },
>>
>>      [JZ4740_CLK_DMA] = {
>>          "dma", CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR, 12 },
>>      },
>>
>>      [JZ4740_CLK_IPU] = {
>>          "ipu", CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR, 13 },
>>      },
>>
>>      [JZ4740_CLK_ADC] = {
>>          "adc", CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_EXT, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR, 8 },
>>      },
>>
>>      [JZ4740_CLK_I2C] = {
>>          "i2c", CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_EXT, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR, 3 },
>>      },
>>
>>      [JZ4740_CLK_AIC] = {
>>          "aic", CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_EXT, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR, 5 },
>>      },
>>
>>      [JZ4740_CLK_TCU] = {
>>          "tcu", CGU_CLK_GATE,
>> -        .parents = { JZ4740_CLK_EXT, -1, -1, -1 },
>> +        .parents = { JZ4740_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR, 1 },
>>      },
>>  };
>> @@ -258,4 +258,5 @@ static void __init jz4740_cgu_init(struct 
>> device_node *np)
>>
>>      ingenic_cgu_register_syscore_ops(cgu);
>>  }
>> +
>>  CLK_OF_DECLARE_DRIVER(jz4740_cgu, "ingenic,jz4740-cgu", 
>> jz4740_cgu_init);
>> diff --git a/drivers/clk/ingenic/jz4760-cgu.c 
>> b/drivers/clk/ingenic/jz4760-cgu.c
>> index 1448379..9237429 100644
>> --- a/drivers/clk/ingenic/jz4760-cgu.c
>> +++ b/drivers/clk/ingenic/jz4760-cgu.c
>> @@ -23,7 +23,7 @@
>>   * CPM registers offset address definition
>>   */
>>  #define CGU_REG_CPCCR        0x00
>> -#define CGU_REG_LCR        0x04
>> +#define CGU_REG_LCR            0x04
>>  #define CGU_REG_CPPCR0        0x10
>>  #define CGU_REG_CLKGR0        0x20
>>  #define CGU_REG_OPCR        0x24
>> @@ -93,7 +93,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4760_cgu_clocks[] = {
>>
>>      [JZ4760_CLK_PLL0] = {
>>          "pll0", CGU_CLK_PLL,
>> -        .parents = { JZ4760_CLK_EXT },
>> +        .parents = { JZ4760_CLK_EXT, -1, -1, -1 },
>
> You remove the "-1" in jz4740-cgu.c, but you add them here?


Oops, I will fix it in the next version.


Thanks and best regards!


>
> -Paul
>
>>          .pll = {
>>              .reg = CGU_REG_CPPCR0,
>>              .rate_multiplier = 1,
>> @@ -118,7 +118,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4760_cgu_clocks[] = {
>>      [JZ4760_CLK_PLL1] = {
>>          /* TODO: PLL1 can depend on PLL0 */
>>          "pll1", CGU_CLK_PLL,
>> -        .parents = { JZ4760_CLK_EXT },
>> +        .parents = { JZ4760_CLK_EXT, -1, -1, -1 },
>>          .pll = {
>>              .reg = CGU_REG_CPPCR1,
>>              .rate_multiplier = 1,
>> @@ -143,47 +143,52 @@ static const struct ingenic_cgu_clk_info 
>> jz4760_cgu_clocks[] = {
>>
>>      [JZ4760_CLK_CCLK] = {
>>          "cclk", CGU_CLK_DIV,
>> -        .parents = { JZ4760_CLK_PLL0, },
>> +        .parents = { JZ4760_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
>>              jz4760_cgu_cpccr_div_table,
>>          },
>>      },
>> +
>>      [JZ4760_CLK_HCLK] = {
>>          "hclk", CGU_CLK_DIV,
>> -        .parents = { JZ4760_CLK_PLL0, },
>> +        .parents = { JZ4760_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
>>              jz4760_cgu_cpccr_div_table,
>>          },
>>      },
>> +
>>      [JZ4760_CLK_SCLK] = {
>>          "sclk", CGU_CLK_DIV,
>> -        .parents = { JZ4760_CLK_PLL0, },
>> +        .parents = { JZ4760_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 24, 1, 4, 22, -1, -1, 0,
>>              jz4760_cgu_cpccr_div_table,
>>          },
>>      },
>> +
>>      [JZ4760_CLK_H2CLK] = {
>>          "h2clk", CGU_CLK_DIV,
>> -        .parents = { JZ4760_CLK_PLL0, },
>> +        .parents = { JZ4760_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 16, 1, 4, 22, -1, -1, 0,
>>              jz4760_cgu_cpccr_div_table,
>>          },
>>      },
>> +
>>      [JZ4760_CLK_MCLK] = {
>>          "mclk", CGU_CLK_DIV,
>> -        .parents = { JZ4760_CLK_PLL0, },
>> +        .parents = { JZ4760_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
>>              jz4760_cgu_cpccr_div_table,
>>          },
>>      },
>> +
>>      [JZ4760_CLK_PCLK] = {
>>          "pclk", CGU_CLK_DIV,
>> -        .parents = { JZ4760_CLK_PLL0, },
>> +        .parents = { JZ4760_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
>>              jz4760_cgu_cpccr_div_table,
>> @@ -205,39 +210,44 @@ static const struct ingenic_cgu_clk_info 
>> jz4760_cgu_clocks[] = {
>>
>>      [JZ4760_CLK_UHC] = {
>>          "uhc", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
>> +        .parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
>>          .mux = { CGU_REG_UHCCDR, 31, 1 },
>>          .div = { CGU_REG_UHCCDR, 0, 1, 4, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR0, 24 },
>>      },
>> +
>>      [JZ4760_CLK_GPU] = {
>>          "gpu", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
>> +        .parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
>>          .mux = { CGU_REG_GPUCDR, 31, 1 },
>>          .div = { CGU_REG_GPUCDR, 0, 1, 3, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR1, 9 },
>>      },
>> +
>>      [JZ4760_CLK_LPCLK_DIV] = {
>>          "lpclk_div", CGU_CLK_DIV | CGU_CLK_MUX,
>> -        .parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
>> +        .parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
>>          .mux = { CGU_REG_LPCDR, 29, 1 },
>>          .div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
>>      },
>> +
>>      [JZ4760_CLK_TVE] = {
>>          "tve", CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_EXT, },
>> +        .parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_EXT },
>>          .mux = { CGU_REG_LPCDR, 31, 1 },
>>          .gate = { CGU_REG_CLKGR0, 27 },
>>      },
>> +
>>      [JZ4760_CLK_LPCLK] = {
>>          "lpclk", CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_TVE, },
>> +        .parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_TVE },
>>          .mux = { CGU_REG_LPCDR, 30, 1 },
>>          .gate = { CGU_REG_CLKGR0, 28 },
>>      },
>> +
>>      [JZ4760_CLK_GPS] = {
>>          "gps", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
>> +        .parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
>>          .mux = { CGU_REG_GPSCDR, 31, 1 },
>>          .div = { CGU_REG_GPSCDR, 0, 1, 4, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR0, 22 },
>> @@ -253,6 +263,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4760_cgu_clocks[] = {
>>          .div = { CGU_REG_PCMCDR, 0, 1, 9, -1, -1, -1, BIT(0) },
>>          .gate = { CGU_REG_CLKGR1, 8 },
>>      },
>> +
>>      [JZ4760_CLK_I2S] = {
>>          "i2s", CGU_CLK_DIV | CGU_CLK_MUX,
>>          .parents = { JZ4760_CLK_EXT, -1,
>> @@ -260,6 +271,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4760_cgu_clocks[] = {
>>          .mux = { CGU_REG_I2SCDR, 30, 2 },
>>          .div = { CGU_REG_I2SCDR, 0, 1, 9, -1, -1, -1, BIT(0) },
>>      },
>> +
>>      [JZ4760_CLK_OTG] = {
>>          "usb", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>>          .parents = { JZ4760_CLK_EXT, -1,
>> @@ -272,13 +284,14 @@ static const struct ingenic_cgu_clk_info 
>> jz4760_cgu_clocks[] = {
>>      /* Those divided clocks can connect to EXT or PLL0 */
>>      [JZ4760_CLK_MMC_MUX] = {
>>          "mmc_mux", CGU_CLK_MUX | CGU_CLK_DIV,
>> -        .parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF, },
>> +        .parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF },
>>          .mux = { CGU_REG_MSCCDR, 31, 1 },
>>          .div = { CGU_REG_MSCCDR, 0, 1, 6, -1, -1, -1, BIT(0) },
>>      },
>> +
>>      [JZ4760_CLK_SSI_MUX] = {
>>          "ssi_mux", CGU_CLK_DIV | CGU_CLK_MUX,
>> -        .parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF, },
>> +        .parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF },
>>          .mux = { CGU_REG_SSICDR, 31, 1 },
>>          .div = { CGU_REG_SSICDR, 0, 1, 6, -1, -1, -1, BIT(0) },
>>      },
>> @@ -295,94 +308,112 @@ static const struct ingenic_cgu_clk_info 
>> jz4760_cgu_clocks[] = {
>>
>>      [JZ4760_CLK_SSI0] = {
>>          "ssi0", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_SSI_MUX, },
>> +        .parents = { JZ4760_CLK_SSI_MUX },
>>          .gate = { CGU_REG_CLKGR0, 4 },
>>      },
>> +
>>      [JZ4760_CLK_SSI1] = {
>>          "ssi1", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_SSI_MUX, },
>> +        .parents = { JZ4760_CLK_SSI_MUX },
>>          .gate = { CGU_REG_CLKGR0, 19 },
>>      },
>> +
>>      [JZ4760_CLK_SSI2] = {
>>          "ssi2", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_SSI_MUX, },
>> +        .parents = { JZ4760_CLK_SSI_MUX },
>>          .gate = { CGU_REG_CLKGR0, 20 },
>>      },
>> +
>>      [JZ4760_CLK_DMA] = {
>>          "dma", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_H2CLK, },
>> +        .parents = { JZ4760_CLK_H2CLK },
>>          .gate = { CGU_REG_CLKGR0, 21 },
>>      },
>> +
>>      [JZ4760_CLK_I2C0] = {
>>          "i2c0", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_EXT, },
>> +        .parents = { JZ4760_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 5 },
>>      },
>> +
>>      [JZ4760_CLK_I2C1] = {
>>          "i2c1", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_EXT, },
>> +        .parents = { JZ4760_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 6 },
>>      },
>> +
>>      [JZ4760_CLK_UART0] = {
>>          "uart0", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_EXT, },
>> +        .parents = { JZ4760_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 15 },
>>      },
>> +
>>      [JZ4760_CLK_UART1] = {
>>          "uart1", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_EXT, },
>> +        .parents = { JZ4760_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 16 },
>>      },
>> +
>>      [JZ4760_CLK_UART2] = {
>>          "uart2", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_EXT, },
>> +        .parents = { JZ4760_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 17 },
>>      },
>> +
>>      [JZ4760_CLK_UART3] = {
>>          "uart3", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_EXT, },
>> +        .parents = { JZ4760_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 18 },
>>      },
>> +
>>      [JZ4760_CLK_IPU] = {
>>          "ipu", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_HCLK, },
>> +        .parents = { JZ4760_CLK_HCLK },
>>          .gate = { CGU_REG_CLKGR0, 29 },
>>      },
>> +
>>      [JZ4760_CLK_ADC] = {
>>          "adc", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_EXT, },
>> +        .parents = { JZ4760_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 14 },
>>      },
>> +
>>      [JZ4760_CLK_AIC] = {
>>          "aic", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_EXT, },
>> +        .parents = { JZ4760_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 8 },
>>      },
>> +
>>      [JZ4760_CLK_VPU] = {
>>          "vpu", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_HCLK, },
>> +        .parents = { JZ4760_CLK_HCLK },
>>          .gate = { CGU_REG_LCR, 30, false, 150 },
>>      },
>> +
>>      [JZ4760_CLK_MMC0] = {
>>          "mmc0", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_MMC_MUX, },
>> +        .parents = { JZ4760_CLK_MMC_MUX },
>>          .gate = { CGU_REG_CLKGR0, 3 },
>>      },
>> +
>>      [JZ4760_CLK_MMC1] = {
>>          "mmc1", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_MMC_MUX, },
>> +        .parents = { JZ4760_CLK_MMC_MUX },
>>          .gate = { CGU_REG_CLKGR0, 11 },
>>      },
>> +
>>      [JZ4760_CLK_MMC2] = {
>>          "mmc2", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_MMC_MUX, },
>> +        .parents = { JZ4760_CLK_MMC_MUX },
>>          .gate = { CGU_REG_CLKGR0, 12 },
>>      },
>> +
>>      [JZ4760_CLK_UHC_PHY] = {
>>          "uhc_phy", CGU_CLK_GATE,
>> -        .parents = { JZ4760_CLK_UHC, },
>> +        .parents = { JZ4760_CLK_UHC },
>>          .gate = { CGU_REG_OPCR, 5 },
>>      },
>> +
>>      [JZ4760_CLK_OTG_PHY] = {
>>          "usb_phy", CGU_CLK_GATE,
>>          .parents = { JZ4760_CLK_OTG },
>> @@ -395,10 +426,11 @@ static const struct ingenic_cgu_clk_info 
>> jz4760_cgu_clocks[] = {
>>          .parents = { JZ4760_CLK_EXT },
>>          .fixdiv = { 512 },
>>      },
>> +
>>      [JZ4760_CLK_RTC] = {
>>          "rtc", CGU_CLK_MUX,
>> -        .parents = { JZ4760_CLK_EXT512, JZ4760_CLK_OSC32K, },
>> -        .mux = { CGU_REG_OPCR, 2, 1},
>> +        .parents = { JZ4760_CLK_EXT512, JZ4760_CLK_OSC32K },
>> +        .mux = { CGU_REG_OPCR, 2, 1 },
>>      },
>>  };
>>
>> diff --git a/drivers/clk/ingenic/jz4770-cgu.c 
>> b/drivers/clk/ingenic/jz4770-cgu.c
>> index 2321742..315caa0 100644
>> --- a/drivers/clk/ingenic/jz4770-cgu.c
>> +++ b/drivers/clk/ingenic/jz4770-cgu.c
>> @@ -19,7 +19,7 @@
>>   * CPM registers offset address definition
>>   */
>>  #define CGU_REG_CPCCR        0x00
>> -#define CGU_REG_LCR        0x04
>> +#define CGU_REG_LCR            0x04
>>  #define CGU_REG_CPPCR0        0x10
>>  #define CGU_REG_CLKGR0        0x20
>>  #define CGU_REG_OPCR        0x24
>> @@ -41,7 +41,7 @@
>>  #define CGU_REG_BCHCDR        0xAC
>>
>>  /* bits within the OPCR register */
>> -#define OPCR_SPENDH        BIT(5)        /* UHC PHY suspend */
>> +#define OPCR_SPENDH            BIT(5)        /* UHC PHY suspend */
>>
>>  /* bits within the USBPCR1 register */
>>  #define USBPCR1_UHC_POWER    BIT(5)        /* UHC PHY power down */
>> @@ -55,6 +55,7 @@ static int jz4770_uhc_phy_enable(struct clk_hw *hw)
>>
>>      writel(readl(reg_opcr) & ~OPCR_SPENDH, reg_opcr);
>>      writel(readl(reg_usbpcr1) | USBPCR1_UHC_POWER, reg_usbpcr1);
>> +
>>      return 0;
>>  }
>>
>> @@ -101,7 +102,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4770_cgu_clocks[] = {
>>
>>      [JZ4770_CLK_PLL0] = {
>>          "pll0", CGU_CLK_PLL,
>> -        .parents = { JZ4770_CLK_EXT },
>> +        .parents = { JZ4770_CLK_EXT, -1, -1, -1 },
>>          .pll = {
>>              .reg = CGU_REG_CPPCR0,
>>              .rate_multiplier = 1,
>> @@ -125,7 +126,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4770_cgu_clocks[] = {
>>      [JZ4770_CLK_PLL1] = {
>>          /* TODO: PLL1 can depend on PLL0 */
>>          "pll1", CGU_CLK_PLL,
>> -        .parents = { JZ4770_CLK_EXT },
>> +        .parents = { JZ4770_CLK_EXT, -1, -1, -1 },
>>          .pll = {
>>              .reg = CGU_REG_CPPCR1,
>>              .rate_multiplier = 1,
>> @@ -149,7 +150,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4770_cgu_clocks[] = {
>>
>>      [JZ4770_CLK_CCLK] = {
>>          "cclk", CGU_CLK_DIV,
>> -        .parents = { JZ4770_CLK_PLL0, },
>> +        .parents = { JZ4770_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
>>              jz4770_cgu_cpccr_div_table,
>> @@ -157,7 +158,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4770_cgu_clocks[] = {
>>      },
>>      [JZ4770_CLK_H0CLK] = {
>>          "h0clk", CGU_CLK_DIV,
>> -        .parents = { JZ4770_CLK_PLL0, },
>> +        .parents = { JZ4770_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
>>              jz4770_cgu_cpccr_div_table,
>> @@ -165,7 +166,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4770_cgu_clocks[] = {
>>      },
>>      [JZ4770_CLK_H1CLK] = {
>>          "h1clk", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_PLL0, },
>> +        .parents = { JZ4770_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 24, 1, 4, 22, -1, -1, 0,
>>              jz4770_cgu_cpccr_div_table,
>> @@ -174,7 +175,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4770_cgu_clocks[] = {
>>      },
>>      [JZ4770_CLK_H2CLK] = {
>>          "h2clk", CGU_CLK_DIV,
>> -        .parents = { JZ4770_CLK_PLL0, },
>> +        .parents = { JZ4770_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 16, 1, 4, 22, -1, -1, 0,
>>              jz4770_cgu_cpccr_div_table,
>> @@ -182,7 +183,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4770_cgu_clocks[] = {
>>      },
>>      [JZ4770_CLK_C1CLK] = {
>>          "c1clk", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_PLL0, },
>> +        .parents = { JZ4770_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
>>              jz4770_cgu_cpccr_div_table,
>> @@ -191,7 +192,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4770_cgu_clocks[] = {
>>      },
>>      [JZ4770_CLK_PCLK] = {
>>          "pclk", CGU_CLK_DIV,
>> -        .parents = { JZ4770_CLK_PLL0, },
>> +        .parents = { JZ4770_CLK_PLL0 },
>>          .div = {
>>              CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
>>              jz4770_cgu_cpccr_div_table,
>> @@ -202,63 +203,63 @@ static const struct ingenic_cgu_clk_info 
>> jz4770_cgu_clocks[] = {
>>
>>      [JZ4770_CLK_MMC0_MUX] = {
>>          "mmc0_mux", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
>> +        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>>          .mux = { CGU_REG_MSC0CDR, 30, 1 },
>>          .div = { CGU_REG_MSC0CDR, 0, 1, 7, -1, -1, 31 },
>>          .gate = { CGU_REG_MSC0CDR, 31 },
>>      },
>>      [JZ4770_CLK_MMC1_MUX] = {
>>          "mmc1_mux", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
>> +        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>>          .mux = { CGU_REG_MSC1CDR, 30, 1 },
>>          .div = { CGU_REG_MSC1CDR, 0, 1, 7, -1, -1, 31 },
>>          .gate = { CGU_REG_MSC1CDR, 31 },
>>      },
>>      [JZ4770_CLK_MMC2_MUX] = {
>>          "mmc2_mux", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
>> +        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>>          .mux = { CGU_REG_MSC2CDR, 30, 1 },
>>          .div = { CGU_REG_MSC2CDR, 0, 1, 7, -1, -1, 31 },
>>          .gate = { CGU_REG_MSC2CDR, 31 },
>>      },
>>      [JZ4770_CLK_CIM] = {
>>          "cim", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
>> +        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>>          .mux = { CGU_REG_CIMCDR, 31, 1 },
>>          .div = { CGU_REG_CIMCDR, 0, 1, 8, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR0, 26 },
>>      },
>>      [JZ4770_CLK_UHC] = {
>>          "uhc", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
>> +        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>>          .mux = { CGU_REG_UHCCDR, 29, 1 },
>>          .div = { CGU_REG_UHCCDR, 0, 1, 4, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR0, 24 },
>>      },
>>      [JZ4770_CLK_GPU] = {
>>          "gpu", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, -1 },
>> +        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>>          .mux = { CGU_REG_GPUCDR, 31, 1 },
>>          .div = { CGU_REG_GPUCDR, 0, 1, 3, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR1, 9 },
>>      },
>>      [JZ4770_CLK_BCH] = {
>>          "bch", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
>> +        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>>          .mux = { CGU_REG_BCHCDR, 31, 1 },
>>          .div = { CGU_REG_BCHCDR, 0, 1, 3, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR0, 1 },
>>      },
>>      [JZ4770_CLK_LPCLK_MUX] = {
>>          "lpclk", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
>> +        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>>          .mux = { CGU_REG_LPCDR, 29, 1 },
>>          .div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR0, 28 },
>>      },
>>      [JZ4770_CLK_GPS] = {
>>          "gps", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
>> -        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
>> +        .parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
>>          .mux = { CGU_REG_GPSCDR, 31, 1 },
>>          .div = { CGU_REG_GPSCDR, 0, 1, 4, -1, -1, -1 },
>>          .gate = { CGU_REG_CLKGR0, 22 },
>> @@ -301,107 +302,107 @@ static const struct ingenic_cgu_clk_info 
>> jz4770_cgu_clocks[] = {
>>
>>      [JZ4770_CLK_SSI0] = {
>>          "ssi0", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_SSI_MUX, },
>> +        .parents = { JZ4770_CLK_SSI_MUX },
>>          .gate = { CGU_REG_CLKGR0, 4 },
>>      },
>>      [JZ4770_CLK_SSI1] = {
>>          "ssi1", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_SSI_MUX, },
>> +        .parents = { JZ4770_CLK_SSI_MUX },
>>          .gate = { CGU_REG_CLKGR0, 19 },
>>      },
>>      [JZ4770_CLK_SSI2] = {
>>          "ssi2", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_SSI_MUX, },
>> +        .parents = { JZ4770_CLK_SSI_MUX },
>>          .gate = { CGU_REG_CLKGR0, 20 },
>>      },
>>      [JZ4770_CLK_PCM0] = {
>>          "pcm0", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_PCM_MUX, },
>> +        .parents = { JZ4770_CLK_PCM_MUX },
>>          .gate = { CGU_REG_CLKGR1, 8 },
>>      },
>>      [JZ4770_CLK_PCM1] = {
>>          "pcm1", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_PCM_MUX, },
>> +        .parents = { JZ4770_CLK_PCM_MUX },
>>          .gate = { CGU_REG_CLKGR1, 10 },
>>      },
>>      [JZ4770_CLK_DMA] = {
>>          "dma", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_H2CLK, },
>> +        .parents = { JZ4770_CLK_H2CLK },
>>          .gate = { CGU_REG_CLKGR0, 21 },
>>      },
>>      [JZ4770_CLK_I2C0] = {
>>          "i2c0", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_EXT, },
>> +        .parents = { JZ4770_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 5 },
>>      },
>>      [JZ4770_CLK_I2C1] = {
>>          "i2c1", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_EXT, },
>> +        .parents = { JZ4770_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 6 },
>>      },
>>      [JZ4770_CLK_I2C2] = {
>>          "i2c2", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_EXT, },
>> +        .parents = { JZ4770_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR1, 15 },
>>      },
>>      [JZ4770_CLK_UART0] = {
>>          "uart0", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_EXT, },
>> +        .parents = { JZ4770_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 15 },
>>      },
>>      [JZ4770_CLK_UART1] = {
>>          "uart1", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_EXT, },
>> +        .parents = { JZ4770_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 16 },
>>      },
>>      [JZ4770_CLK_UART2] = {
>>          "uart2", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_EXT, },
>> +        .parents = { JZ4770_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 17 },
>>      },
>>      [JZ4770_CLK_UART3] = {
>>          "uart3", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_EXT, },
>> +        .parents = { JZ4770_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 18 },
>>      },
>>      [JZ4770_CLK_IPU] = {
>>          "ipu", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_H0CLK, },
>> +        .parents = { JZ4770_CLK_H0CLK },
>>          .gate = { CGU_REG_CLKGR0, 29 },
>>      },
>>      [JZ4770_CLK_ADC] = {
>>          "adc", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_EXT, },
>> +        .parents = { JZ4770_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 14 },
>>      },
>>      [JZ4770_CLK_AIC] = {
>>          "aic", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_EXT, },
>> +        .parents = { JZ4770_CLK_EXT },
>>          .gate = { CGU_REG_CLKGR0, 8 },
>>      },
>>      [JZ4770_CLK_AUX] = {
>>          "aux", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_C1CLK, },
>> +        .parents = { JZ4770_CLK_C1CLK },
>>          .gate = { CGU_REG_CLKGR1, 14 },
>>      },
>>      [JZ4770_CLK_VPU] = {
>>          "vpu", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_H1CLK, },
>> +        .parents = { JZ4770_CLK_H1CLK },
>>          .gate = { CGU_REG_LCR, 30, false, 150 },
>>      },
>>      [JZ4770_CLK_MMC0] = {
>>          "mmc0", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_MMC0_MUX, },
>> +        .parents = { JZ4770_CLK_MMC0_MUX },
>>          .gate = { CGU_REG_CLKGR0, 3 },
>>      },
>>      [JZ4770_CLK_MMC1] = {
>>          "mmc1", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_MMC1_MUX, },
>> +        .parents = { JZ4770_CLK_MMC1_MUX },
>>          .gate = { CGU_REG_CLKGR0, 11 },
>>      },
>>      [JZ4770_CLK_MMC2] = {
>>          "mmc2", CGU_CLK_GATE,
>> -        .parents = { JZ4770_CLK_MMC2_MUX, },
>> +        .parents = { JZ4770_CLK_MMC2_MUX },
>>          .gate = { CGU_REG_CLKGR0, 12 },
>>      },
>>      [JZ4770_CLK_OTG_PHY] = {
>> @@ -426,7 +427,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4770_cgu_clocks[] = {
>>
>>      [JZ4770_CLK_RTC] = {
>>          "rtc", CGU_CLK_MUX,
>> -        .parents = { JZ4770_CLK_EXT512, JZ4770_CLK_OSC32K, },
>> +        .parents = { JZ4770_CLK_EXT512, JZ4770_CLK_OSC32K },
>>          .mux = { CGU_REG_OPCR, 2, 1},
>>      },
>>  };
>> diff --git a/drivers/clk/ingenic/jz4780-cgu.c 
>> b/drivers/clk/ingenic/jz4780-cgu.c
>> index dcca74e..267deb4 100644
>> --- a/drivers/clk/ingenic/jz4780-cgu.c
>> +++ b/drivers/clk/ingenic/jz4780-cgu.c
>> @@ -178,6 +178,7 @@ static int jz4780_otg_phy_set_rate(struct clk_hw 
>> *hw, unsigned long req_rate,
>>      writel(usbpcr1, cgu->base + CGU_REG_USBPCR1);
>>
>>      spin_unlock_irqrestore(&cgu->lock, flags);
>> +
>>      return 0;
>>  }
>>
>> @@ -188,6 +189,7 @@ static int jz4780_otg_phy_enable(struct clk_hw *hw)
>>
>>      writel(readl(reg_opcr) | OPCR_SPENDN0, reg_opcr);
>>      writel(readl(reg_usbpcr) & ~USBPCR_OTG_DISABLE & ~USBPCR_SIDDQ, 
>> reg_usbpcr);
>> +
>>      return 0;
>>  }
>>
>> @@ -215,9 +217,9 @@ static const struct clk_ops jz4780_otg_phy_ops = {
>>      .round_rate = jz4780_otg_phy_round_rate,
>>      .set_rate = jz4780_otg_phy_set_rate,
>>
>> -    .enable        = jz4780_otg_phy_enable,
>> -    .disable    = jz4780_otg_phy_disable,
>> -    .is_enabled    = jz4780_otg_phy_is_enabled,
>> +    .enable = jz4780_otg_phy_enable,
>> +    .disable = jz4780_otg_phy_disable,
>> +    .is_enabled = jz4780_otg_phy_is_enabled,
>>  };
>>
>>  static int jz4780_core1_enable(struct clk_hw *hw)
>> @@ -336,11 +338,17 @@ static const struct ingenic_cgu_clk_info 
>> jz4780_cgu_clocks[] = {
>>
>>  #undef DEF_PLL
>>
>> -    /* Custom (SoC-specific) OTG PHY */
>> +    /* Custom (SoC-specific) */
>> +
>> +    [JZ4780_CLK_CORE1] = {
>> +        "core1", CGU_CLK_CUSTOM,
>> +        .parents = { JZ4780_CLK_CPU, -1, -1, -1 },
>> +        .custom = { &jz4780_core1_ops },
>> +    },
>>
>>      [JZ4780_CLK_OTGPHY] = {
>>          "otg_phy", CGU_CLK_CUSTOM,
>> -        .parents = { -1, -1, JZ4780_CLK_EXCLK, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>>          .custom = { &jz4780_otg_phy_ops },
>>      },
>>
>> @@ -362,13 +370,13 @@ static const struct ingenic_cgu_clk_info 
>> jz4780_cgu_clocks[] = {
>>
>>      [JZ4780_CLK_CPU] = {
>>          "cpu", CGU_CLK_DIV,
>> -        .parents = { JZ4780_CLK_CPUMUX, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_CPUMUX },
>>          .div = { CGU_REG_CLOCKCONTROL, 0, 1, 4, 22, -1, -1 },
>>      },
>>
>>      [JZ4780_CLK_L2CACHE] = {
>>          "l2cache", CGU_CLK_DIV,
>> -        .parents = { JZ4780_CLK_CPUMUX, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_CPUMUX },
>>          .div = { CGU_REG_CLOCKCONTROL, 4, 1, 4, -1, -1, -1 },
>>      },
>>
>> @@ -389,13 +397,13 @@ static const struct ingenic_cgu_clk_info 
>> jz4780_cgu_clocks[] = {
>>
>>      [JZ4780_CLK_AHB2] = {
>>          "ahb2", CGU_CLK_DIV,
>> -        .parents = { JZ4780_CLK_AHB2PMUX, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_AHB2PMUX },
>>          .div = { CGU_REG_CLOCKCONTROL, 12, 1, 4, 20, -1, -1 },
>>      },
>>
>>      [JZ4780_CLK_PCLK] = {
>>          "pclk", CGU_CLK_DIV,
>> -        .parents = { JZ4780_CLK_AHB2PMUX, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_AHB2PMUX },
>>          .div = { CGU_REG_CLOCKCONTROL, 16, 1, 4, 20, -1, -1 },
>>      },
>>
>> @@ -417,14 +425,14 @@ static const struct ingenic_cgu_clk_info 
>> jz4780_cgu_clocks[] = {
>>
>>      [JZ4780_CLK_I2SPLL] = {
>>          "i2s_pll", CGU_CLK_MUX | CGU_CLK_DIV,
>> -        .parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_EPLL, -1, -1 },
>> +        .parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_EPLL },
>>          .mux = { CGU_REG_I2SCDR, 30, 1 },
>>          .div = { CGU_REG_I2SCDR, 0, 1, 8, 29, 28, 27 },
>>      },
>>
>>      [JZ4780_CLK_I2S] = {
>>          "i2s", CGU_CLK_MUX,
>> -        .parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_I2SPLL, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_I2SPLL },
>>          .mux = { CGU_REG_I2SCDR, 31, 1 },
>>      },
>>
>> @@ -452,21 +460,21 @@ static const struct ingenic_cgu_clk_info 
>> jz4780_cgu_clocks[] = {
>>
>>      [JZ4780_CLK_MSC0] = {
>>          "msc0", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_MSCMUX, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_MSCMUX },
>>          .div = { CGU_REG_MSC0CDR, 0, 2, 8, 29, 28, 27 },
>>          .gate = { CGU_REG_CLKGR0, 3 },
>>      },
>>
>>      [JZ4780_CLK_MSC1] = {
>>          "msc1", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_MSCMUX, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_MSCMUX },
>>          .div = { CGU_REG_MSC1CDR, 0, 2, 8, 29, 28, 27 },
>>          .gate = { CGU_REG_CLKGR0, 11 },
>>      },
>>
>>      [JZ4780_CLK_MSC2] = {
>>          "msc2", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_MSCMUX, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_MSCMUX },
>>          .div = { CGU_REG_MSC2CDR, 0, 2, 8, 29, 28, 27 },
>>          .gate = { CGU_REG_CLKGR0, 12 },
>>      },
>> @@ -482,20 +490,20 @@ static const struct ingenic_cgu_clk_info 
>> jz4780_cgu_clocks[] = {
>>
>>      [JZ4780_CLK_SSIPLL] = {
>>          "ssi_pll", CGU_CLK_MUX | CGU_CLK_DIV,
>> -        .parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL, -1, -1 },
>> +        .parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL },
>>          .mux = { CGU_REG_SSICDR, 30, 1 },
>>          .div = { CGU_REG_SSICDR, 0, 1, 8, 29, 28, 27 },
>>      },
>>
>>      [JZ4780_CLK_SSI] = {
>>          "ssi", CGU_CLK_MUX,
>> -        .parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_SSIPLL, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_SSIPLL },
>>          .mux = { CGU_REG_SSICDR, 31, 1 },
>>      },
>>
>>      [JZ4780_CLK_CIMMCLK] = {
>>          "cim_mclk", CGU_CLK_MUX | CGU_CLK_DIV,
>> -        .parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL, -1, -1 },
>> +        .parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL },
>>          .mux = { CGU_REG_CIMCDR, 31, 1 },
>>          .div = { CGU_REG_CIMCDR, 0, 1, 8, 30, 29, 28 },
>>      },
>> @@ -510,7 +518,7 @@ static const struct ingenic_cgu_clk_info 
>> jz4780_cgu_clocks[] = {
>>
>>      [JZ4780_CLK_PCM] = {
>>          "pcm", CGU_CLK_MUX | CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_PCMPLL, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_PCMPLL },
>>          .mux = { CGU_REG_PCMCDR, 31, 1 },
>>          .gate = { CGU_REG_CLKGR1, 3 },
>>      },
>> @@ -558,238 +566,231 @@ static const struct ingenic_cgu_clk_info 
>> jz4780_cgu_clocks[] = {
>>
>>      [JZ4780_CLK_NEMC] = {
>>          "nemc", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_AHB2, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_AHB2 },
>>          .gate = { CGU_REG_CLKGR0, 0 },
>>      },
>>
>>      [JZ4780_CLK_OTG0] = {
>>          "otg0", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 2 },
>>      },
>>
>>      [JZ4780_CLK_SSI0] = {
>>          "ssi0", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_SSI, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_SSI },
>>          .gate = { CGU_REG_CLKGR0, 4 },
>>      },
>>
>>      [JZ4780_CLK_SMB0] = {
>>          "smb0", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR0, 5 },
>>      },
>>
>>      [JZ4780_CLK_SMB1] = {
>>          "smb1", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR0, 6 },
>>      },
>>
>>      [JZ4780_CLK_SCC] = {
>>          "scc", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 7 },
>>      },
>>
>>      [JZ4780_CLK_AIC] = {
>>          "aic", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 8 },
>>      },
>>
>>      [JZ4780_CLK_TSSI0] = {
>>          "tssi0", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 9 },
>>      },
>>
>>      [JZ4780_CLK_OWI] = {
>>          "owi", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 10 },
>>      },
>>
>>      [JZ4780_CLK_KBC] = {
>>          "kbc", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 13 },
>>      },
>>
>>      [JZ4780_CLK_SADC] = {
>>          "sadc", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 14 },
>>      },
>>
>>      [JZ4780_CLK_UART0] = {
>>          "uart0", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 15 },
>>      },
>>
>>      [JZ4780_CLK_UART1] = {
>>          "uart1", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 16 },
>>      },
>>
>>      [JZ4780_CLK_UART2] = {
>>          "uart2", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 17 },
>>      },
>>
>>      [JZ4780_CLK_UART3] = {
>>          "uart3", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 18 },
>>      },
>>
>>      [JZ4780_CLK_SSI1] = {
>>          "ssi1", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_SSI, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_SSI },
>>          .gate = { CGU_REG_CLKGR0, 19 },
>>      },
>>
>>      [JZ4780_CLK_SSI2] = {
>>          "ssi2", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_SSI, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_SSI },
>>          .gate = { CGU_REG_CLKGR0, 20 },
>>      },
>>
>>      [JZ4780_CLK_PDMA] = {
>>          "pdma", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 21 },
>>      },
>>
>>      [JZ4780_CLK_GPS] = {
>>          "gps", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 22 },
>>      },
>>
>>      [JZ4780_CLK_MAC] = {
>>          "mac", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 23 },
>>      },
>>
>>      [JZ4780_CLK_SMB2] = {
>>          "smb2", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR0, 24 },
>>      },
>>
>>      [JZ4780_CLK_CIM] = {
>>          "cim", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 26 },
>>      },
>>
>>      [JZ4780_CLK_LCD] = {
>>          "lcd", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 28 },
>>      },
>>
>>      [JZ4780_CLK_TVE] = {
>>          "tve", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_LCD, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_LCD },
>>          .gate = { CGU_REG_CLKGR0, 27 },
>>      },
>>
>>      [JZ4780_CLK_IPU] = {
>>          "ipu", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 29 },
>>      },
>>
>>      [JZ4780_CLK_DDR0] = {
>>          "ddr0", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_DDR, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_DDR },
>>          .gate = { CGU_REG_CLKGR0, 30 },
>>      },
>>
>>      [JZ4780_CLK_DDR1] = {
>>          "ddr1", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_DDR, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_DDR },
>>          .gate = { CGU_REG_CLKGR0, 31 },
>>      },
>>
>>      [JZ4780_CLK_SMB3] = {
>>          "smb3", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR1, 0 },
>>      },
>>
>>      [JZ4780_CLK_TSSI1] = {
>>          "tssi1", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR1, 1 },
>>      },
>>
>>      [JZ4780_CLK_COMPRESS] = {
>>          "compress", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR1, 5 },
>>      },
>>
>>      [JZ4780_CLK_AIC1] = {
>>          "aic1", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR1, 6 },
>>      },
>>
>>      [JZ4780_CLK_GPVLC] = {
>>          "gpvlc", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR1, 7 },
>>      },
>>
>>      [JZ4780_CLK_OTG1] = {
>>          "otg1", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR1, 8 },
>>      },
>>
>>      [JZ4780_CLK_UART4] = {
>>          "uart4", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR1, 10 },
>>      },
>>
>>      [JZ4780_CLK_AHBMON] = {
>>          "ahb_mon", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR1, 11 },
>>      },
>>
>>      [JZ4780_CLK_SMB4] = {
>>          "smb4", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR1, 12 },
>>      },
>>
>>      [JZ4780_CLK_DES] = {
>>          "des", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR1, 13 },
>>      },
>>
>>      [JZ4780_CLK_X2D] = {
>>          "x2d", CGU_CLK_GATE,
>> -        .parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { JZ4780_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR1, 14 },
>>      },
>> -
>> -    [JZ4780_CLK_CORE1] = {
>> -        "core1", CGU_CLK_CUSTOM,
>> -        .parents = { JZ4780_CLK_CPU, -1, -1, -1 },
>> -        .custom = { &jz4780_core1_ops },
>> -    },
>> -
>>  };
>>
>>  static void __init jz4780_cgu_init(struct device_node *np)
>> @@ -811,4 +812,5 @@ static void __init jz4780_cgu_init(struct 
>> device_node *np)
>>
>>      ingenic_cgu_register_syscore_ops(cgu);
>>  }
>> +
>>  CLK_OF_DECLARE_DRIVER(jz4780_cgu, "ingenic,jz4780-cgu", 
>> jz4780_cgu_init);
>> diff --git a/drivers/clk/ingenic/x1000-cgu.c 
>> b/drivers/clk/ingenic/x1000-cgu.c
>> index 59b16a6..8eea2533 100644
>> --- a/drivers/clk/ingenic/x1000-cgu.c
>> +++ b/drivers/clk/ingenic/x1000-cgu.c
>> @@ -15,38 +15,38 @@
>>  #include "pm.h"
>>
>>  /* CGU register offsets */
>> -#define CGU_REG_CPCCR        0x00
>> -#define CGU_REG_APLL        0x10
>> -#define CGU_REG_MPLL        0x14
>> -#define CGU_REG_CLKGR        0x20
>> -#define CGU_REG_OPCR        0x24
>> -#define CGU_REG_DDRCDR        0x2c
>> -#define CGU_REG_USBPCR        0x3c
>> -#define CGU_REG_USBPCR1        0x48
>> -#define CGU_REG_USBCDR        0x50
>> -#define CGU_REG_MACCDR        0x54
>> -#define CGU_REG_I2SCDR        0x60
>> -#define CGU_REG_LPCDR        0x64
>> -#define CGU_REG_MSC0CDR        0x68
>> -#define CGU_REG_I2SCDR1        0x70
>> -#define CGU_REG_SSICDR        0x74
>> -#define CGU_REG_CIMCDR        0x7c
>> -#define CGU_REG_PCMCDR        0x84
>> -#define CGU_REG_MSC1CDR        0xa4
>> -#define CGU_REG_CMP_INTR    0xb0
>> -#define CGU_REG_CMP_INTRE    0xb4
>> -#define CGU_REG_DRCG        0xd0
>> -#define CGU_REG_CPCSR        0xd4
>> -#define CGU_REG_PCMCDR1        0xe0
>> -#define CGU_REG_MACPHYC        0xe8
>> +#define CGU_REG_CPCCR            0x00
>> +#define CGU_REG_APLL            0x10
>> +#define CGU_REG_MPLL            0x14
>> +#define CGU_REG_CLKGR            0x20
>> +#define CGU_REG_OPCR            0x24
>> +#define CGU_REG_DDRCDR            0x2c
>> +#define CGU_REG_USBPCR            0x3c
>> +#define CGU_REG_USBPCR1            0x48
>> +#define CGU_REG_USBCDR            0x50
>> +#define CGU_REG_MACCDR            0x54
>> +#define CGU_REG_I2SCDR            0x60
>> +#define CGU_REG_LPCDR            0x64
>> +#define CGU_REG_MSC0CDR            0x68
>> +#define CGU_REG_I2SCDR1            0x70
>> +#define CGU_REG_SSICDR            0x74
>> +#define CGU_REG_CIMCDR            0x7c
>> +#define CGU_REG_PCMCDR            0x84
>> +#define CGU_REG_MSC1CDR            0xa4
>> +#define CGU_REG_CMP_INTR        0xb0
>> +#define CGU_REG_CMP_INTRE        0xb4
>> +#define CGU_REG_DRCG            0xd0
>> +#define CGU_REG_CPCSR            0xd4
>> +#define CGU_REG_PCMCDR1            0xe0
>> +#define CGU_REG_MACPHYC            0xe8
>>
>>  /* bits within the OPCR register */
>> -#define OPCR_SPENDN0        BIT(7)
>> -#define OPCR_SPENDN1        BIT(6)
>> +#define OPCR_SPENDN0            BIT(7)
>> +#define OPCR_SPENDN1            BIT(6)
>>
>>  /* bits within the USBPCR register */
>> -#define USBPCR_SIDDQ        BIT(21)
>> -#define USBPCR_OTG_DISABLE    BIT(20)
>> +#define USBPCR_SIDDQ            BIT(21)
>> +#define USBPCR_OTG_DISABLE        BIT(20)
>>
>>  /* bits within the USBPCR1 register */
>>  #define USBPCR1_REFCLKSEL_SHIFT    26
>> @@ -174,6 +174,7 @@ static int x1000_otg_phy_set_rate(struct clk_hw 
>> *hw, unsigned long req_rate,
>>      writel(usbpcr1, cgu->base + CGU_REG_USBPCR1);
>>
>>      spin_unlock_irqrestore(&cgu->lock, flags);
>> +
>>      return 0;
>>  }
>>
>> @@ -184,6 +185,7 @@ static int x1000_usb_phy_enable(struct clk_hw *hw)
>>
>>      writel(readl(reg_opcr) | OPCR_SPENDN0, reg_opcr);
>>      writel(readl(reg_usbpcr) & ~USBPCR_OTG_DISABLE & ~USBPCR_SIDDQ, 
>> reg_usbpcr);
>> +
>>      return 0;
>>  }
>>
>> @@ -211,9 +213,9 @@ static const struct clk_ops x1000_otg_phy_ops = {
>>      .round_rate = x1000_otg_phy_round_rate,
>>      .set_rate = x1000_otg_phy_set_rate,
>>
>> -    .enable        = x1000_usb_phy_enable,
>> -    .disable    = x1000_usb_phy_disable,
>> -    .is_enabled    = x1000_usb_phy_is_enabled,
>> +    .enable = x1000_usb_phy_enable,
>> +    .disable = x1000_usb_phy_disable,
>> +    .is_enabled = x1000_usb_phy_is_enabled,
>>  };
>>
>>  static const s8 pll_od_encoding[8] = {
>> @@ -300,7 +302,7 @@ static const struct ingenic_cgu_clk_info 
>> x1000_cgu_clocks[] = {
>>
>>      [X1000_CLK_OTGPHY] = {
>>          "otg_phy", CGU_CLK_CUSTOM,
>> -        .parents = { -1, -1, X1000_CLK_EXCLK, -1 },
>> +        .parents = { X1000_CLK_EXCLK, -1, -1, -1 },
>>          .custom = { &x1000_otg_phy_ops },
>>      },
>>
>> @@ -320,14 +322,14 @@ static const struct ingenic_cgu_clk_info 
>> x1000_cgu_clocks[] = {
>>
>>      [X1000_CLK_CPU] = {
>>          "cpu", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_CPUMUX, -1, -1, -1 },
>> +        .parents = { X1000_CLK_CPUMUX },
>>          .div = { CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1 },
>>          .gate = { CGU_REG_CLKGR, 30 },
>>      },
>>
>>      [X1000_CLK_L2CACHE] = {
>>          "l2cache", CGU_CLK_DIV,
>> -        .parents = { X1000_CLK_CPUMUX, -1, -1, -1 },
>> +        .parents = { X1000_CLK_CPUMUX },
>>          .div = { CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1 },
>>      },
>>
>> @@ -346,13 +348,13 @@ static const struct ingenic_cgu_clk_info 
>> x1000_cgu_clocks[] = {
>>
>>      [X1000_CLK_AHB2] = {
>>          "ahb2", CGU_CLK_DIV,
>> -        .parents = { X1000_CLK_AHB2PMUX, -1, -1, -1 },
>> +        .parents = { X1000_CLK_AHB2PMUX },
>>          .div = { CGU_REG_CPCCR, 12, 1, 4, 20, -1, -1 },
>>      },
>>
>>      [X1000_CLK_PCLK] = {
>>          "pclk", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_AHB2PMUX, -1, -1, -1 },
>> +        .parents = { X1000_CLK_AHB2PMUX },
>>          .div = { CGU_REG_CPCCR, 16, 1, 4, 20, -1, -1 },
>>          .gate = { CGU_REG_CLKGR, 28 },
>>      },
>> @@ -382,20 +384,20 @@ static const struct ingenic_cgu_clk_info 
>> x1000_cgu_clocks[] = {
>>
>>      [X1000_CLK_MSCMUX] = {
>>          "msc_mux", CGU_CLK_MUX,
>> -        .parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL},
>> +        .parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL },
>>          .mux = { CGU_REG_MSC0CDR, 31, 1 },
>>      },
>>
>>      [X1000_CLK_MSC0] = {
>>          "msc0", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_MSCMUX, -1, -1, -1 },
>> +        .parents = { X1000_CLK_MSCMUX },
>>          .div = { CGU_REG_MSC0CDR, 0, 2, 8, 29, 28, 27 },
>>          .gate = { CGU_REG_CLKGR, 4 },
>>      },
>>
>>      [X1000_CLK_MSC1] = {
>>          "msc1", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_MSCMUX, -1, -1, -1 },
>> +        .parents = { X1000_CLK_MSCMUX },
>>          .div = { CGU_REG_MSC1CDR, 0, 2, 8, 29, 28, 27 },
>>          .gate = { CGU_REG_CLKGR, 5 },
>>      },
>> @@ -411,7 +413,7 @@ static const struct ingenic_cgu_clk_info 
>> x1000_cgu_clocks[] = {
>>
>>      [X1000_CLK_SSIPLL] = {
>>          "ssi_pll", CGU_CLK_MUX | CGU_CLK_DIV,
>> -        .parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL, -1, -1 },
>> +        .parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL },
>>          .mux = { CGU_REG_SSICDR, 31, 1 },
>>          .div = { CGU_REG_SSICDR, 0, 1, 8, 29, 28, 27 },
>>      },
>> @@ -424,13 +426,13 @@ static const struct ingenic_cgu_clk_info 
>> x1000_cgu_clocks[] = {
>>
>>      [X1000_CLK_SSIMUX] = {
>>          "ssi_mux", CGU_CLK_MUX,
>> -        .parents = { X1000_CLK_EXCLK, X1000_CLK_SSIPLL_DIV2, -1, -1 },
>> +        .parents = { X1000_CLK_EXCLK, X1000_CLK_SSIPLL_DIV2 },
>>          .mux = { CGU_REG_SSICDR, 30, 1 },
>>      },
>>
>>      [X1000_CLK_CIM] = {
>>          "cim", CGU_CLK_MUX | CGU_CLK_DIV,
>> -        .parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL, -1, -1 },
>> +        .parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL },
>>          .mux = { CGU_REG_CIMCDR, 31, 1 },
>>          .div = { CGU_REG_CIMCDR, 0, 1, 8, 29, 28, 27 },
>>      },
>> @@ -452,91 +454,91 @@ static const struct ingenic_cgu_clk_info 
>> x1000_cgu_clocks[] = {
>>
>>      [X1000_CLK_EMC] = {
>>          "emc", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_AHB2, -1, -1, -1 },
>> +        .parents = { X1000_CLK_AHB2 },
>>          .gate = { CGU_REG_CLKGR, 0 },
>>      },
>>
>>      [X1000_CLK_EFUSE] = {
>>          "efuse", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_AHB2, -1, -1, -1 },
>> +        .parents = { X1000_CLK_AHB2 },
>>          .gate = { CGU_REG_CLKGR, 1 },
>>      },
>>
>>      [X1000_CLK_SFC] = {
>>          "sfc", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_SSIPLL, -1, -1, -1 },
>> +        .parents = { X1000_CLK_SSIPLL },
>>          .gate = { CGU_REG_CLKGR, 2 },
>>      },
>>
>>      [X1000_CLK_I2C0] = {
>>          "i2c0", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { X1000_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR, 7 },
>>      },
>>
>>      [X1000_CLK_I2C1] = {
>>          "i2c1", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { X1000_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR, 8 },
>>      },
>>
>>      [X1000_CLK_I2C2] = {
>>          "i2c2", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { X1000_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR, 9 },
>>      },
>>
>>      [X1000_CLK_AIC] = {
>>          "aic", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1000_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR, 11 },
>>      },
>>
>>      [X1000_CLK_UART0] = {
>>          "uart0", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1000_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR, 14 },
>>      },
>>
>>      [X1000_CLK_UART1] = {
>>          "uart1", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1000_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR, 15 },
>>      },
>>
>>      [X1000_CLK_UART2] = {
>>          "uart2", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1000_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR, 16 },
>>      },
>>
>>      [X1000_CLK_DMIC] = {
>>          "dmic", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { X1000_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR, 17 },
>>      },
>>
>>      [X1000_CLK_TCU] = {
>>          "tcu", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1000_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR, 18 },
>>      },
>>
>>      [X1000_CLK_SSI] = {
>>          "ssi", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_SSIMUX, -1, -1, -1 },
>> +        .parents = { X1000_CLK_SSIMUX },
>>          .gate = { CGU_REG_CLKGR, 19 },
>>      },
>>
>>      [X1000_CLK_OST] = {
>>          "ost", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1000_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR, 20 },
>>      },
>>
>>      [X1000_CLK_PDMA] = {
>>          "pdma", CGU_CLK_GATE,
>> -        .parents = { X1000_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1000_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR, 21 },
>>      },
>>
>> @@ -566,6 +568,7 @@ static void __init x1000_cgu_init(struct 
>> device_node *np)
>>
>>      ingenic_cgu_register_syscore_ops(cgu);
>>  }
>> +
>>  /*
>>   * CGU has some children devices, this is useful for probing 
>> children devices
>>   * in the case where the device node is compatible with "simple-mfd".
>> diff --git a/drivers/clk/ingenic/x1830-cgu.c 
>> b/drivers/clk/ingenic/x1830-cgu.c
>> index cfb0314..8d6479e 100644
>> --- a/drivers/clk/ingenic/x1830-cgu.c
>> +++ b/drivers/clk/ingenic/x1830-cgu.c
>> @@ -15,42 +15,42 @@
>>  #include "pm.h"
>>
>>  /* CGU register offsets */
>> -#define CGU_REG_CPCCR        0x00
>> -#define CGU_REG_CPPCR        0x0c
>> -#define CGU_REG_APLL        0x10
>> -#define CGU_REG_MPLL        0x14
>> -#define CGU_REG_CLKGR0        0x20
>> -#define CGU_REG_OPCR        0x24
>> -#define CGU_REG_CLKGR1        0x28
>> -#define CGU_REG_DDRCDR        0x2c
>> -#define CGU_REG_USBPCR        0x3c
>> -#define CGU_REG_USBRDT        0x40
>> -#define CGU_REG_USBVBFIL    0x44
>> -#define CGU_REG_USBPCR1        0x48
>> -#define CGU_REG_MACCDR        0x54
>> -#define CGU_REG_EPLL        0x58
>> -#define CGU_REG_I2SCDR        0x60
>> -#define CGU_REG_LPCDR        0x64
>> -#define CGU_REG_MSC0CDR        0x68
>> -#define CGU_REG_I2SCDR1        0x70
>> -#define CGU_REG_SSICDR        0x74
>> -#define CGU_REG_CIMCDR        0x7c
>> -#define CGU_REG_MSC1CDR        0xa4
>> -#define CGU_REG_CMP_INTR    0xb0
>> -#define CGU_REG_CMP_INTRE    0xb4
>> -#define CGU_REG_DRCG        0xd0
>> -#define CGU_REG_CPCSR        0xd4
>> -#define CGU_REG_VPLL        0xe0
>> -#define CGU_REG_MACPHYC        0xe8
>> +#define CGU_REG_CPCCR            0x00
>> +#define CGU_REG_CPPCR            0x0c
>> +#define CGU_REG_APLL            0x10
>> +#define CGU_REG_MPLL            0x14
>> +#define CGU_REG_CLKGR0            0x20
>> +#define CGU_REG_OPCR            0x24
>> +#define CGU_REG_CLKGR1            0x28
>> +#define CGU_REG_DDRCDR            0x2c
>> +#define CGU_REG_USBPCR            0x3c
>> +#define CGU_REG_USBRDT            0x40
>> +#define CGU_REG_USBVBFIL        0x44
>> +#define CGU_REG_USBPCR1            0x48
>> +#define CGU_REG_MACCDR            0x54
>> +#define CGU_REG_EPLL            0x58
>> +#define CGU_REG_I2SCDR            0x60
>> +#define CGU_REG_LPCDR            0x64
>> +#define CGU_REG_MSC0CDR            0x68
>> +#define CGU_REG_I2SCDR1            0x70
>> +#define CGU_REG_SSICDR            0x74
>> +#define CGU_REG_CIMCDR            0x7c
>> +#define CGU_REG_MSC1CDR            0xa4
>> +#define CGU_REG_CMP_INTR        0xb0
>> +#define CGU_REG_CMP_INTRE        0xb4
>> +#define CGU_REG_DRCG            0xd0
>> +#define CGU_REG_CPCSR            0xd4
>> +#define CGU_REG_VPLL            0xe0
>> +#define CGU_REG_MACPHYC            0xe8
>>
>>  /* bits within the OPCR register */
>> -#define OPCR_GATE_USBPHYCLK    BIT(23)
>> -#define OPCR_SPENDN0        BIT(7)
>> -#define OPCR_SPENDN1        BIT(6)
>> +#define OPCR_GATE_USBPHYCLK        BIT(23)
>> +#define OPCR_SPENDN0            BIT(7)
>> +#define OPCR_SPENDN1            BIT(6)
>>
>>  /* bits within the USBPCR register */
>> -#define USBPCR_SIDDQ        BIT(21)
>> -#define USBPCR_OTG_DISABLE    BIT(20)
>> +#define USBPCR_SIDDQ            BIT(21)
>> +#define USBPCR_OTG_DISABLE        BIT(20)
>>
>>  static struct ingenic_cgu *cgu;
>>
>> @@ -295,14 +295,14 @@ static const struct ingenic_cgu_clk_info 
>> x1830_cgu_clocks[] = {
>>
>>      [X1830_CLK_CPU] = {
>>          "cpu", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_CPUMUX, -1, -1, -1 },
>> +        .parents = { X1830_CLK_CPUMUX },
>>          .div = { CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1 },
>>          .gate = { CGU_REG_CLKGR1, 15 },
>>      },
>>
>>      [X1830_CLK_L2CACHE] = {
>>          "l2cache", CGU_CLK_DIV,
>> -        .parents = { X1830_CLK_CPUMUX, -1, -1, -1 },
>> +        .parents = { X1830_CLK_CPUMUX },
>>          .div = { CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1 },
>>      },
>>
>> @@ -321,13 +321,13 @@ static const struct ingenic_cgu_clk_info 
>> x1830_cgu_clocks[] = {
>>
>>      [X1830_CLK_AHB2] = {
>>          "ahb2", CGU_CLK_DIV,
>> -        .parents = { X1830_CLK_AHB2PMUX, -1, -1, -1 },
>> +        .parents = { X1830_CLK_AHB2PMUX },
>>          .div = { CGU_REG_CPCCR, 12, 1, 4, 20, -1, -1 },
>>      },
>>
>>      [X1830_CLK_PCLK] = {
>>          "pclk", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_AHB2PMUX, -1, -1, -1 },
>> +        .parents = { X1830_CLK_AHB2PMUX },
>>          .div = { CGU_REG_CPCCR, 16, 1, 4, 20, -1, -1 },
>>          .gate = { CGU_REG_CLKGR1, 14 },
>>      },
>> @@ -366,14 +366,14 @@ static const struct ingenic_cgu_clk_info 
>> x1830_cgu_clocks[] = {
>>
>>      [X1830_CLK_MSC0] = {
>>          "msc0", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_MSCMUX, -1, -1, -1 },
>> +        .parents = { X1830_CLK_MSCMUX },
>>          .div = { CGU_REG_MSC0CDR, 0, 2, 8, 29, 28, 27 },
>>          .gate = { CGU_REG_CLKGR0, 4 },
>>      },
>>
>>      [X1830_CLK_MSC1] = {
>>          "msc1", CGU_CLK_DIV | CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_MSCMUX, -1, -1, -1 },
>> +        .parents = { X1830_CLK_MSCMUX },
>>          .div = { CGU_REG_MSC1CDR, 0, 2, 8, 29, 28, 27 },
>>          .gate = { CGU_REG_CLKGR0, 5 },
>>      },
>> @@ -394,7 +394,7 @@ static const struct ingenic_cgu_clk_info 
>> x1830_cgu_clocks[] = {
>>
>>      [X1830_CLK_SSIMUX] = {
>>          "ssi_mux", CGU_CLK_MUX,
>> -        .parents = { X1830_CLK_EXCLK, X1830_CLK_SSIPLL_DIV2, -1, -1 },
>> +        .parents = { X1830_CLK_EXCLK, X1830_CLK_SSIPLL_DIV2 },
>>          .mux = { CGU_REG_SSICDR, 29, 1 },
>>      },
>>
>> @@ -423,97 +423,97 @@ static const struct ingenic_cgu_clk_info 
>> x1830_cgu_clocks[] = {
>>
>>      [X1830_CLK_EMC] = {
>>          "emc", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_AHB2, -1, -1, -1 },
>> +        .parents = { X1830_CLK_AHB2 },
>>          .gate = { CGU_REG_CLKGR0, 0 },
>>      },
>>
>>      [X1830_CLK_EFUSE] = {
>>          "efuse", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_AHB2, -1, -1, -1 },
>> +        .parents = { X1830_CLK_AHB2 },
>>          .gate = { CGU_REG_CLKGR0, 1 },
>>      },
>>
>>      [X1830_CLK_OTG] = {
>>          "otg", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 3 },
>>      },
>>
>>      [X1830_CLK_SSI0] = {
>>          "ssi0", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_SSIMUX, -1, -1, -1 },
>> +        .parents = { X1830_CLK_SSIMUX },
>>          .gate = { CGU_REG_CLKGR0, 6 },
>>      },
>>
>>      [X1830_CLK_SMB0] = {
>>          "smb0", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR0, 7 },
>>      },
>>
>>      [X1830_CLK_SMB1] = {
>>          "smb1", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR0, 8 },
>>      },
>>
>>      [X1830_CLK_SMB2] = {
>>          "smb2", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR0, 9 },
>>      },
>>
>>      [X1830_CLK_AIC] = {
>>          "aic", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 11 },
>>      },
>>
>>      [X1830_CLK_DMIC] = {
>>          "dmic", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR0, 12 },
>>      },
>>
>>      [X1830_CLK_UART0] = {
>>          "uart0", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 14 },
>>      },
>>
>>      [X1830_CLK_UART1] = {
>>          "uart1", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 15 },
>>      },
>>
>>      [X1830_CLK_SSI1] = {
>>          "ssi1", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_SSIMUX, -1, -1, -1 },
>> +        .parents = { X1830_CLK_SSIMUX },
>>          .gate = { CGU_REG_CLKGR0, 19 },
>>      },
>>
>>      [X1830_CLK_SFC] = {
>>          "sfc", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_SSIPLL, -1, -1, -1 },
>> +        .parents = { X1830_CLK_SSIPLL },
>>          .gate = { CGU_REG_CLKGR0, 20 },
>>      },
>>
>>      [X1830_CLK_PDMA] = {
>>          "pdma", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 21 },
>>      },
>>
>>      [X1830_CLK_TCU] = {
>>          "tcu", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR0, 30 },
>>      },
>>
>>      [X1830_CLK_DTRNG] = {
>>          "dtrng", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_PCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_PCLK },
>>          .gate = { CGU_REG_CLKGR1, 1 },
>>      },
>>
>> @@ -525,7 +525,7 @@ static const struct ingenic_cgu_clk_info 
>> x1830_cgu_clocks[] = {
>>
>>      [X1830_CLK_OST] = {
>>          "ost", CGU_CLK_GATE,
>> -        .parents = { X1830_CLK_EXCLK, -1, -1, -1 },
>> +        .parents = { X1830_CLK_EXCLK },
>>          .gate = { CGU_REG_CLKGR1, 11 },
>>      },
>>  };
>> @@ -549,6 +549,7 @@ static void __init x1830_cgu_init(struct 
>> device_node *np)
>>
>>      ingenic_cgu_register_syscore_ops(cgu);
>>  }
>> +
>>  /*
>>   * CGU has some children devices, this is useful for probing 
>> children devices
>>   * in the case where the device node is compatible with "simple-mfd".
>> -- 
>> 2.7.4
>>
>
diff mbox series

Patch

diff --git a/drivers/clk/ingenic/jz4725b-cgu.c b/drivers/clk/ingenic/jz4725b-cgu.c
index 5154b0c..77d6979 100644
--- a/drivers/clk/ingenic/jz4725b-cgu.c
+++ b/drivers/clk/ingenic/jz4725b-cgu.c
@@ -17,7 +17,7 @@ 
 
 /* CGU register offsets */
 #define CGU_REG_CPCCR		0x00
-#define CGU_REG_LCR		0x04
+#define CGU_REG_LCR			0x04
 #define CGU_REG_CPPCR		0x10
 #define CGU_REG_CLKGR		0x20
 #define CGU_REG_OPCR		0x24
@@ -28,7 +28,7 @@ 
 #define CGU_REG_CIMCDR		0x78
 
 /* bits within the LCR register */
-#define LCR_SLEEP		BIT(0)
+#define LCR_SLEEP			BIT(0)
 
 static struct ingenic_cgu *cgu;
 
@@ -78,7 +78,7 @@  static const struct ingenic_cgu_clk_info jz4725b_cgu_clocks[] = {
 
 	[JZ4725B_CLK_PLL_HALF] = {
 		"pll half", CGU_CLK_DIV,
-		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_PLL },
 		.div = {
 			CGU_REG_CPCCR, 21, 1, 1, -1, -1, -1, 0,
 			jz4725b_cgu_pll_half_div_table,
@@ -87,7 +87,7 @@  static const struct ingenic_cgu_clk_info jz4725b_cgu_clocks[] = {
 
 	[JZ4725B_CLK_CCLK] = {
 		"cclk", CGU_CLK_DIV,
-		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_PLL },
 		.div = {
 			CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
 			jz4725b_cgu_cpccr_div_table,
@@ -96,7 +96,7 @@  static const struct ingenic_cgu_clk_info jz4725b_cgu_clocks[] = {
 
 	[JZ4725B_CLK_HCLK] = {
 		"hclk", CGU_CLK_DIV,
-		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_PLL },
 		.div = {
 			CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
 			jz4725b_cgu_cpccr_div_table,
@@ -105,7 +105,7 @@  static const struct ingenic_cgu_clk_info jz4725b_cgu_clocks[] = {
 
 	[JZ4725B_CLK_PCLK] = {
 		"pclk", CGU_CLK_DIV,
-		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_PLL },
 		.div = {
 			CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
 			jz4725b_cgu_cpccr_div_table,
@@ -114,7 +114,7 @@  static const struct ingenic_cgu_clk_info jz4725b_cgu_clocks[] = {
 
 	[JZ4725B_CLK_MCLK] = {
 		"mclk", CGU_CLK_DIV,
-		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_PLL },
 		.div = {
 			CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
 			jz4725b_cgu_cpccr_div_table,
@@ -123,7 +123,7 @@  static const struct ingenic_cgu_clk_info jz4725b_cgu_clocks[] = {
 
 	[JZ4725B_CLK_IPU] = {
 		"ipu", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_PLL, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_PLL },
 		.div = {
 			CGU_REG_CPCCR, 16, 1, 4, 22, -1, -1, 0,
 			jz4725b_cgu_cpccr_div_table,
@@ -133,14 +133,14 @@  static const struct ingenic_cgu_clk_info jz4725b_cgu_clocks[] = {
 
 	[JZ4725B_CLK_LCD] = {
 		"lcd", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_PLL_HALF, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_PLL_HALF },
 		.div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR, 9 },
 	},
 
 	[JZ4725B_CLK_I2S] = {
 		"i2s", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF, -1, -1 },
+		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF },
 		.mux = { CGU_REG_CPCCR, 31, 1 },
 		.div = { CGU_REG_I2SCDR, 0, 1, 9, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR, 6 },
@@ -148,7 +148,7 @@  static const struct ingenic_cgu_clk_info jz4725b_cgu_clocks[] = {
 
 	[JZ4725B_CLK_SPI] = {
 		"spi", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL, -1, -1 },
+		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL },
 		.mux = { CGU_REG_SSICDR, 31, 1 },
 		.div = { CGU_REG_SSICDR, 0, 1, 4, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR, 4 },
@@ -156,13 +156,13 @@  static const struct ingenic_cgu_clk_info jz4725b_cgu_clocks[] = {
 
 	[JZ4725B_CLK_MMC_MUX] = {
 		"mmc_mux", CGU_CLK_DIV,
-		.parents = { JZ4725B_CLK_PLL_HALF, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_PLL_HALF },
 		.div = { CGU_REG_MSCCDR, 0, 1, 5, -1, -1, -1 },
 	},
 
 	[JZ4725B_CLK_UDC] = {
 		"udc", CGU_CLK_MUX | CGU_CLK_DIV,
-		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF, -1, -1 },
+		.parents = { JZ4725B_CLK_EXT, JZ4725B_CLK_PLL_HALF },
 		.mux = { CGU_REG_CPCCR, 29, 1 },
 		.div = { CGU_REG_CPCCR, 23, 1, 6, -1, -1, -1 },
 	},
@@ -171,55 +171,55 @@  static const struct ingenic_cgu_clk_info jz4725b_cgu_clocks[] = {
 
 	[JZ4725B_CLK_UART] = {
 		"uart", CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_EXT },
 		.gate = { CGU_REG_CLKGR, 0 },
 	},
 
 	[JZ4725B_CLK_DMA] = {
 		"dma", CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_PCLK, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR, 12 },
 	},
 
 	[JZ4725B_CLK_ADC] = {
 		"adc", CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_EXT },
 		.gate = { CGU_REG_CLKGR, 7 },
 	},
 
 	[JZ4725B_CLK_I2C] = {
 		"i2c", CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_EXT },
 		.gate = { CGU_REG_CLKGR, 3 },
 	},
 
 	[JZ4725B_CLK_AIC] = {
 		"aic", CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_EXT },
 		.gate = { CGU_REG_CLKGR, 5 },
 	},
 
 	[JZ4725B_CLK_MMC0] = {
 		"mmc0", CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_MMC_MUX, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_MMC_MUX },
 		.gate = { CGU_REG_CLKGR, 6 },
 	},
 
 	[JZ4725B_CLK_MMC1] = {
 		"mmc1", CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_MMC_MUX, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_MMC_MUX },
 		.gate = { CGU_REG_CLKGR, 16 },
 	},
 
 	[JZ4725B_CLK_BCH] = {
 		"bch", CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_MCLK/* not sure */, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_MCLK/* not sure */ },
 		.gate = { CGU_REG_CLKGR, 11 },
 	},
 
 	[JZ4725B_CLK_TCU] = {
 		"tcu", CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_EXT/* not sure */, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_EXT/* not sure */ },
 		.gate = { CGU_REG_CLKGR, 1 },
 	},
 
@@ -233,13 +233,13 @@  static const struct ingenic_cgu_clk_info jz4725b_cgu_clocks[] = {
 
 	[JZ4725B_CLK_RTC] = {
 		"rtc", CGU_CLK_MUX,
-		.parents = { JZ4725B_CLK_EXT512, JZ4725B_CLK_OSC32K, -1, -1 },
+		.parents = { JZ4725B_CLK_EXT512, JZ4725B_CLK_OSC32K },
 		.mux = { CGU_REG_OPCR, 2, 1},
 	},
 
 	[JZ4725B_CLK_UDC_PHY] = {
 		"udc_phy", CGU_CLK_GATE,
-		.parents = { JZ4725B_CLK_EXT, -1, -1, -1 },
+		.parents = { JZ4725B_CLK_EXT },
 		.gate = { CGU_REG_OPCR, 6, true },
 	},
 };
@@ -261,4 +261,5 @@  static void __init jz4725b_cgu_init(struct device_node *np)
 
 	ingenic_cgu_register_syscore_ops(cgu);
 }
+
 CLK_OF_DECLARE_DRIVER(jz4725b_cgu, "ingenic,jz4725b-cgu", jz4725b_cgu_init);
diff --git a/drivers/clk/ingenic/jz4740-cgu.c b/drivers/clk/ingenic/jz4740-cgu.c
index cd878f0..4ec7699 100644
--- a/drivers/clk/ingenic/jz4740-cgu.c
+++ b/drivers/clk/ingenic/jz4740-cgu.c
@@ -18,10 +18,10 @@ 
 
 /* CGU register offsets */
 #define CGU_REG_CPCCR		0x00
-#define CGU_REG_LCR		0x04
+#define CGU_REG_LCR			0x04
 #define CGU_REG_CPPCR		0x10
 #define CGU_REG_CLKGR		0x20
-#define CGU_REG_SCR		0x24
+#define CGU_REG_SCR			0x24
 #define CGU_REG_I2SCDR		0x60
 #define CGU_REG_LPCDR		0x64
 #define CGU_REG_MSCCDR		0x68
@@ -40,10 +40,10 @@ 
 #define PLLCTL_ENABLE		(1 << 8)
 
 /* bits within the LCR register */
-#define LCR_SLEEP		(1 << 0)
+#define LCR_SLEEP			(1 << 0)
 
 /* bits within the CLKGR register */
-#define CLKGR_UDC		(1 << 11)
+#define CLKGR_UDC			(1 << 11)
 
 static struct ingenic_cgu *cgu;
 
@@ -93,7 +93,7 @@  static const struct ingenic_cgu_clk_info jz4740_cgu_clocks[] = {
 
 	[JZ4740_CLK_PLL_HALF] = {
 		"pll half", CGU_CLK_DIV,
-		.parents = { JZ4740_CLK_PLL, -1, -1, -1 },
+		.parents = { JZ4740_CLK_PLL },
 		.div = {
 			CGU_REG_CPCCR, 21, 1, 1, -1, -1, -1, 0,
 			jz4740_cgu_pll_half_div_table,
@@ -102,7 +102,7 @@  static const struct ingenic_cgu_clk_info jz4740_cgu_clocks[] = {
 
 	[JZ4740_CLK_CCLK] = {
 		"cclk", CGU_CLK_DIV,
-		.parents = { JZ4740_CLK_PLL, -1, -1, -1 },
+		.parents = { JZ4740_CLK_PLL },
 		.div = {
 			CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
 			jz4740_cgu_cpccr_div_table,
@@ -111,7 +111,7 @@  static const struct ingenic_cgu_clk_info jz4740_cgu_clocks[] = {
 
 	[JZ4740_CLK_HCLK] = {
 		"hclk", CGU_CLK_DIV,
-		.parents = { JZ4740_CLK_PLL, -1, -1, -1 },
+		.parents = { JZ4740_CLK_PLL },
 		.div = {
 			CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
 			jz4740_cgu_cpccr_div_table,
@@ -120,7 +120,7 @@  static const struct ingenic_cgu_clk_info jz4740_cgu_clocks[] = {
 
 	[JZ4740_CLK_PCLK] = {
 		"pclk", CGU_CLK_DIV,
-		.parents = { JZ4740_CLK_PLL, -1, -1, -1 },
+		.parents = { JZ4740_CLK_PLL },
 		.div = {
 			CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
 			jz4740_cgu_cpccr_div_table,
@@ -129,7 +129,7 @@  static const struct ingenic_cgu_clk_info jz4740_cgu_clocks[] = {
 
 	[JZ4740_CLK_MCLK] = {
 		"mclk", CGU_CLK_DIV,
-		.parents = { JZ4740_CLK_PLL, -1, -1, -1 },
+		.parents = { JZ4740_CLK_PLL },
 		.div = {
 			CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
 			jz4740_cgu_cpccr_div_table,
@@ -138,7 +138,7 @@  static const struct ingenic_cgu_clk_info jz4740_cgu_clocks[] = {
 
 	[JZ4740_CLK_LCD] = {
 		"lcd", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
+		.parents = { JZ4740_CLK_PLL_HALF },
 		.div = {
 			CGU_REG_CPCCR, 16, 1, 5, 22, -1, -1, 0,
 			jz4740_cgu_cpccr_div_table,
@@ -148,13 +148,13 @@  static const struct ingenic_cgu_clk_info jz4740_cgu_clocks[] = {
 
 	[JZ4740_CLK_LCD_PCLK] = {
 		"lcd_pclk", CGU_CLK_DIV,
-		.parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
+		.parents = { JZ4740_CLK_PLL_HALF },
 		.div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
 	},
 
 	[JZ4740_CLK_I2S] = {
 		"i2s", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF, -1, -1 },
+		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF },
 		.mux = { CGU_REG_CPCCR, 31, 1 },
 		.div = { CGU_REG_I2SCDR, 0, 1, 9, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR, 6 },
@@ -162,7 +162,7 @@  static const struct ingenic_cgu_clk_info jz4740_cgu_clocks[] = {
 
 	[JZ4740_CLK_SPI] = {
 		"spi", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL, -1, -1 },
+		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL },
 		.mux = { CGU_REG_SSICDR, 31, 1 },
 		.div = { CGU_REG_SSICDR, 0, 1, 4, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR, 4 },
@@ -170,21 +170,21 @@  static const struct ingenic_cgu_clk_info jz4740_cgu_clocks[] = {
 
 	[JZ4740_CLK_MMC] = {
 		"mmc", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
+		.parents = { JZ4740_CLK_PLL_HALF },
 		.div = { CGU_REG_MSCCDR, 0, 1, 5, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR, 7 },
 	},
 
 	[JZ4740_CLK_UHC] = {
 		"uhc", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_PLL_HALF, -1, -1, -1 },
+		.parents = { JZ4740_CLK_PLL_HALF },
 		.div = { CGU_REG_UHCCDR, 0, 1, 4, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR, 14 },
 	},
 
 	[JZ4740_CLK_UDC] = {
 		"udc", CGU_CLK_MUX | CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF, -1, -1 },
+		.parents = { JZ4740_CLK_EXT, JZ4740_CLK_PLL_HALF },
 		.mux = { CGU_REG_CPCCR, 29, 1 },
 		.div = { CGU_REG_CPCCR, 23, 1, 6, -1, -1, -1 },
 		.gate = { CGU_REG_SCR, 6, true },
@@ -194,49 +194,49 @@  static const struct ingenic_cgu_clk_info jz4740_cgu_clocks[] = {
 
 	[JZ4740_CLK_UART0] = {
 		"uart0", CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
+		.parents = { JZ4740_CLK_EXT },
 		.gate = { CGU_REG_CLKGR, 0 },
 	},
 
 	[JZ4740_CLK_UART1] = {
 		"uart1", CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
+		.parents = { JZ4740_CLK_EXT },
 		.gate = { CGU_REG_CLKGR, 15 },
 	},
 
 	[JZ4740_CLK_DMA] = {
 		"dma", CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_PCLK, -1, -1, -1 },
+		.parents = { JZ4740_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR, 12 },
 	},
 
 	[JZ4740_CLK_IPU] = {
 		"ipu", CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_PCLK, -1, -1, -1 },
+		.parents = { JZ4740_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR, 13 },
 	},
 
 	[JZ4740_CLK_ADC] = {
 		"adc", CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
+		.parents = { JZ4740_CLK_EXT },
 		.gate = { CGU_REG_CLKGR, 8 },
 	},
 
 	[JZ4740_CLK_I2C] = {
 		"i2c", CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
+		.parents = { JZ4740_CLK_EXT },
 		.gate = { CGU_REG_CLKGR, 3 },
 	},
 
 	[JZ4740_CLK_AIC] = {
 		"aic", CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
+		.parents = { JZ4740_CLK_EXT },
 		.gate = { CGU_REG_CLKGR, 5 },
 	},
 
 	[JZ4740_CLK_TCU] = {
 		"tcu", CGU_CLK_GATE,
-		.parents = { JZ4740_CLK_EXT, -1, -1, -1 },
+		.parents = { JZ4740_CLK_EXT },
 		.gate = { CGU_REG_CLKGR, 1 },
 	},
 };
@@ -258,4 +258,5 @@  static void __init jz4740_cgu_init(struct device_node *np)
 
 	ingenic_cgu_register_syscore_ops(cgu);
 }
+
 CLK_OF_DECLARE_DRIVER(jz4740_cgu, "ingenic,jz4740-cgu", jz4740_cgu_init);
diff --git a/drivers/clk/ingenic/jz4760-cgu.c b/drivers/clk/ingenic/jz4760-cgu.c
index 1448379..9237429 100644
--- a/drivers/clk/ingenic/jz4760-cgu.c
+++ b/drivers/clk/ingenic/jz4760-cgu.c
@@ -23,7 +23,7 @@ 
  * CPM registers offset address definition
  */
 #define CGU_REG_CPCCR		0x00
-#define CGU_REG_LCR		0x04
+#define CGU_REG_LCR			0x04
 #define CGU_REG_CPPCR0		0x10
 #define CGU_REG_CLKGR0		0x20
 #define CGU_REG_OPCR		0x24
@@ -93,7 +93,7 @@  static const struct ingenic_cgu_clk_info jz4760_cgu_clocks[] = {
 
 	[JZ4760_CLK_PLL0] = {
 		"pll0", CGU_CLK_PLL,
-		.parents = { JZ4760_CLK_EXT },
+		.parents = { JZ4760_CLK_EXT, -1, -1, -1 },
 		.pll = {
 			.reg = CGU_REG_CPPCR0,
 			.rate_multiplier = 1,
@@ -118,7 +118,7 @@  static const struct ingenic_cgu_clk_info jz4760_cgu_clocks[] = {
 	[JZ4760_CLK_PLL1] = {
 		/* TODO: PLL1 can depend on PLL0 */
 		"pll1", CGU_CLK_PLL,
-		.parents = { JZ4760_CLK_EXT },
+		.parents = { JZ4760_CLK_EXT, -1, -1, -1 },
 		.pll = {
 			.reg = CGU_REG_CPPCR1,
 			.rate_multiplier = 1,
@@ -143,47 +143,52 @@  static const struct ingenic_cgu_clk_info jz4760_cgu_clocks[] = {
 
 	[JZ4760_CLK_CCLK] = {
 		"cclk", CGU_CLK_DIV,
-		.parents = { JZ4760_CLK_PLL0, },
+		.parents = { JZ4760_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
 			jz4760_cgu_cpccr_div_table,
 		},
 	},
+
 	[JZ4760_CLK_HCLK] = {
 		"hclk", CGU_CLK_DIV,
-		.parents = { JZ4760_CLK_PLL0, },
+		.parents = { JZ4760_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
 			jz4760_cgu_cpccr_div_table,
 		},
 	},
+
 	[JZ4760_CLK_SCLK] = {
 		"sclk", CGU_CLK_DIV,
-		.parents = { JZ4760_CLK_PLL0, },
+		.parents = { JZ4760_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 24, 1, 4, 22, -1, -1, 0,
 			jz4760_cgu_cpccr_div_table,
 		},
 	},
+
 	[JZ4760_CLK_H2CLK] = {
 		"h2clk", CGU_CLK_DIV,
-		.parents = { JZ4760_CLK_PLL0, },
+		.parents = { JZ4760_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 16, 1, 4, 22, -1, -1, 0,
 			jz4760_cgu_cpccr_div_table,
 		},
 	},
+
 	[JZ4760_CLK_MCLK] = {
 		"mclk", CGU_CLK_DIV,
-		.parents = { JZ4760_CLK_PLL0, },
+		.parents = { JZ4760_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
 			jz4760_cgu_cpccr_div_table,
 		},
 	},
+
 	[JZ4760_CLK_PCLK] = {
 		"pclk", CGU_CLK_DIV,
-		.parents = { JZ4760_CLK_PLL0, },
+		.parents = { JZ4760_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
 			jz4760_cgu_cpccr_div_table,
@@ -205,39 +210,44 @@  static const struct ingenic_cgu_clk_info jz4760_cgu_clocks[] = {
 
 	[JZ4760_CLK_UHC] = {
 		"uhc", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
+		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
 		.mux = { CGU_REG_UHCCDR, 31, 1 },
 		.div = { CGU_REG_UHCCDR, 0, 1, 4, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR0, 24 },
 	},
+
 	[JZ4760_CLK_GPU] = {
 		"gpu", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
+		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
 		.mux = { CGU_REG_GPUCDR, 31, 1 },
 		.div = { CGU_REG_GPUCDR, 0, 1, 3, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR1, 9 },
 	},
+
 	[JZ4760_CLK_LPCLK_DIV] = {
 		"lpclk_div", CGU_CLK_DIV | CGU_CLK_MUX,
-		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
+		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
 		.mux = { CGU_REG_LPCDR, 29, 1 },
 		.div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
 	},
+
 	[JZ4760_CLK_TVE] = {
 		"tve", CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_EXT, },
+		.parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_EXT },
 		.mux = { CGU_REG_LPCDR, 31, 1 },
 		.gate = { CGU_REG_CLKGR0, 27 },
 	},
+
 	[JZ4760_CLK_LPCLK] = {
 		"lpclk", CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_TVE, },
+		.parents = { JZ4760_CLK_LPCLK_DIV, JZ4760_CLK_TVE },
 		.mux = { CGU_REG_LPCDR, 30, 1 },
 		.gate = { CGU_REG_CLKGR0, 28 },
 	},
+
 	[JZ4760_CLK_GPS] = {
 		"gps", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1, },
+		.parents = { JZ4760_CLK_PLL0_HALF, JZ4760_CLK_PLL1 },
 		.mux = { CGU_REG_GPSCDR, 31, 1 },
 		.div = { CGU_REG_GPSCDR, 0, 1, 4, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR0, 22 },
@@ -253,6 +263,7 @@  static const struct ingenic_cgu_clk_info jz4760_cgu_clocks[] = {
 		.div = { CGU_REG_PCMCDR, 0, 1, 9, -1, -1, -1, BIT(0) },
 		.gate = { CGU_REG_CLKGR1, 8 },
 	},
+
 	[JZ4760_CLK_I2S] = {
 		"i2s", CGU_CLK_DIV | CGU_CLK_MUX,
 		.parents = { JZ4760_CLK_EXT, -1,
@@ -260,6 +271,7 @@  static const struct ingenic_cgu_clk_info jz4760_cgu_clocks[] = {
 		.mux = { CGU_REG_I2SCDR, 30, 2 },
 		.div = { CGU_REG_I2SCDR, 0, 1, 9, -1, -1, -1, BIT(0) },
 	},
+
 	[JZ4760_CLK_OTG] = {
 		"usb", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
 		.parents = { JZ4760_CLK_EXT, -1,
@@ -272,13 +284,14 @@  static const struct ingenic_cgu_clk_info jz4760_cgu_clocks[] = {
 	/* Those divided clocks can connect to EXT or PLL0 */
 	[JZ4760_CLK_MMC_MUX] = {
 		"mmc_mux", CGU_CLK_MUX | CGU_CLK_DIV,
-		.parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF, },
+		.parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF },
 		.mux = { CGU_REG_MSCCDR, 31, 1 },
 		.div = { CGU_REG_MSCCDR, 0, 1, 6, -1, -1, -1, BIT(0) },
 	},
+
 	[JZ4760_CLK_SSI_MUX] = {
 		"ssi_mux", CGU_CLK_DIV | CGU_CLK_MUX,
-		.parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF, },
+		.parents = { JZ4760_CLK_EXT, JZ4760_CLK_PLL0_HALF },
 		.mux = { CGU_REG_SSICDR, 31, 1 },
 		.div = { CGU_REG_SSICDR, 0, 1, 6, -1, -1, -1, BIT(0) },
 	},
@@ -295,94 +308,112 @@  static const struct ingenic_cgu_clk_info jz4760_cgu_clocks[] = {
 
 	[JZ4760_CLK_SSI0] = {
 		"ssi0", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_SSI_MUX, },
+		.parents = { JZ4760_CLK_SSI_MUX },
 		.gate = { CGU_REG_CLKGR0, 4 },
 	},
+
 	[JZ4760_CLK_SSI1] = {
 		"ssi1", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_SSI_MUX, },
+		.parents = { JZ4760_CLK_SSI_MUX },
 		.gate = { CGU_REG_CLKGR0, 19 },
 	},
+
 	[JZ4760_CLK_SSI2] = {
 		"ssi2", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_SSI_MUX, },
+		.parents = { JZ4760_CLK_SSI_MUX },
 		.gate = { CGU_REG_CLKGR0, 20 },
 	},
+
 	[JZ4760_CLK_DMA] = {
 		"dma", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_H2CLK, },
+		.parents = { JZ4760_CLK_H2CLK },
 		.gate = { CGU_REG_CLKGR0, 21 },
 	},
+
 	[JZ4760_CLK_I2C0] = {
 		"i2c0", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_EXT, },
+		.parents = { JZ4760_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 5 },
 	},
+
 	[JZ4760_CLK_I2C1] = {
 		"i2c1", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_EXT, },
+		.parents = { JZ4760_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 6 },
 	},
+
 	[JZ4760_CLK_UART0] = {
 		"uart0", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_EXT, },
+		.parents = { JZ4760_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 15 },
 	},
+
 	[JZ4760_CLK_UART1] = {
 		"uart1", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_EXT, },
+		.parents = { JZ4760_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 16 },
 	},
+
 	[JZ4760_CLK_UART2] = {
 		"uart2", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_EXT, },
+		.parents = { JZ4760_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 17 },
 	},
+
 	[JZ4760_CLK_UART3] = {
 		"uart3", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_EXT, },
+		.parents = { JZ4760_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 18 },
 	},
+
 	[JZ4760_CLK_IPU] = {
 		"ipu", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_HCLK, },
+		.parents = { JZ4760_CLK_HCLK },
 		.gate = { CGU_REG_CLKGR0, 29 },
 	},
+
 	[JZ4760_CLK_ADC] = {
 		"adc", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_EXT, },
+		.parents = { JZ4760_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 14 },
 	},
+
 	[JZ4760_CLK_AIC] = {
 		"aic", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_EXT, },
+		.parents = { JZ4760_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 8 },
 	},
+
 	[JZ4760_CLK_VPU] = {
 		"vpu", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_HCLK, },
+		.parents = { JZ4760_CLK_HCLK },
 		.gate = { CGU_REG_LCR, 30, false, 150 },
 	},
+
 	[JZ4760_CLK_MMC0] = {
 		"mmc0", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_MMC_MUX, },
+		.parents = { JZ4760_CLK_MMC_MUX },
 		.gate = { CGU_REG_CLKGR0, 3 },
 	},
+
 	[JZ4760_CLK_MMC1] = {
 		"mmc1", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_MMC_MUX, },
+		.parents = { JZ4760_CLK_MMC_MUX },
 		.gate = { CGU_REG_CLKGR0, 11 },
 	},
+
 	[JZ4760_CLK_MMC2] = {
 		"mmc2", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_MMC_MUX, },
+		.parents = { JZ4760_CLK_MMC_MUX },
 		.gate = { CGU_REG_CLKGR0, 12 },
 	},
+
 	[JZ4760_CLK_UHC_PHY] = {
 		"uhc_phy", CGU_CLK_GATE,
-		.parents = { JZ4760_CLK_UHC, },
+		.parents = { JZ4760_CLK_UHC },
 		.gate = { CGU_REG_OPCR, 5 },
 	},
+
 	[JZ4760_CLK_OTG_PHY] = {
 		"usb_phy", CGU_CLK_GATE,
 		.parents = { JZ4760_CLK_OTG },
@@ -395,10 +426,11 @@  static const struct ingenic_cgu_clk_info jz4760_cgu_clocks[] = {
 		.parents = { JZ4760_CLK_EXT },
 		.fixdiv = { 512 },
 	},
+
 	[JZ4760_CLK_RTC] = {
 		"rtc", CGU_CLK_MUX,
-		.parents = { JZ4760_CLK_EXT512, JZ4760_CLK_OSC32K, },
-		.mux = { CGU_REG_OPCR, 2, 1},
+		.parents = { JZ4760_CLK_EXT512, JZ4760_CLK_OSC32K },
+		.mux = { CGU_REG_OPCR, 2, 1 },
 	},
 };
 
diff --git a/drivers/clk/ingenic/jz4770-cgu.c b/drivers/clk/ingenic/jz4770-cgu.c
index 2321742..315caa0 100644
--- a/drivers/clk/ingenic/jz4770-cgu.c
+++ b/drivers/clk/ingenic/jz4770-cgu.c
@@ -19,7 +19,7 @@ 
  * CPM registers offset address definition
  */
 #define CGU_REG_CPCCR		0x00
-#define CGU_REG_LCR		0x04
+#define CGU_REG_LCR			0x04
 #define CGU_REG_CPPCR0		0x10
 #define CGU_REG_CLKGR0		0x20
 #define CGU_REG_OPCR		0x24
@@ -41,7 +41,7 @@ 
 #define CGU_REG_BCHCDR		0xAC
 
 /* bits within the OPCR register */
-#define OPCR_SPENDH		BIT(5)		/* UHC PHY suspend */
+#define OPCR_SPENDH			BIT(5)		/* UHC PHY suspend */
 
 /* bits within the USBPCR1 register */
 #define USBPCR1_UHC_POWER	BIT(5)		/* UHC PHY power down */
@@ -55,6 +55,7 @@  static int jz4770_uhc_phy_enable(struct clk_hw *hw)
 
 	writel(readl(reg_opcr) & ~OPCR_SPENDH, reg_opcr);
 	writel(readl(reg_usbpcr1) | USBPCR1_UHC_POWER, reg_usbpcr1);
+
 	return 0;
 }
 
@@ -101,7 +102,7 @@  static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
 
 	[JZ4770_CLK_PLL0] = {
 		"pll0", CGU_CLK_PLL,
-		.parents = { JZ4770_CLK_EXT },
+		.parents = { JZ4770_CLK_EXT, -1, -1, -1 },
 		.pll = {
 			.reg = CGU_REG_CPPCR0,
 			.rate_multiplier = 1,
@@ -125,7 +126,7 @@  static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
 	[JZ4770_CLK_PLL1] = {
 		/* TODO: PLL1 can depend on PLL0 */
 		"pll1", CGU_CLK_PLL,
-		.parents = { JZ4770_CLK_EXT },
+		.parents = { JZ4770_CLK_EXT, -1, -1, -1 },
 		.pll = {
 			.reg = CGU_REG_CPPCR1,
 			.rate_multiplier = 1,
@@ -149,7 +150,7 @@  static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
 
 	[JZ4770_CLK_CCLK] = {
 		"cclk", CGU_CLK_DIV,
-		.parents = { JZ4770_CLK_PLL0, },
+		.parents = { JZ4770_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1, 0,
 			jz4770_cgu_cpccr_div_table,
@@ -157,7 +158,7 @@  static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
 	},
 	[JZ4770_CLK_H0CLK] = {
 		"h0clk", CGU_CLK_DIV,
-		.parents = { JZ4770_CLK_PLL0, },
+		.parents = { JZ4770_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1, 0,
 			jz4770_cgu_cpccr_div_table,
@@ -165,7 +166,7 @@  static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
 	},
 	[JZ4770_CLK_H1CLK] = {
 		"h1clk", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_PLL0, },
+		.parents = { JZ4770_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 24, 1, 4, 22, -1, -1, 0,
 			jz4770_cgu_cpccr_div_table,
@@ -174,7 +175,7 @@  static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
 	},
 	[JZ4770_CLK_H2CLK] = {
 		"h2clk", CGU_CLK_DIV,
-		.parents = { JZ4770_CLK_PLL0, },
+		.parents = { JZ4770_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 16, 1, 4, 22, -1, -1, 0,
 			jz4770_cgu_cpccr_div_table,
@@ -182,7 +183,7 @@  static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
 	},
 	[JZ4770_CLK_C1CLK] = {
 		"c1clk", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_PLL0, },
+		.parents = { JZ4770_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1, 0,
 			jz4770_cgu_cpccr_div_table,
@@ -191,7 +192,7 @@  static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
 	},
 	[JZ4770_CLK_PCLK] = {
 		"pclk", CGU_CLK_DIV,
-		.parents = { JZ4770_CLK_PLL0, },
+		.parents = { JZ4770_CLK_PLL0 },
 		.div = {
 			CGU_REG_CPCCR, 8, 1, 4, 22, -1, -1, 0,
 			jz4770_cgu_cpccr_div_table,
@@ -202,63 +203,63 @@  static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
 
 	[JZ4770_CLK_MMC0_MUX] = {
 		"mmc0_mux", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
+		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
 		.mux = { CGU_REG_MSC0CDR, 30, 1 },
 		.div = { CGU_REG_MSC0CDR, 0, 1, 7, -1, -1, 31 },
 		.gate = { CGU_REG_MSC0CDR, 31 },
 	},
 	[JZ4770_CLK_MMC1_MUX] = {
 		"mmc1_mux", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
+		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
 		.mux = { CGU_REG_MSC1CDR, 30, 1 },
 		.div = { CGU_REG_MSC1CDR, 0, 1, 7, -1, -1, 31 },
 		.gate = { CGU_REG_MSC1CDR, 31 },
 	},
 	[JZ4770_CLK_MMC2_MUX] = {
 		"mmc2_mux", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
+		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
 		.mux = { CGU_REG_MSC2CDR, 30, 1 },
 		.div = { CGU_REG_MSC2CDR, 0, 1, 7, -1, -1, 31 },
 		.gate = { CGU_REG_MSC2CDR, 31 },
 	},
 	[JZ4770_CLK_CIM] = {
 		"cim", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
+		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
 		.mux = { CGU_REG_CIMCDR, 31, 1 },
 		.div = { CGU_REG_CIMCDR, 0, 1, 8, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR0, 26 },
 	},
 	[JZ4770_CLK_UHC] = {
 		"uhc", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
+		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
 		.mux = { CGU_REG_UHCCDR, 29, 1 },
 		.div = { CGU_REG_UHCCDR, 0, 1, 4, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR0, 24 },
 	},
 	[JZ4770_CLK_GPU] = {
 		"gpu", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, -1 },
+		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
 		.mux = { CGU_REG_GPUCDR, 31, 1 },
 		.div = { CGU_REG_GPUCDR, 0, 1, 3, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR1, 9 },
 	},
 	[JZ4770_CLK_BCH] = {
 		"bch", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
+		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
 		.mux = { CGU_REG_BCHCDR, 31, 1 },
 		.div = { CGU_REG_BCHCDR, 0, 1, 3, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR0, 1 },
 	},
 	[JZ4770_CLK_LPCLK_MUX] = {
 		"lpclk", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
+		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
 		.mux = { CGU_REG_LPCDR, 29, 1 },
 		.div = { CGU_REG_LPCDR, 0, 1, 11, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR0, 28 },
 	},
 	[JZ4770_CLK_GPS] = {
 		"gps", CGU_CLK_DIV | CGU_CLK_GATE | CGU_CLK_MUX,
-		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1, },
+		.parents = { JZ4770_CLK_PLL0, JZ4770_CLK_PLL1 },
 		.mux = { CGU_REG_GPSCDR, 31, 1 },
 		.div = { CGU_REG_GPSCDR, 0, 1, 4, -1, -1, -1 },
 		.gate = { CGU_REG_CLKGR0, 22 },
@@ -301,107 +302,107 @@  static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
 
 	[JZ4770_CLK_SSI0] = {
 		"ssi0", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_SSI_MUX, },
+		.parents = { JZ4770_CLK_SSI_MUX },
 		.gate = { CGU_REG_CLKGR0, 4 },
 	},
 	[JZ4770_CLK_SSI1] = {
 		"ssi1", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_SSI_MUX, },
+		.parents = { JZ4770_CLK_SSI_MUX },
 		.gate = { CGU_REG_CLKGR0, 19 },
 	},
 	[JZ4770_CLK_SSI2] = {
 		"ssi2", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_SSI_MUX, },
+		.parents = { JZ4770_CLK_SSI_MUX },
 		.gate = { CGU_REG_CLKGR0, 20 },
 	},
 	[JZ4770_CLK_PCM0] = {
 		"pcm0", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_PCM_MUX, },
+		.parents = { JZ4770_CLK_PCM_MUX },
 		.gate = { CGU_REG_CLKGR1, 8 },
 	},
 	[JZ4770_CLK_PCM1] = {
 		"pcm1", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_PCM_MUX, },
+		.parents = { JZ4770_CLK_PCM_MUX },
 		.gate = { CGU_REG_CLKGR1, 10 },
 	},
 	[JZ4770_CLK_DMA] = {
 		"dma", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_H2CLK, },
+		.parents = { JZ4770_CLK_H2CLK },
 		.gate = { CGU_REG_CLKGR0, 21 },
 	},
 	[JZ4770_CLK_I2C0] = {
 		"i2c0", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_EXT, },
+		.parents = { JZ4770_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 5 },
 	},
 	[JZ4770_CLK_I2C1] = {
 		"i2c1", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_EXT, },
+		.parents = { JZ4770_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 6 },
 	},
 	[JZ4770_CLK_I2C2] = {
 		"i2c2", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_EXT, },
+		.parents = { JZ4770_CLK_EXT },
 		.gate = { CGU_REG_CLKGR1, 15 },
 	},
 	[JZ4770_CLK_UART0] = {
 		"uart0", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_EXT, },
+		.parents = { JZ4770_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 15 },
 	},
 	[JZ4770_CLK_UART1] = {
 		"uart1", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_EXT, },
+		.parents = { JZ4770_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 16 },
 	},
 	[JZ4770_CLK_UART2] = {
 		"uart2", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_EXT, },
+		.parents = { JZ4770_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 17 },
 	},
 	[JZ4770_CLK_UART3] = {
 		"uart3", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_EXT, },
+		.parents = { JZ4770_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 18 },
 	},
 	[JZ4770_CLK_IPU] = {
 		"ipu", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_H0CLK, },
+		.parents = { JZ4770_CLK_H0CLK },
 		.gate = { CGU_REG_CLKGR0, 29 },
 	},
 	[JZ4770_CLK_ADC] = {
 		"adc", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_EXT, },
+		.parents = { JZ4770_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 14 },
 	},
 	[JZ4770_CLK_AIC] = {
 		"aic", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_EXT, },
+		.parents = { JZ4770_CLK_EXT },
 		.gate = { CGU_REG_CLKGR0, 8 },
 	},
 	[JZ4770_CLK_AUX] = {
 		"aux", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_C1CLK, },
+		.parents = { JZ4770_CLK_C1CLK },
 		.gate = { CGU_REG_CLKGR1, 14 },
 	},
 	[JZ4770_CLK_VPU] = {
 		"vpu", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_H1CLK, },
+		.parents = { JZ4770_CLK_H1CLK },
 		.gate = { CGU_REG_LCR, 30, false, 150 },
 	},
 	[JZ4770_CLK_MMC0] = {
 		"mmc0", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_MMC0_MUX, },
+		.parents = { JZ4770_CLK_MMC0_MUX },
 		.gate = { CGU_REG_CLKGR0, 3 },
 	},
 	[JZ4770_CLK_MMC1] = {
 		"mmc1", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_MMC1_MUX, },
+		.parents = { JZ4770_CLK_MMC1_MUX },
 		.gate = { CGU_REG_CLKGR0, 11 },
 	},
 	[JZ4770_CLK_MMC2] = {
 		"mmc2", CGU_CLK_GATE,
-		.parents = { JZ4770_CLK_MMC2_MUX, },
+		.parents = { JZ4770_CLK_MMC2_MUX },
 		.gate = { CGU_REG_CLKGR0, 12 },
 	},
 	[JZ4770_CLK_OTG_PHY] = {
@@ -426,7 +427,7 @@  static const struct ingenic_cgu_clk_info jz4770_cgu_clocks[] = {
 
 	[JZ4770_CLK_RTC] = {
 		"rtc", CGU_CLK_MUX,
-		.parents = { JZ4770_CLK_EXT512, JZ4770_CLK_OSC32K, },
+		.parents = { JZ4770_CLK_EXT512, JZ4770_CLK_OSC32K },
 		.mux = { CGU_REG_OPCR, 2, 1},
 	},
 };
diff --git a/drivers/clk/ingenic/jz4780-cgu.c b/drivers/clk/ingenic/jz4780-cgu.c
index dcca74e..267deb4 100644
--- a/drivers/clk/ingenic/jz4780-cgu.c
+++ b/drivers/clk/ingenic/jz4780-cgu.c
@@ -178,6 +178,7 @@  static int jz4780_otg_phy_set_rate(struct clk_hw *hw, unsigned long req_rate,
 	writel(usbpcr1, cgu->base + CGU_REG_USBPCR1);
 
 	spin_unlock_irqrestore(&cgu->lock, flags);
+
 	return 0;
 }
 
@@ -188,6 +189,7 @@  static int jz4780_otg_phy_enable(struct clk_hw *hw)
 
 	writel(readl(reg_opcr) | OPCR_SPENDN0, reg_opcr);
 	writel(readl(reg_usbpcr) & ~USBPCR_OTG_DISABLE & ~USBPCR_SIDDQ, reg_usbpcr);
+
 	return 0;
 }
 
@@ -215,9 +217,9 @@  static const struct clk_ops jz4780_otg_phy_ops = {
 	.round_rate = jz4780_otg_phy_round_rate,
 	.set_rate = jz4780_otg_phy_set_rate,
 
-	.enable		= jz4780_otg_phy_enable,
-	.disable	= jz4780_otg_phy_disable,
-	.is_enabled	= jz4780_otg_phy_is_enabled,
+	.enable = jz4780_otg_phy_enable,
+	.disable = jz4780_otg_phy_disable,
+	.is_enabled = jz4780_otg_phy_is_enabled,
 };
 
 static int jz4780_core1_enable(struct clk_hw *hw)
@@ -336,11 +338,17 @@  static const struct ingenic_cgu_clk_info jz4780_cgu_clocks[] = {
 
 #undef DEF_PLL
 
-	/* Custom (SoC-specific) OTG PHY */
+	/* Custom (SoC-specific) */
+
+	[JZ4780_CLK_CORE1] = {
+		"core1", CGU_CLK_CUSTOM,
+		.parents = { JZ4780_CLK_CPU, -1, -1, -1 },
+		.custom = { &jz4780_core1_ops },
+	},
 
 	[JZ4780_CLK_OTGPHY] = {
 		"otg_phy", CGU_CLK_CUSTOM,
-		.parents = { -1, -1, JZ4780_CLK_EXCLK, -1 },
+		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
 		.custom = { &jz4780_otg_phy_ops },
 	},
 
@@ -362,13 +370,13 @@  static const struct ingenic_cgu_clk_info jz4780_cgu_clocks[] = {
 
 	[JZ4780_CLK_CPU] = {
 		"cpu", CGU_CLK_DIV,
-		.parents = { JZ4780_CLK_CPUMUX, -1, -1, -1 },
+		.parents = { JZ4780_CLK_CPUMUX },
 		.div = { CGU_REG_CLOCKCONTROL, 0, 1, 4, 22, -1, -1 },
 	},
 
 	[JZ4780_CLK_L2CACHE] = {
 		"l2cache", CGU_CLK_DIV,
-		.parents = { JZ4780_CLK_CPUMUX, -1, -1, -1 },
+		.parents = { JZ4780_CLK_CPUMUX },
 		.div = { CGU_REG_CLOCKCONTROL, 4, 1, 4, -1, -1, -1 },
 	},
 
@@ -389,13 +397,13 @@  static const struct ingenic_cgu_clk_info jz4780_cgu_clocks[] = {
 
 	[JZ4780_CLK_AHB2] = {
 		"ahb2", CGU_CLK_DIV,
-		.parents = { JZ4780_CLK_AHB2PMUX, -1, -1, -1 },
+		.parents = { JZ4780_CLK_AHB2PMUX },
 		.div = { CGU_REG_CLOCKCONTROL, 12, 1, 4, 20, -1, -1 },
 	},
 
 	[JZ4780_CLK_PCLK] = {
 		"pclk", CGU_CLK_DIV,
-		.parents = { JZ4780_CLK_AHB2PMUX, -1, -1, -1 },
+		.parents = { JZ4780_CLK_AHB2PMUX },
 		.div = { CGU_REG_CLOCKCONTROL, 16, 1, 4, 20, -1, -1 },
 	},
 
@@ -417,14 +425,14 @@  static const struct ingenic_cgu_clk_info jz4780_cgu_clocks[] = {
 
 	[JZ4780_CLK_I2SPLL] = {
 		"i2s_pll", CGU_CLK_MUX | CGU_CLK_DIV,
-		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_EPLL, -1, -1 },
+		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_EPLL },
 		.mux = { CGU_REG_I2SCDR, 30, 1 },
 		.div = { CGU_REG_I2SCDR, 0, 1, 8, 29, 28, 27 },
 	},
 
 	[JZ4780_CLK_I2S] = {
 		"i2s", CGU_CLK_MUX,
-		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_I2SPLL, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_I2SPLL },
 		.mux = { CGU_REG_I2SCDR, 31, 1 },
 	},
 
@@ -452,21 +460,21 @@  static const struct ingenic_cgu_clk_info jz4780_cgu_clocks[] = {
 
 	[JZ4780_CLK_MSC0] = {
 		"msc0", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_MSCMUX, -1, -1, -1 },
+		.parents = { JZ4780_CLK_MSCMUX },
 		.div = { CGU_REG_MSC0CDR, 0, 2, 8, 29, 28, 27 },
 		.gate = { CGU_REG_CLKGR0, 3 },
 	},
 
 	[JZ4780_CLK_MSC1] = {
 		"msc1", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_MSCMUX, -1, -1, -1 },
+		.parents = { JZ4780_CLK_MSCMUX },
 		.div = { CGU_REG_MSC1CDR, 0, 2, 8, 29, 28, 27 },
 		.gate = { CGU_REG_CLKGR0, 11 },
 	},
 
 	[JZ4780_CLK_MSC2] = {
 		"msc2", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_MSCMUX, -1, -1, -1 },
+		.parents = { JZ4780_CLK_MSCMUX },
 		.div = { CGU_REG_MSC2CDR, 0, 2, 8, 29, 28, 27 },
 		.gate = { CGU_REG_CLKGR0, 12 },
 	},
@@ -482,20 +490,20 @@  static const struct ingenic_cgu_clk_info jz4780_cgu_clocks[] = {
 
 	[JZ4780_CLK_SSIPLL] = {
 		"ssi_pll", CGU_CLK_MUX | CGU_CLK_DIV,
-		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL, -1, -1 },
+		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL },
 		.mux = { CGU_REG_SSICDR, 30, 1 },
 		.div = { CGU_REG_SSICDR, 0, 1, 8, 29, 28, 27 },
 	},
 
 	[JZ4780_CLK_SSI] = {
 		"ssi", CGU_CLK_MUX,
-		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_SSIPLL, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_SSIPLL },
 		.mux = { CGU_REG_SSICDR, 31, 1 },
 	},
 
 	[JZ4780_CLK_CIMMCLK] = {
 		"cim_mclk", CGU_CLK_MUX | CGU_CLK_DIV,
-		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL, -1, -1 },
+		.parents = { JZ4780_CLK_SCLKA, JZ4780_CLK_MPLL },
 		.mux = { CGU_REG_CIMCDR, 31, 1 },
 		.div = { CGU_REG_CIMCDR, 0, 1, 8, 30, 29, 28 },
 	},
@@ -510,7 +518,7 @@  static const struct ingenic_cgu_clk_info jz4780_cgu_clocks[] = {
 
 	[JZ4780_CLK_PCM] = {
 		"pcm", CGU_CLK_MUX | CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_PCMPLL, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK, JZ4780_CLK_PCMPLL },
 		.mux = { CGU_REG_PCMCDR, 31, 1 },
 		.gate = { CGU_REG_CLKGR1, 3 },
 	},
@@ -558,238 +566,231 @@  static const struct ingenic_cgu_clk_info jz4780_cgu_clocks[] = {
 
 	[JZ4780_CLK_NEMC] = {
 		"nemc", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_AHB2, -1, -1, -1 },
+		.parents = { JZ4780_CLK_AHB2 },
 		.gate = { CGU_REG_CLKGR0, 0 },
 	},
 
 	[JZ4780_CLK_OTG0] = {
 		"otg0", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 2 },
 	},
 
 	[JZ4780_CLK_SSI0] = {
 		"ssi0", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_SSI, -1, -1, -1 },
+		.parents = { JZ4780_CLK_SSI },
 		.gate = { CGU_REG_CLKGR0, 4 },
 	},
 
 	[JZ4780_CLK_SMB0] = {
 		"smb0", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR0, 5 },
 	},
 
 	[JZ4780_CLK_SMB1] = {
 		"smb1", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR0, 6 },
 	},
 
 	[JZ4780_CLK_SCC] = {
 		"scc", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 7 },
 	},
 
 	[JZ4780_CLK_AIC] = {
 		"aic", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 8 },
 	},
 
 	[JZ4780_CLK_TSSI0] = {
 		"tssi0", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 9 },
 	},
 
 	[JZ4780_CLK_OWI] = {
 		"owi", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 10 },
 	},
 
 	[JZ4780_CLK_KBC] = {
 		"kbc", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 13 },
 	},
 
 	[JZ4780_CLK_SADC] = {
 		"sadc", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 14 },
 	},
 
 	[JZ4780_CLK_UART0] = {
 		"uart0", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 15 },
 	},
 
 	[JZ4780_CLK_UART1] = {
 		"uart1", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 16 },
 	},
 
 	[JZ4780_CLK_UART2] = {
 		"uart2", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 17 },
 	},
 
 	[JZ4780_CLK_UART3] = {
 		"uart3", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 18 },
 	},
 
 	[JZ4780_CLK_SSI1] = {
 		"ssi1", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_SSI, -1, -1, -1 },
+		.parents = { JZ4780_CLK_SSI },
 		.gate = { CGU_REG_CLKGR0, 19 },
 	},
 
 	[JZ4780_CLK_SSI2] = {
 		"ssi2", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_SSI, -1, -1, -1 },
+		.parents = { JZ4780_CLK_SSI },
 		.gate = { CGU_REG_CLKGR0, 20 },
 	},
 
 	[JZ4780_CLK_PDMA] = {
 		"pdma", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 21 },
 	},
 
 	[JZ4780_CLK_GPS] = {
 		"gps", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 22 },
 	},
 
 	[JZ4780_CLK_MAC] = {
 		"mac", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 23 },
 	},
 
 	[JZ4780_CLK_SMB2] = {
 		"smb2", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR0, 24 },
 	},
 
 	[JZ4780_CLK_CIM] = {
 		"cim", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 26 },
 	},
 
 	[JZ4780_CLK_LCD] = {
 		"lcd", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 28 },
 	},
 
 	[JZ4780_CLK_TVE] = {
 		"tve", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_LCD, -1, -1, -1 },
+		.parents = { JZ4780_CLK_LCD },
 		.gate = { CGU_REG_CLKGR0, 27 },
 	},
 
 	[JZ4780_CLK_IPU] = {
 		"ipu", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 29 },
 	},
 
 	[JZ4780_CLK_DDR0] = {
 		"ddr0", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_DDR, -1, -1, -1 },
+		.parents = { JZ4780_CLK_DDR },
 		.gate = { CGU_REG_CLKGR0, 30 },
 	},
 
 	[JZ4780_CLK_DDR1] = {
 		"ddr1", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_DDR, -1, -1, -1 },
+		.parents = { JZ4780_CLK_DDR },
 		.gate = { CGU_REG_CLKGR0, 31 },
 	},
 
 	[JZ4780_CLK_SMB3] = {
 		"smb3", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR1, 0 },
 	},
 
 	[JZ4780_CLK_TSSI1] = {
 		"tssi1", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR1, 1 },
 	},
 
 	[JZ4780_CLK_COMPRESS] = {
 		"compress", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR1, 5 },
 	},
 
 	[JZ4780_CLK_AIC1] = {
 		"aic1", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR1, 6 },
 	},
 
 	[JZ4780_CLK_GPVLC] = {
 		"gpvlc", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR1, 7 },
 	},
 
 	[JZ4780_CLK_OTG1] = {
 		"otg1", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR1, 8 },
 	},
 
 	[JZ4780_CLK_UART4] = {
 		"uart4", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR1, 10 },
 	},
 
 	[JZ4780_CLK_AHBMON] = {
 		"ahb_mon", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR1, 11 },
 	},
 
 	[JZ4780_CLK_SMB4] = {
 		"smb4", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_PCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR1, 12 },
 	},
 
 	[JZ4780_CLK_DES] = {
 		"des", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR1, 13 },
 	},
 
 	[JZ4780_CLK_X2D] = {
 		"x2d", CGU_CLK_GATE,
-		.parents = { JZ4780_CLK_EXCLK, -1, -1, -1 },
+		.parents = { JZ4780_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR1, 14 },
 	},
-
-	[JZ4780_CLK_CORE1] = {
-		"core1", CGU_CLK_CUSTOM,
-		.parents = { JZ4780_CLK_CPU, -1, -1, -1 },
-		.custom = { &jz4780_core1_ops },
-	},
-
 };
 
 static void __init jz4780_cgu_init(struct device_node *np)
@@ -811,4 +812,5 @@  static void __init jz4780_cgu_init(struct device_node *np)
 
 	ingenic_cgu_register_syscore_ops(cgu);
 }
+
 CLK_OF_DECLARE_DRIVER(jz4780_cgu, "ingenic,jz4780-cgu", jz4780_cgu_init);
diff --git a/drivers/clk/ingenic/x1000-cgu.c b/drivers/clk/ingenic/x1000-cgu.c
index 59b16a6..8eea2533 100644
--- a/drivers/clk/ingenic/x1000-cgu.c
+++ b/drivers/clk/ingenic/x1000-cgu.c
@@ -15,38 +15,38 @@ 
 #include "pm.h"
 
 /* CGU register offsets */
-#define CGU_REG_CPCCR		0x00
-#define CGU_REG_APLL		0x10
-#define CGU_REG_MPLL		0x14
-#define CGU_REG_CLKGR		0x20
-#define CGU_REG_OPCR		0x24
-#define CGU_REG_DDRCDR		0x2c
-#define CGU_REG_USBPCR		0x3c
-#define CGU_REG_USBPCR1		0x48
-#define CGU_REG_USBCDR		0x50
-#define CGU_REG_MACCDR		0x54
-#define CGU_REG_I2SCDR		0x60
-#define CGU_REG_LPCDR		0x64
-#define CGU_REG_MSC0CDR		0x68
-#define CGU_REG_I2SCDR1		0x70
-#define CGU_REG_SSICDR		0x74
-#define CGU_REG_CIMCDR		0x7c
-#define CGU_REG_PCMCDR		0x84
-#define CGU_REG_MSC1CDR		0xa4
-#define CGU_REG_CMP_INTR	0xb0
-#define CGU_REG_CMP_INTRE	0xb4
-#define CGU_REG_DRCG		0xd0
-#define CGU_REG_CPCSR		0xd4
-#define CGU_REG_PCMCDR1		0xe0
-#define CGU_REG_MACPHYC		0xe8
+#define CGU_REG_CPCCR			0x00
+#define CGU_REG_APLL			0x10
+#define CGU_REG_MPLL			0x14
+#define CGU_REG_CLKGR			0x20
+#define CGU_REG_OPCR			0x24
+#define CGU_REG_DDRCDR			0x2c
+#define CGU_REG_USBPCR			0x3c
+#define CGU_REG_USBPCR1			0x48
+#define CGU_REG_USBCDR			0x50
+#define CGU_REG_MACCDR			0x54
+#define CGU_REG_I2SCDR			0x60
+#define CGU_REG_LPCDR			0x64
+#define CGU_REG_MSC0CDR			0x68
+#define CGU_REG_I2SCDR1			0x70
+#define CGU_REG_SSICDR			0x74
+#define CGU_REG_CIMCDR			0x7c
+#define CGU_REG_PCMCDR			0x84
+#define CGU_REG_MSC1CDR			0xa4
+#define CGU_REG_CMP_INTR		0xb0
+#define CGU_REG_CMP_INTRE		0xb4
+#define CGU_REG_DRCG			0xd0
+#define CGU_REG_CPCSR			0xd4
+#define CGU_REG_PCMCDR1			0xe0
+#define CGU_REG_MACPHYC			0xe8
 
 /* bits within the OPCR register */
-#define OPCR_SPENDN0		BIT(7)
-#define OPCR_SPENDN1		BIT(6)
+#define OPCR_SPENDN0			BIT(7)
+#define OPCR_SPENDN1			BIT(6)
 
 /* bits within the USBPCR register */
-#define USBPCR_SIDDQ		BIT(21)
-#define USBPCR_OTG_DISABLE	BIT(20)
+#define USBPCR_SIDDQ			BIT(21)
+#define USBPCR_OTG_DISABLE		BIT(20)
 
 /* bits within the USBPCR1 register */
 #define USBPCR1_REFCLKSEL_SHIFT	26
@@ -174,6 +174,7 @@  static int x1000_otg_phy_set_rate(struct clk_hw *hw, unsigned long req_rate,
 	writel(usbpcr1, cgu->base + CGU_REG_USBPCR1);
 
 	spin_unlock_irqrestore(&cgu->lock, flags);
+
 	return 0;
 }
 
@@ -184,6 +185,7 @@  static int x1000_usb_phy_enable(struct clk_hw *hw)
 
 	writel(readl(reg_opcr) | OPCR_SPENDN0, reg_opcr);
 	writel(readl(reg_usbpcr) & ~USBPCR_OTG_DISABLE & ~USBPCR_SIDDQ, reg_usbpcr);
+
 	return 0;
 }
 
@@ -211,9 +213,9 @@  static const struct clk_ops x1000_otg_phy_ops = {
 	.round_rate = x1000_otg_phy_round_rate,
 	.set_rate = x1000_otg_phy_set_rate,
 
-	.enable		= x1000_usb_phy_enable,
-	.disable	= x1000_usb_phy_disable,
-	.is_enabled	= x1000_usb_phy_is_enabled,
+	.enable = x1000_usb_phy_enable,
+	.disable = x1000_usb_phy_disable,
+	.is_enabled = x1000_usb_phy_is_enabled,
 };
 
 static const s8 pll_od_encoding[8] = {
@@ -300,7 +302,7 @@  static const struct ingenic_cgu_clk_info x1000_cgu_clocks[] = {
 
 	[X1000_CLK_OTGPHY] = {
 		"otg_phy", CGU_CLK_CUSTOM,
-		.parents = { -1, -1, X1000_CLK_EXCLK, -1 },
+		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
 		.custom = { &x1000_otg_phy_ops },
 	},
 
@@ -320,14 +322,14 @@  static const struct ingenic_cgu_clk_info x1000_cgu_clocks[] = {
 
 	[X1000_CLK_CPU] = {
 		"cpu", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { X1000_CLK_CPUMUX, -1, -1, -1 },
+		.parents = { X1000_CLK_CPUMUX },
 		.div = { CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1 },
 		.gate = { CGU_REG_CLKGR, 30 },
 	},
 
 	[X1000_CLK_L2CACHE] = {
 		"l2cache", CGU_CLK_DIV,
-		.parents = { X1000_CLK_CPUMUX, -1, -1, -1 },
+		.parents = { X1000_CLK_CPUMUX },
 		.div = { CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1 },
 	},
 
@@ -346,13 +348,13 @@  static const struct ingenic_cgu_clk_info x1000_cgu_clocks[] = {
 
 	[X1000_CLK_AHB2] = {
 		"ahb2", CGU_CLK_DIV,
-		.parents = { X1000_CLK_AHB2PMUX, -1, -1, -1 },
+		.parents = { X1000_CLK_AHB2PMUX },
 		.div = { CGU_REG_CPCCR, 12, 1, 4, 20, -1, -1 },
 	},
 
 	[X1000_CLK_PCLK] = {
 		"pclk", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { X1000_CLK_AHB2PMUX, -1, -1, -1 },
+		.parents = { X1000_CLK_AHB2PMUX },
 		.div = { CGU_REG_CPCCR, 16, 1, 4, 20, -1, -1 },
 		.gate = { CGU_REG_CLKGR, 28 },
 	},
@@ -382,20 +384,20 @@  static const struct ingenic_cgu_clk_info x1000_cgu_clocks[] = {
 
 	[X1000_CLK_MSCMUX] = {
 		"msc_mux", CGU_CLK_MUX,
-		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL},
+		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL },
 		.mux = { CGU_REG_MSC0CDR, 31, 1 },
 	},
 
 	[X1000_CLK_MSC0] = {
 		"msc0", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { X1000_CLK_MSCMUX, -1, -1, -1 },
+		.parents = { X1000_CLK_MSCMUX },
 		.div = { CGU_REG_MSC0CDR, 0, 2, 8, 29, 28, 27 },
 		.gate = { CGU_REG_CLKGR, 4 },
 	},
 
 	[X1000_CLK_MSC1] = {
 		"msc1", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { X1000_CLK_MSCMUX, -1, -1, -1 },
+		.parents = { X1000_CLK_MSCMUX },
 		.div = { CGU_REG_MSC1CDR, 0, 2, 8, 29, 28, 27 },
 		.gate = { CGU_REG_CLKGR, 5 },
 	},
@@ -411,7 +413,7 @@  static const struct ingenic_cgu_clk_info x1000_cgu_clocks[] = {
 
 	[X1000_CLK_SSIPLL] = {
 		"ssi_pll", CGU_CLK_MUX | CGU_CLK_DIV,
-		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL, -1, -1 },
+		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL },
 		.mux = { CGU_REG_SSICDR, 31, 1 },
 		.div = { CGU_REG_SSICDR, 0, 1, 8, 29, 28, 27 },
 	},
@@ -424,13 +426,13 @@  static const struct ingenic_cgu_clk_info x1000_cgu_clocks[] = {
 
 	[X1000_CLK_SSIMUX] = {
 		"ssi_mux", CGU_CLK_MUX,
-		.parents = { X1000_CLK_EXCLK, X1000_CLK_SSIPLL_DIV2, -1, -1 },
+		.parents = { X1000_CLK_EXCLK, X1000_CLK_SSIPLL_DIV2 },
 		.mux = { CGU_REG_SSICDR, 30, 1 },
 	},
 
 	[X1000_CLK_CIM] = {
 		"cim", CGU_CLK_MUX | CGU_CLK_DIV,
-		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL, -1, -1 },
+		.parents = { X1000_CLK_SCLKA, X1000_CLK_MPLL },
 		.mux = { CGU_REG_CIMCDR, 31, 1 },
 		.div = { CGU_REG_CIMCDR, 0, 1, 8, 29, 28, 27 },
 	},
@@ -452,91 +454,91 @@  static const struct ingenic_cgu_clk_info x1000_cgu_clocks[] = {
 
 	[X1000_CLK_EMC] = {
 		"emc", CGU_CLK_GATE,
-		.parents = { X1000_CLK_AHB2, -1, -1, -1 },
+		.parents = { X1000_CLK_AHB2 },
 		.gate = { CGU_REG_CLKGR, 0 },
 	},
 
 	[X1000_CLK_EFUSE] = {
 		"efuse", CGU_CLK_GATE,
-		.parents = { X1000_CLK_AHB2, -1, -1, -1 },
+		.parents = { X1000_CLK_AHB2 },
 		.gate = { CGU_REG_CLKGR, 1 },
 	},
 
 	[X1000_CLK_SFC] = {
 		"sfc", CGU_CLK_GATE,
-		.parents = { X1000_CLK_SSIPLL, -1, -1, -1 },
+		.parents = { X1000_CLK_SSIPLL },
 		.gate = { CGU_REG_CLKGR, 2 },
 	},
 
 	[X1000_CLK_I2C0] = {
 		"i2c0", CGU_CLK_GATE,
-		.parents = { X1000_CLK_PCLK, -1, -1, -1 },
+		.parents = { X1000_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR, 7 },
 	},
 
 	[X1000_CLK_I2C1] = {
 		"i2c1", CGU_CLK_GATE,
-		.parents = { X1000_CLK_PCLK, -1, -1, -1 },
+		.parents = { X1000_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR, 8 },
 	},
 
 	[X1000_CLK_I2C2] = {
 		"i2c2", CGU_CLK_GATE,
-		.parents = { X1000_CLK_PCLK, -1, -1, -1 },
+		.parents = { X1000_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR, 9 },
 	},
 
 	[X1000_CLK_AIC] = {
 		"aic", CGU_CLK_GATE,
-		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1000_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR, 11 },
 	},
 
 	[X1000_CLK_UART0] = {
 		"uart0", CGU_CLK_GATE,
-		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1000_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR, 14 },
 	},
 
 	[X1000_CLK_UART1] = {
 		"uart1", CGU_CLK_GATE,
-		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1000_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR, 15 },
 	},
 
 	[X1000_CLK_UART2] = {
 		"uart2", CGU_CLK_GATE,
-		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1000_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR, 16 },
 	},
 
 	[X1000_CLK_DMIC] = {
 		"dmic", CGU_CLK_GATE,
-		.parents = { X1000_CLK_PCLK, -1, -1, -1 },
+		.parents = { X1000_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR, 17 },
 	},
 
 	[X1000_CLK_TCU] = {
 		"tcu", CGU_CLK_GATE,
-		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1000_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR, 18 },
 	},
 
 	[X1000_CLK_SSI] = {
 		"ssi", CGU_CLK_GATE,
-		.parents = { X1000_CLK_SSIMUX, -1, -1, -1 },
+		.parents = { X1000_CLK_SSIMUX },
 		.gate = { CGU_REG_CLKGR, 19 },
 	},
 
 	[X1000_CLK_OST] = {
 		"ost", CGU_CLK_GATE,
-		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1000_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR, 20 },
 	},
 
 	[X1000_CLK_PDMA] = {
 		"pdma", CGU_CLK_GATE,
-		.parents = { X1000_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1000_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR, 21 },
 	},
 
@@ -566,6 +568,7 @@  static void __init x1000_cgu_init(struct device_node *np)
 
 	ingenic_cgu_register_syscore_ops(cgu);
 }
+
 /*
  * CGU has some children devices, this is useful for probing children devices
  * in the case where the device node is compatible with "simple-mfd".
diff --git a/drivers/clk/ingenic/x1830-cgu.c b/drivers/clk/ingenic/x1830-cgu.c
index cfb0314..8d6479e 100644
--- a/drivers/clk/ingenic/x1830-cgu.c
+++ b/drivers/clk/ingenic/x1830-cgu.c
@@ -15,42 +15,42 @@ 
 #include "pm.h"
 
 /* CGU register offsets */
-#define CGU_REG_CPCCR		0x00
-#define CGU_REG_CPPCR		0x0c
-#define CGU_REG_APLL		0x10
-#define CGU_REG_MPLL		0x14
-#define CGU_REG_CLKGR0		0x20
-#define CGU_REG_OPCR		0x24
-#define CGU_REG_CLKGR1		0x28
-#define CGU_REG_DDRCDR		0x2c
-#define CGU_REG_USBPCR		0x3c
-#define CGU_REG_USBRDT		0x40
-#define CGU_REG_USBVBFIL	0x44
-#define CGU_REG_USBPCR1		0x48
-#define CGU_REG_MACCDR		0x54
-#define CGU_REG_EPLL		0x58
-#define CGU_REG_I2SCDR		0x60
-#define CGU_REG_LPCDR		0x64
-#define CGU_REG_MSC0CDR		0x68
-#define CGU_REG_I2SCDR1		0x70
-#define CGU_REG_SSICDR		0x74
-#define CGU_REG_CIMCDR		0x7c
-#define CGU_REG_MSC1CDR		0xa4
-#define CGU_REG_CMP_INTR	0xb0
-#define CGU_REG_CMP_INTRE	0xb4
-#define CGU_REG_DRCG		0xd0
-#define CGU_REG_CPCSR		0xd4
-#define CGU_REG_VPLL		0xe0
-#define CGU_REG_MACPHYC		0xe8
+#define CGU_REG_CPCCR			0x00
+#define CGU_REG_CPPCR			0x0c
+#define CGU_REG_APLL			0x10
+#define CGU_REG_MPLL			0x14
+#define CGU_REG_CLKGR0			0x20
+#define CGU_REG_OPCR			0x24
+#define CGU_REG_CLKGR1			0x28
+#define CGU_REG_DDRCDR			0x2c
+#define CGU_REG_USBPCR			0x3c
+#define CGU_REG_USBRDT			0x40
+#define CGU_REG_USBVBFIL		0x44
+#define CGU_REG_USBPCR1			0x48
+#define CGU_REG_MACCDR			0x54
+#define CGU_REG_EPLL			0x58
+#define CGU_REG_I2SCDR			0x60
+#define CGU_REG_LPCDR			0x64
+#define CGU_REG_MSC0CDR			0x68
+#define CGU_REG_I2SCDR1			0x70
+#define CGU_REG_SSICDR			0x74
+#define CGU_REG_CIMCDR			0x7c
+#define CGU_REG_MSC1CDR			0xa4
+#define CGU_REG_CMP_INTR		0xb0
+#define CGU_REG_CMP_INTRE		0xb4
+#define CGU_REG_DRCG			0xd0
+#define CGU_REG_CPCSR			0xd4
+#define CGU_REG_VPLL			0xe0
+#define CGU_REG_MACPHYC			0xe8
 
 /* bits within the OPCR register */
-#define OPCR_GATE_USBPHYCLK	BIT(23)
-#define OPCR_SPENDN0		BIT(7)
-#define OPCR_SPENDN1		BIT(6)
+#define OPCR_GATE_USBPHYCLK		BIT(23)
+#define OPCR_SPENDN0			BIT(7)
+#define OPCR_SPENDN1			BIT(6)
 
 /* bits within the USBPCR register */
-#define USBPCR_SIDDQ		BIT(21)
-#define USBPCR_OTG_DISABLE	BIT(20)
+#define USBPCR_SIDDQ			BIT(21)
+#define USBPCR_OTG_DISABLE		BIT(20)
 
 static struct ingenic_cgu *cgu;
 
@@ -295,14 +295,14 @@  static const struct ingenic_cgu_clk_info x1830_cgu_clocks[] = {
 
 	[X1830_CLK_CPU] = {
 		"cpu", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { X1830_CLK_CPUMUX, -1, -1, -1 },
+		.parents = { X1830_CLK_CPUMUX },
 		.div = { CGU_REG_CPCCR, 0, 1, 4, 22, -1, -1 },
 		.gate = { CGU_REG_CLKGR1, 15 },
 	},
 
 	[X1830_CLK_L2CACHE] = {
 		"l2cache", CGU_CLK_DIV,
-		.parents = { X1830_CLK_CPUMUX, -1, -1, -1 },
+		.parents = { X1830_CLK_CPUMUX },
 		.div = { CGU_REG_CPCCR, 4, 1, 4, 22, -1, -1 },
 	},
 
@@ -321,13 +321,13 @@  static const struct ingenic_cgu_clk_info x1830_cgu_clocks[] = {
 
 	[X1830_CLK_AHB2] = {
 		"ahb2", CGU_CLK_DIV,
-		.parents = { X1830_CLK_AHB2PMUX, -1, -1, -1 },
+		.parents = { X1830_CLK_AHB2PMUX },
 		.div = { CGU_REG_CPCCR, 12, 1, 4, 20, -1, -1 },
 	},
 
 	[X1830_CLK_PCLK] = {
 		"pclk", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { X1830_CLK_AHB2PMUX, -1, -1, -1 },
+		.parents = { X1830_CLK_AHB2PMUX },
 		.div = { CGU_REG_CPCCR, 16, 1, 4, 20, -1, -1 },
 		.gate = { CGU_REG_CLKGR1, 14 },
 	},
@@ -366,14 +366,14 @@  static const struct ingenic_cgu_clk_info x1830_cgu_clocks[] = {
 
 	[X1830_CLK_MSC0] = {
 		"msc0", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { X1830_CLK_MSCMUX, -1, -1, -1 },
+		.parents = { X1830_CLK_MSCMUX },
 		.div = { CGU_REG_MSC0CDR, 0, 2, 8, 29, 28, 27 },
 		.gate = { CGU_REG_CLKGR0, 4 },
 	},
 
 	[X1830_CLK_MSC1] = {
 		"msc1", CGU_CLK_DIV | CGU_CLK_GATE,
-		.parents = { X1830_CLK_MSCMUX, -1, -1, -1 },
+		.parents = { X1830_CLK_MSCMUX },
 		.div = { CGU_REG_MSC1CDR, 0, 2, 8, 29, 28, 27 },
 		.gate = { CGU_REG_CLKGR0, 5 },
 	},
@@ -394,7 +394,7 @@  static const struct ingenic_cgu_clk_info x1830_cgu_clocks[] = {
 
 	[X1830_CLK_SSIMUX] = {
 		"ssi_mux", CGU_CLK_MUX,
-		.parents = { X1830_CLK_EXCLK, X1830_CLK_SSIPLL_DIV2, -1, -1 },
+		.parents = { X1830_CLK_EXCLK, X1830_CLK_SSIPLL_DIV2 },
 		.mux = { CGU_REG_SSICDR, 29, 1 },
 	},
 
@@ -423,97 +423,97 @@  static const struct ingenic_cgu_clk_info x1830_cgu_clocks[] = {
 
 	[X1830_CLK_EMC] = {
 		"emc", CGU_CLK_GATE,
-		.parents = { X1830_CLK_AHB2, -1, -1, -1 },
+		.parents = { X1830_CLK_AHB2 },
 		.gate = { CGU_REG_CLKGR0, 0 },
 	},
 
 	[X1830_CLK_EFUSE] = {
 		"efuse", CGU_CLK_GATE,
-		.parents = { X1830_CLK_AHB2, -1, -1, -1 },
+		.parents = { X1830_CLK_AHB2 },
 		.gate = { CGU_REG_CLKGR0, 1 },
 	},
 
 	[X1830_CLK_OTG] = {
 		"otg", CGU_CLK_GATE,
-		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 3 },
 	},
 
 	[X1830_CLK_SSI0] = {
 		"ssi0", CGU_CLK_GATE,
-		.parents = { X1830_CLK_SSIMUX, -1, -1, -1 },
+		.parents = { X1830_CLK_SSIMUX },
 		.gate = { CGU_REG_CLKGR0, 6 },
 	},
 
 	[X1830_CLK_SMB0] = {
 		"smb0", CGU_CLK_GATE,
-		.parents = { X1830_CLK_PCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR0, 7 },
 	},
 
 	[X1830_CLK_SMB1] = {
 		"smb1", CGU_CLK_GATE,
-		.parents = { X1830_CLK_PCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR0, 8 },
 	},
 
 	[X1830_CLK_SMB2] = {
 		"smb2", CGU_CLK_GATE,
-		.parents = { X1830_CLK_PCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR0, 9 },
 	},
 
 	[X1830_CLK_AIC] = {
 		"aic", CGU_CLK_GATE,
-		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 11 },
 	},
 
 	[X1830_CLK_DMIC] = {
 		"dmic", CGU_CLK_GATE,
-		.parents = { X1830_CLK_PCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR0, 12 },
 	},
 
 	[X1830_CLK_UART0] = {
 		"uart0", CGU_CLK_GATE,
-		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 14 },
 	},
 
 	[X1830_CLK_UART1] = {
 		"uart1", CGU_CLK_GATE,
-		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 15 },
 	},
 
 	[X1830_CLK_SSI1] = {
 		"ssi1", CGU_CLK_GATE,
-		.parents = { X1830_CLK_SSIMUX, -1, -1, -1 },
+		.parents = { X1830_CLK_SSIMUX },
 		.gate = { CGU_REG_CLKGR0, 19 },
 	},
 
 	[X1830_CLK_SFC] = {
 		"sfc", CGU_CLK_GATE,
-		.parents = { X1830_CLK_SSIPLL, -1, -1, -1 },
+		.parents = { X1830_CLK_SSIPLL },
 		.gate = { CGU_REG_CLKGR0, 20 },
 	},
 
 	[X1830_CLK_PDMA] = {
 		"pdma", CGU_CLK_GATE,
-		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 21 },
 	},
 
 	[X1830_CLK_TCU] = {
 		"tcu", CGU_CLK_GATE,
-		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR0, 30 },
 	},
 
 	[X1830_CLK_DTRNG] = {
 		"dtrng", CGU_CLK_GATE,
-		.parents = { X1830_CLK_PCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_PCLK },
 		.gate = { CGU_REG_CLKGR1, 1 },
 	},
 
@@ -525,7 +525,7 @@  static const struct ingenic_cgu_clk_info x1830_cgu_clocks[] = {
 
 	[X1830_CLK_OST] = {
 		"ost", CGU_CLK_GATE,
-		.parents = { X1830_CLK_EXCLK, -1, -1, -1 },
+		.parents = { X1830_CLK_EXCLK },
 		.gate = { CGU_REG_CLKGR1, 11 },
 	},
 };
@@ -549,6 +549,7 @@  static void __init x1830_cgu_init(struct device_node *np)
 
 	ingenic_cgu_register_syscore_ops(cgu);
 }
+
 /*
  * CGU has some children devices, this is useful for probing children devices
  * in the case where the device node is compatible with "simple-mfd".