2024. 03. 14. 15:00 keltezéssel, Konrad Dybcio írta:
...
@@ -55,6 +55,24 @@ static struct clk_alpha_pll ipq_pll_huayra = { }, }; +static struct clk_alpha_pll ipq_pll_stromer = { + .offset = 0x0, + .regs = ipq_pll_offsets[CLK_ALPHA_PLL_TYPE_STROMER_PLUS],
CLK_ALPHA_PLL_TYPE_STROMER?
I admit that using CLK_ALPHA_PLL_TYPE_STROMER would be less confusing. However 'ipq_pll_offsets' array has no entry for that enum, and given the fact that the CLK_ALPHA_PLL_TYPE_STROMER_PLUS entry uses the correct register offsets it makes little sense to add another entry with the same offsets.
Although the 'clk_alpha_pll_regs' in clk-alpha-pll.c has an entry for CLK_ALPHA_PLL_TYPE_STROMER, but the offsets defined there are not 'exactly' the same as the ones defined locally in 'ipq_pll_offsets'. They will be identical if [1] gets accepted but we are not there yet.
Oh, I completely overlooked that this driver has its own array.. Hm..
I suppose it would make sense to rename these indices to IPQ_PLL_x to help avoid such confusion..
Yes, that would work. To be honest, I have tried that already a few days ago, but then I had a better idea.
It will be possible to use the entry from 'clk_alpha_pll_regs' for 'ipq_pll_stromer' and for 'ipq_pll_stromer_plus'. To be precise, it would be usable already but for correctness it needs the series mentioned in my previous mail.
Then the local entry can be removed from 'ipq_pll_regs' entirely.
Once it is done, the 'ipq_pll_regs' can be converted to be an one-dimensional array containing the IPQ Huayra specific offsets only. Alternatively the remaining sole element can be moved into 'clk_alpha_pll_regs' array.
Additionally, the 'pll_type' field in the match data structure is redundant so that can be removed as well.
This eliminates the need of a separate enum for IPQ specific indices.
Regards, Gabor