@@ -34,6 +34,7 @@ enum rcar_r8a779a0_clk_types {
3434 CLK_TYPE_R8A779A0_PLL2X_3X , /* PLL[23][01] */
3535 CLK_TYPE_R8A779A0_PLL5 ,
3636 CLK_TYPE_R8A779A0_Z ,
37+ CLK_TYPE_R8A779A0_SDH ,
3738 CLK_TYPE_R8A779A0_SD ,
3839 CLK_TYPE_R8A779A0_MDSEL , /* Select parent/divider using mode pin */
3940 CLK_TYPE_R8A779A0_OSC , /* OSC EXTAL predivider and fixed divider */
@@ -92,6 +93,9 @@ enum clk_ids {
9293 DEF_BASE(_name, _id, CLK_TYPE_R8A779A0_Z, _parent, .div = _div, \
9394 .offset = _offset)
9495
96+ #define DEF_SDH (_name , _id , _parent , _offset ) \
97+ DEF_BASE(_name, _id, CLK_TYPE_R8A779A0_SDH, _parent, .offset = _offset)
98+
9599#define DEF_SD (_name , _id , _parent , _offset ) \
96100 DEF_BASE(_name, _id, CLK_TYPE_R8A779A0_SD, _parent, .offset = _offset)
97101
@@ -159,7 +163,8 @@ static const struct cpg_core_clk r8a779a0_core_clks[] __initconst = {
159163 DEF_FIXED ("cp" , R8A779A0_CLK_CP , CLK_EXTAL , 2 , 1 ),
160164 DEF_FIXED ("cl16mck" , R8A779A0_CLK_CL16MCK , CLK_PLL1_DIV2 , 64 , 1 ),
161165
162- DEF_SD ("sd0" , R8A779A0_CLK_SD0 , CLK_SDSRC , 0x870 ),
166+ DEF_SDH ("sdh0" , R8A779A0_CLK_SD0H , CLK_SDSRC , 0x870 ),
167+ DEF_SD ("sd0" , R8A779A0_CLK_SD0 , R8A779A0_CLK_SD0H , 0x870 ),
163168
164169 DEF_DIV6P1 ("mso" , R8A779A0_CLK_MSO , CLK_PLL5_DIV4 , 0x87c ),
165170 DEF_DIV6P1 ("canfd" , R8A779A0_CLK_CANFD , CLK_PLL5_DIV4 , 0x878 ),
@@ -469,6 +474,10 @@ static struct clk * __init rcar_r8a779a0_cpg_clk_register(struct device *dev,
469474 return cpg_z_clk_register (core -> name , __clk_get_name (parent ),
470475 base , core -> div , core -> offset );
471476
477+ case CLK_TYPE_R8A779A0_SDH :
478+ return cpg_sdh_clk_register (core -> name , base + core -> offset ,
479+ __clk_get_name (parent ), notifiers );
480+
472481 case CLK_TYPE_R8A779A0_SD :
473482 return cpg_sd_clk_register (core -> name , base , core -> offset ,
474483 __clk_get_name (parent ), notifiers ,
0 commit comments