]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
clk: imx95: enable the clock of NETCMIX block control
authorWei Fang <wei.fang@nxp.com>
Thu, 29 Aug 2024 01:18:48 +0000 (09:18 +0800)
committerAbel Vesa <abel.vesa@linaro.org>
Thu, 29 Aug 2024 07:02:18 +0000 (10:02 +0300)
The NETCMIX block control consists of registers for configuration of
peripherals in the NETC domain, so enable the clock of NETCMIX to
support the configuration.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Link: https://lore.kernel.org/r/20240829011849.364987-4-wei.fang@nxp.com
Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
drivers/clk/imx/clk-imx95-blk-ctl.c

index 74f595f9e5e348c3fc87e7096b1457ec816a7390..19a62da74be450d305be48c4f5fb0777feb1e780 100644 (file)
@@ -248,6 +248,35 @@ static const struct imx95_blk_ctl_dev_data dispmix_csr_dev_data = {
        .clk_reg_offset = 0,
 };
 
+static const struct imx95_blk_ctl_clk_dev_data netxmix_clk_dev_data[] = {
+       [IMX95_CLK_NETCMIX_ENETC0_RMII] = {
+               .name = "enetc0_rmii_sel",
+               .parent_names = (const char *[]){"ext_enetref", "enetref"},
+               .num_parents = 2,
+               .reg = 4,
+               .bit_idx = 5,
+               .bit_width = 1,
+               .type = CLK_MUX,
+               .flags = CLK_SET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT,
+       },
+       [IMX95_CLK_NETCMIX_ENETC1_RMII] = {
+               .name = "enetc1_rmii_sel",
+               .parent_names = (const char *[]){"ext_enetref", "enetref"},
+               .num_parents = 2,
+               .reg = 4,
+               .bit_idx = 10,
+               .bit_width = 1,
+               .type = CLK_MUX,
+               .flags = CLK_SET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT,
+       },
+};
+
+static const struct imx95_blk_ctl_dev_data netcmix_dev_data = {
+       .num_clks = ARRAY_SIZE(netxmix_clk_dev_data),
+       .clk_dev_data = netxmix_clk_dev_data,
+       .clk_reg_offset = 0,
+};
+
 static int imx95_bc_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
@@ -419,6 +448,7 @@ static const struct of_device_id imx95_bc_of_match[] = {
        { .compatible = "nxp,imx95-lvds-csr", .data = &lvds_csr_dev_data },
        { .compatible = "nxp,imx95-display-csr", .data = &dispmix_csr_dev_data },
        { .compatible = "nxp,imx95-vpu-csr", .data = &vpublk_dev_data },
+       { .compatible = "nxp,imx95-netcmix-blk-ctrl", .data = &netcmix_dev_data},
        { /* Sentinel */ },
 };
 MODULE_DEVICE_TABLE(of, imx95_bc_of_match);