Re: [PATCH V4 08/11] clk: imx: imx8qxp-lpcg: add parsing clocks from device tree
From: Dong Aisheng <hidden>
Date: 2019-09-09 11:33:18
Also in:
linux-clk
]On Sat, Sep 7, 2019 at 5:35 PM Stephen Boyd [off-list ref] wrote:
Quoting Dong Aisheng (2019-08-20 04:13:22)quoted
Add parsing clocks from device tree.Please describe some more here.
Will improve.
quoted
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(base)) + return PTR_ERR(base); + + count = of_property_count_u32_elems(np, "clock-indices"); + if (count < 0) { + dev_err(&pdev->dev, "failed to count clocks\n"); + return -EINVAL; + }Is 'count' expected to be equal to IMX_LPCG_MAX_CLKS? Because later on in this function we set the num of clks to the MAX instead of the count from clock-indices.
No. Here is a tricky to ease the clk getting. For example, one LPCG supports up to 8 clock outputs which each of them is fixed to 4 bits. Then we can easily use the bit-offset/clk-indices parsed from DT to fetch the corresponding clock by hws[clkspec->args[0] / 4]. And the cost is very limited with only a few pointers.
quoted
+ + clk_data = devm_kzalloc(&pdev->dev, struct_size(clk_data, hws, IMX_LPCG_MAX_CLKS),This line is too long.
Will improve.
quoted
+ GFP_KERNEL); + if (!clk_data) + return -ENOMEM; + + clk_data->num = IMX_LPCG_MAX_CLKS; + clk_hws = clk_data->hws; + + ret = of_property_read_u32_array(np, "clock-indices", bit_offset, + count); + if (ret < 0) { + dev_err(&pdev->dev, "failed to read clocks bit-offset\n");This isn't called bit-offset anymore.
Will improve.
quoted
+ return -EINVAL; + } + + ret = of_clk_parent_fill(np, parent_names, count); + if (ret != count) { + dev_err(&pdev->dev, "failed to get clock parent names\n"); + return -EINVAL;return count?
Okay Regards Aisheng _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel