@@ -1146,20 +1146,6 @@ static int clk_wzrd_probe(struct platform_device *pdev)
1146
1146
if (IS_ERR (clk_wzrd -> base ))
1147
1147
return PTR_ERR (clk_wzrd -> base );
1148
1148
1149
- ret = of_property_read_u32 (np , "xlnx,speed-grade" , & clk_wzrd -> speed_grade );
1150
- if (!ret ) {
1151
- if (clk_wzrd -> speed_grade < 1 || clk_wzrd -> speed_grade > 3 ) {
1152
- dev_warn (& pdev -> dev , "invalid speed grade '%d'\n" ,
1153
- clk_wzrd -> speed_grade );
1154
- clk_wzrd -> speed_grade = 0 ;
1155
- }
1156
- }
1157
-
1158
- clk_wzrd -> clk_in1 = devm_clk_get (& pdev -> dev , "clk_in1" );
1159
- if (IS_ERR (clk_wzrd -> clk_in1 ))
1160
- return dev_err_probe (& pdev -> dev , PTR_ERR (clk_wzrd -> clk_in1 ),
1161
- "clk_in1 not found\n" );
1162
-
1163
1149
clk_wzrd -> axi_clk = devm_clk_get_enabled (& pdev -> dev , "s_axi_aclk" );
1164
1150
if (IS_ERR (clk_wzrd -> axi_clk ))
1165
1151
return dev_err_probe (& pdev -> dev , PTR_ERR (clk_wzrd -> axi_clk ),
@@ -1170,31 +1156,48 @@ static int clk_wzrd_probe(struct platform_device *pdev)
1170
1156
return - EINVAL ;
1171
1157
}
1172
1158
1173
- ret = clk_wzrd_register_output_clocks (& pdev -> dev , nr_outputs );
1174
- if (ret )
1175
- return ret ;
1176
-
1177
- clk_wzrd -> clk_data .num = nr_outputs ;
1178
- ret = devm_of_clk_add_hw_provider (& pdev -> dev , of_clk_hw_onecell_get , & clk_wzrd -> clk_data );
1179
- if (ret ) {
1180
- dev_err (& pdev -> dev , "unable to register clock provider\n" );
1181
- return ret ;
1182
- }
1159
+ if (!of_property_present (np , "xlnx,static-config" )) {
1160
+ ret = of_property_read_u32 (np , "xlnx,speed-grade" , & clk_wzrd -> speed_grade );
1161
+ if (!ret ) {
1162
+ if (clk_wzrd -> speed_grade < 1 || clk_wzrd -> speed_grade > 3 ) {
1163
+ dev_warn (& pdev -> dev , "invalid speed grade '%d'\n" ,
1164
+ clk_wzrd -> speed_grade );
1165
+ clk_wzrd -> speed_grade = 0 ;
1166
+ }
1167
+ }
1183
1168
1184
- if (clk_wzrd -> speed_grade ) {
1185
- clk_wzrd -> nb .notifier_call = clk_wzrd_clk_notifier ;
1169
+ clk_wzrd -> clk_in1 = devm_clk_get (& pdev -> dev , "clk_in1" );
1170
+ if (IS_ERR (clk_wzrd -> clk_in1 ))
1171
+ return dev_err_probe (& pdev -> dev , PTR_ERR (clk_wzrd -> clk_in1 ),
1172
+ "clk_in1 not found\n" );
1186
1173
1187
- ret = devm_clk_notifier_register (& pdev -> dev , clk_wzrd -> clk_in1 ,
1188
- & clk_wzrd -> nb );
1174
+ ret = clk_wzrd_register_output_clocks (& pdev -> dev , nr_outputs );
1189
1175
if (ret )
1190
- dev_warn (& pdev -> dev ,
1191
- "unable to register clock notifier\n" );
1176
+ return ret ;
1177
+
1178
+ clk_wzrd -> clk_data .num = nr_outputs ;
1179
+ ret = devm_of_clk_add_hw_provider (& pdev -> dev , of_clk_hw_onecell_get ,
1180
+ & clk_wzrd -> clk_data );
1181
+ if (ret ) {
1182
+ dev_err (& pdev -> dev , "unable to register clock provider\n" );
1183
+ return ret ;
1184
+ }
1192
1185
1193
- ret = devm_clk_notifier_register (& pdev -> dev , clk_wzrd -> axi_clk ,
1194
- & clk_wzrd -> nb );
1195
- if (ret )
1196
- dev_warn (& pdev -> dev ,
1197
- "unable to register clock notifier\n" );
1186
+ if (clk_wzrd -> speed_grade ) {
1187
+ clk_wzrd -> nb .notifier_call = clk_wzrd_clk_notifier ;
1188
+
1189
+ ret = devm_clk_notifier_register (& pdev -> dev , clk_wzrd -> clk_in1 ,
1190
+ & clk_wzrd -> nb );
1191
+ if (ret )
1192
+ dev_warn (& pdev -> dev ,
1193
+ "unable to register clock notifier\n" );
1194
+
1195
+ ret = devm_clk_notifier_register (& pdev -> dev , clk_wzrd -> axi_clk ,
1196
+ & clk_wzrd -> nb );
1197
+ if (ret )
1198
+ dev_warn (& pdev -> dev ,
1199
+ "unable to register clock notifier\n" );
1200
+ }
1198
1201
}
1199
1202
1200
1203
return 0 ;
0 commit comments