@@ -95,6 +95,10 @@ static struct clk_div_table video_div_table[] = {
95
95
{ }
96
96
};
97
97
98
+ static unsigned int share_count_ssi1 ;
99
+ static unsigned int share_count_ssi2 ;
100
+ static unsigned int share_count_ssi3 ;
101
+
98
102
static struct clk * clks [IMX6SL_CLK_END ];
99
103
static struct clk_onecell_data clk_data ;
100
104
static void __iomem * ccm_base ;
@@ -392,9 +396,12 @@ static void __init imx6sl_clocks_init(struct device_node *ccm_node)
392
396
clks [IMX6SL_CLK_SDMA ] = imx_clk_gate2 ("sdma" , "ipg" , base + 0x7c , 6 );
393
397
clks [IMX6SL_CLK_SPBA ] = imx_clk_gate2 ("spba" , "ipg" , base + 0x7c , 12 );
394
398
clks [IMX6SL_CLK_SPDIF ] = imx_clk_gate2 ("spdif" , "spdif0_podf" , base + 0x7c , 14 );
395
- clks [IMX6SL_CLK_SSI1 ] = imx_clk_gate2 ("ssi1" , "ssi1_podf" , base + 0x7c , 18 );
396
- clks [IMX6SL_CLK_SSI2 ] = imx_clk_gate2 ("ssi2" , "ssi2_podf" , base + 0x7c , 20 );
397
- clks [IMX6SL_CLK_SSI3 ] = imx_clk_gate2 ("ssi3" , "ssi3_podf" , base + 0x7c , 22 );
399
+ clks [IMX6SL_CLK_SSI1_IPG ] = imx_clk_gate2_shared ("ssi1_ipg" , "ipg" , base + 0x7c , 18 , & share_count_ssi1 );
400
+ clks [IMX6SL_CLK_SSI2_IPG ] = imx_clk_gate2_shared ("ssi2_ipg" , "ipg" , base + 0x7c , 20 , & share_count_ssi2 );
401
+ clks [IMX6SL_CLK_SSI3_IPG ] = imx_clk_gate2_shared ("ssi3_ipg" , "ipg" , base + 0x7c , 22 , & share_count_ssi3 );
402
+ clks [IMX6SL_CLK_SSI1 ] = imx_clk_gate2_shared ("ssi1" , "ssi1_podf" , base + 0x7c , 18 , & share_count_ssi1 );
403
+ clks [IMX6SL_CLK_SSI2 ] = imx_clk_gate2_shared ("ssi2" , "ssi2_podf" , base + 0x7c , 20 , & share_count_ssi2 );
404
+ clks [IMX6SL_CLK_SSI3 ] = imx_clk_gate2_shared ("ssi3" , "ssi3_podf" , base + 0x7c , 22 , & share_count_ssi3 );
398
405
clks [IMX6SL_CLK_UART ] = imx_clk_gate2 ("uart" , "ipg" , base + 0x7c , 24 );
399
406
clks [IMX6SL_CLK_UART_SERIAL ] = imx_clk_gate2 ("uart_serial" , "uart_root" , base + 0x7c , 26 );
400
407
clks [IMX6SL_CLK_USBOH3 ] = imx_clk_gate2 ("usboh3" , "ipg" , base + 0x80 , 0 );
0 commit comments