@@ -1067,6 +1067,73 @@ static const struct samsung_cmu_info core_cmu_info __initconst = {
10671067 .clk_name = "dout_clkcmu_core_bus" ,
10681068};
10691069
1070+ /* ---- CMU_FSYS2 ---------------------------------------------------------- */
1071+
1072+ /* Register Offset definitions for CMU_FSYS2 (0x17c00000) */
1073+ #define PLL_CON0_MUX_CLKCMU_FSYS2_BUS_USER 0x0600
1074+ #define PLL_CON0_MUX_CLKCMU_FSYS2_UFS_EMBD_USER 0x0620
1075+ #define PLL_CON0_MUX_CLKCMU_FSYS2_ETHERNET_USER 0x0610
1076+ #define CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_ACLK 0x2098
1077+ #define CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_CLK_UNIPRO 0x209c
1078+ #define CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_ACLK 0x20a4
1079+ #define CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_CLK_UNIPRO 0x20a8
1080+
1081+ static const unsigned long fsys2_clk_regs [] __initconst = {
1082+ PLL_CON0_MUX_CLKCMU_FSYS2_BUS_USER ,
1083+ PLL_CON0_MUX_CLKCMU_FSYS2_UFS_EMBD_USER ,
1084+ PLL_CON0_MUX_CLKCMU_FSYS2_ETHERNET_USER ,
1085+ CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_ACLK ,
1086+ CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_CLK_UNIPRO ,
1087+ CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_ACLK ,
1088+ CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_CLK_UNIPRO ,
1089+ };
1090+
1091+ /* List of parent clocks for Muxes in CMU_FSYS2 */
1092+ PNAME (mout_fsys2_bus_user_p ) = { "oscclk" , "dout_clkcmu_fsys2_bus" };
1093+ PNAME (mout_fsys2_ufs_embd_user_p ) = { "oscclk" , "dout_clkcmu_fsys2_ufs_embd" };
1094+ PNAME (mout_fsys2_ethernet_user_p ) = { "oscclk" , "dout_clkcmu_fsys2_ethernet" };
1095+
1096+ static const struct samsung_mux_clock fsys2_mux_clks [] __initconst = {
1097+ MUX (CLK_MOUT_FSYS2_BUS_USER , "mout_fsys2_bus_user" ,
1098+ mout_fsys2_bus_user_p , PLL_CON0_MUX_CLKCMU_FSYS2_BUS_USER , 4 , 1 ),
1099+ MUX (CLK_MOUT_FSYS2_UFS_EMBD_USER , "mout_fsys2_ufs_embd_user" ,
1100+ mout_fsys2_ufs_embd_user_p ,
1101+ PLL_CON0_MUX_CLKCMU_FSYS2_UFS_EMBD_USER , 4 , 1 ),
1102+ MUX (CLK_MOUT_FSYS2_ETHERNET_USER , "mout_fsys2_ethernet_user" ,
1103+ mout_fsys2_ethernet_user_p ,
1104+ PLL_CON0_MUX_CLKCMU_FSYS2_ETHERNET_USER , 4 , 1 ),
1105+ };
1106+
1107+ static const struct samsung_gate_clock fsys2_gate_clks [] __initconst = {
1108+ GATE (CLK_GOUT_FSYS2_UFS_EMBD0_ACLK , "gout_fsys2_ufs_embd0_aclk" ,
1109+ "mout_fsys2_ufs_embd_user" ,
1110+ CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_ACLK , 21 ,
1111+ 0 , 0 ),
1112+ GATE (CLK_GOUT_FSYS2_UFS_EMBD0_UNIPRO , "gout_fsys2_ufs_embd0_unipro" ,
1113+ "mout_fsys2_ufs_embd_user" ,
1114+ CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_CLK_UNIPRO ,
1115+ 21 , 0 , 0 ),
1116+ GATE (CLK_GOUT_FSYS2_UFS_EMBD1_ACLK , "gout_fsys2_ufs_embd1_aclk" ,
1117+ "mout_fsys2_ufs_embd_user" ,
1118+ CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_ACLK , 21 ,
1119+ 0 , 0 ),
1120+ GATE (CLK_GOUT_FSYS2_UFS_EMBD1_UNIPRO , "gout_fsys2_ufs_embd1_unipro" ,
1121+ "mout_fsys2_ufs_embd_user" ,
1122+ CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_CLK_UNIPRO ,
1123+ 21 , 0 , 0 ),
1124+ };
1125+
1126+ static const struct samsung_cmu_info fsys2_cmu_info __initconst = {
1127+ .mux_clks = fsys2_mux_clks ,
1128+ .nr_mux_clks = ARRAY_SIZE (fsys2_mux_clks ),
1129+ .gate_clks = fsys2_gate_clks ,
1130+ .nr_gate_clks = ARRAY_SIZE (fsys2_gate_clks ),
1131+ .nr_clk_ids = FSYS2_NR_CLK ,
1132+ .clk_regs = fsys2_clk_regs ,
1133+ .nr_clk_regs = ARRAY_SIZE (fsys2_clk_regs ),
1134+ .clk_name = "dout_clkcmu_fsys2_bus" ,
1135+ };
1136+
10701137/* ---- CMU_PERIS ---------------------------------------------------------- */
10711138
10721139/* Register Offset definitions for CMU_PERIS (0x10020000) */
@@ -1133,6 +1200,8 @@ static const struct of_device_id exynosautov9_cmu_of_match[] = {
11331200 .compatible = "samsung,exynosautov9-cmu-core" ,
11341201 .data = & core_cmu_info ,
11351202 }, {
1203+ .compatible = "samsung,exynosautov9-cmu-fsys2" ,
1204+ .data = & fsys2_cmu_info ,
11361205 }, {
11371206 .compatible = "samsung,exynosautov9-cmu-peris" ,
11381207 .data = & peris_cmu_info ,
0 commit comments