On 11/01/2021 03:18, gene_chen(陳俊宇) wrote:
> [ Internal Use - External ]
>
Please don't top-post in the future.
> Hi Matthias,
>
> I discussed OF match table with Mark in previous mail in our PATCH v3,
> MFD should just instantiate the platform device.
Did you ever test that? Which MFD driver should instantiate the device?
I had a look at mt6360-core.c (the obvious one) but I don't see any reference to
the regulator [1]. What am I missing?
>
>> Mark Brown <broo...@kernel.org> 於 2020年8月20日 週四 下午7:45寫道:
>
>>> This device only exists in the context of a single parent device, there
>>> should be no need for a compatible string here - this is just a detail
>>> of how Linux does things. The MFD should just instntiate the platform
>>> device.
>
>> Trying to autoload module without of_id_table will cause run-time error:
>> ueventd: LoadWithAliases was unable to load
>> of:NregulatorT(null)Cmediatek,mt6360-regulator
>
> You shouldn't have this described in the device tree at all, like I say
> the MFD should just instantiate the platform device.
>
Well from my understanding the regulator has a device-tree entry [2], so it
needs to match against a device-tree node. My understanding is, that you need a
the devicetree node to describe the regulators provided by the device. TBH I'm a
bit puzzled about the comment from Mark here. How does another DT node be able
to reference a regulator if this is not described in DT? I think we need a DT
node here and the matching in the regulator and MFD driver to get the regulator
loaded via udev.
Regards,
Matthias
[1]
https://elixir.bootlin.com/linux/latest/source/drivers/mfd/mt6360-core.c#L294
[2]
https://elixir.bootlin.com/linux/v5.10.6/source/Documentation/devicetree/bindings/regulator/mt6360-regulator.yaml
>> -----Original Message-----
>> From: matthias....@kernel.org <matthias....@kernel.org>
>> Sent: Saturday, January 9, 2021 7:26 PM
>> To: Liam Girdwood <lgirdw...@gmail.com>; Mark Brown
>> <broo...@kernel.org>
>> Cc: Hsin-Hsiung Wang <hsin-hsiung.w...@mediatek.com>; Axel Lin
>> <axel....@ingics.com>; Chen Zhong <chen.zh...@mediatek.com>;
>> gene_chen(陳俊宇) <gene_c...@richtek.com>; linux-kernel@vger.kernel.org;
>> linux-media...@lists.infradead.org; linux-arm-ker...@lists.infradead.org;
>> Matthias Brugger <matthias....@gmail.com>; Matti Vaittinen
>> <matti.vaitti...@fi.rohmeurope.com>; Matthias Brugger
>> <mbrug...@suse.com>
>> Subject: [PATCH v2 1/3] regulator: mt6360: Add OF match table
>>
>> From: Matthias Brugger <mbrug...@suse.com>
>>
>> Binding documentation mentions that a compatible is required for the
>> MT6360 device node, but the driver doesn't provide a OF match table.
>>
>> Fixes: d321571d5e4c ("regulator: mt6360: Add support for MT6360 regulator")
>> Signed-off-by: Matthias Brugger <mbrug...@suse.com>
>>
>> ---
>>
>> Changes in v2:
>> - check for CONFIG_OF
>> - add Fixes tag
>>
>> drivers/regulator/mt6360-regulator.c | 9 +++++++++
>> 1 file changed, 9 insertions(+)
>>
>> diff --git a/drivers/regulator/mt6360-regulator.c
>> b/drivers/regulator/mt6360-regulator.c
>> index 15308ee29c13..f7b2514feabf 100644
>> --- a/drivers/regulator/mt6360-regulator.c
>> +++ b/drivers/regulator/mt6360-regulator.c
>> @@ -445,9 +445,18 @@ static const struct platform_device_id
>> mt6360_regulator_id_table[] = { }; MODULE_DEVICE_TABLE(platform,
>> mt6360_regulator_id_table);
>>
>> +#ifdef CONFIG_OF
>> +static const struct of_device_id mt6360_of_match[] = {
>> +{ .compatible = "mediatek,mt6360-regulator", },
>> +{ /* sentinel */ },
>> +};
>> +MODULE_DEVICE_TABLE(of, mt6360_of_match); #endif
>> +
>> static struct platform_driver mt6360_regulator_driver = {
>> .driver = {
>> .name = "mt6360-regulator",
>> +.of_match_table = of_match_ptr(mt6360_of_match),
>> },
>> .probe = mt6360_regulator_probe,
>> .id_table = mt6360_regulator_id_table,
>> --
>> 2.29.2
> ************* Email Confidentiality Notice ********************
>
> The information contained in this e-mail message (including any attachments)
> may be confidential, proprietary, privileged, or otherwise exempt from
> disclosure under applicable laws. It is intended to be conveyed only to the
> designated recipient(s). Any use, dissemination, distribution, printing,
> retaining or copying of this e-mail (including its attachments) by unintended
> recipient(s) is strictly prohibited and may be unlawful. If you are not an
> intended recipient of this e-mail, or believe that you have received this
> e-mail in error, please notify the sender immediately (by replying to this
> e-mail), delete any and all copies of this e-mail (including any attachments)
> from your system, and do not disclose the content of this e-mail to any other
> person. Thank you!
>