@@ -248,6 +248,35 @@ static const struct imx95_blk_ctl_dev_data dispmix_csr_dev_data = {
248
248
.clk_reg_offset = 0 ,
249
249
};
250
250
251
+ static const struct imx95_blk_ctl_clk_dev_data netxmix_clk_dev_data [] = {
252
+ [IMX95_CLK_NETCMIX_ENETC0_RMII ] = {
253
+ .name = "enetc0_rmii_sel" ,
254
+ .parent_names = (const char * []){"ext_enetref" , "enetref" },
255
+ .num_parents = 2 ,
256
+ .reg = 4 ,
257
+ .bit_idx = 5 ,
258
+ .bit_width = 1 ,
259
+ .type = CLK_MUX ,
260
+ .flags = CLK_SET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT ,
261
+ },
262
+ [IMX95_CLK_NETCMIX_ENETC1_RMII ] = {
263
+ .name = "enetc1_rmii_sel" ,
264
+ .parent_names = (const char * []){"ext_enetref" , "enetref" },
265
+ .num_parents = 2 ,
266
+ .reg = 4 ,
267
+ .bit_idx = 10 ,
268
+ .bit_width = 1 ,
269
+ .type = CLK_MUX ,
270
+ .flags = CLK_SET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT ,
271
+ },
272
+ };
273
+
274
+ static const struct imx95_blk_ctl_dev_data netcmix_dev_data = {
275
+ .num_clks = ARRAY_SIZE (netxmix_clk_dev_data ),
276
+ .clk_dev_data = netxmix_clk_dev_data ,
277
+ .clk_reg_offset = 0 ,
278
+ };
279
+
251
280
static int imx95_bc_probe (struct platform_device * pdev )
252
281
{
253
282
struct device * dev = & pdev -> dev ;
@@ -419,6 +448,7 @@ static const struct of_device_id imx95_bc_of_match[] = {
419
448
{ .compatible = "nxp,imx95-lvds-csr" , .data = & lvds_csr_dev_data },
420
449
{ .compatible = "nxp,imx95-display-csr" , .data = & dispmix_csr_dev_data },
421
450
{ .compatible = "nxp,imx95-vpu-csr" , .data = & vpublk_dev_data },
451
+ { .compatible = "nxp,imx95-netcmix-blk-ctrl" , .data = & netcmix_dev_data },
422
452
{ /* Sentinel */ },
423
453
};
424
454
MODULE_DEVICE_TABLE (of , imx95_bc_of_match );
0 commit comments