Re: [PATCH 2/2] dt-bindings: mmc: mtk-sd: Add support for MT8196

Krzysztof Kozlowski
2024-09-28T13:39:51Z

On 28/09/2024 15:14, Andy-ld Lu (卢东) wrote:
> On Thu, 2024-09-26 at 12:54 -0500, Rob Herring wrote:
>>
>> External email : Please do not click links or open attachments until
>> you have verified the sender or the content.
>> On Thu, Sep 26, 2024 at 03:03:18PM +0800, Andy-ld Lu wrote:
>>> Extend the devicetree bindings to include the MT8196 mmc controller
>>> by adding the compatible string 'mediatek,msdc-v2', which could be
>>> also used for future compatible SoCs that support new tx/rx.
>>
>> Generally, every SoC ends up changing at least slightly. So we don't
>> do
>> version numbers except when there's a well defined versioning scheme
>> of
>> the h/w (e.g. FPGA IP blocks). So, use SoC for compatible string.
> Thanks for your review.
>
> The new tx/rx represents a significant update for mmc controller of
> mediatek from the MT8196 chipset, and the dependent settings remain
> consistent for MT8196 and subsequent SoCs. Therefore, It is proposed to
> use a unified compatible string for these SoCs that support new tx/rx,
> and name it as 'IP(msdc) version two'.

Sorry, nope. That's not valid reasons.

>>
>>>
>>> Add three properties for MT8196 settings:
>>> - 'mediatek,prohibit-gate-cg', indicate if the source clock CG
>> could
>>> be disabled when CPU access IP registers.
>>>
>>> - 'mediatek,stop-dly-sel', configure read data clock stops at block
>> gap.
>>>
>>> - 'mediatek,pop-en-cnt', configure the margins of write and read
>>> pointers while begin to pop data transfer.
>>>
>>> Signed-off-by: Andy-ld Lu <andy-ld.lu@mediatek.com>
>>> ---
>>> .../devicetree/bindings/mmc/mtk-sd.yaml | 26
>> +++++++++++++++++++
>>> 1 file changed, 26 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
>> b/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
>>> index c532ec92d2d9..82d1a9fac67c 100644
>>> --- a/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
>>> +++ b/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
>>> @@ -25,6 +25,7 @@ properties:
>>> - mediatek,mt8173-mmc
>>> - mediatek,mt8183-mmc
>>> - mediatek,mt8516-mmc
>>> + - mediatek,msdc-v2
>>> - items:
>>> - const: mediatek,mt7623-mmc
>>> - const: mediatek,mt2701-mmc
>>> @@ -154,6 +155,30 @@ properties:
>>> enum: [32, 64]
>>> default: 32
>>>
>>> + mediatek,stop-dly-sel:
>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>> + description:
>>> + Some SoCs need to set appropriate stop-dly-sel to configure
>> read data clock
>>> + stops at block gap. The valid range is from 0 to 0xf.
>>
>> SoC dependent or board dependent? Imply from the compatible for the
>> former. A property is fine for the latter case.
> Yes, it is SoC dependent in principle, but we would like to use a
> unified compatible string for MT8196 and subsequent SoCs as mentioned

Also no :(. Use SoC specific compatible.

> above, and this register setting(not relavant with new tx/rx) may be
> variant. Therefore, want to use the property of device tree to set
> individually.
>>
>>> + minimum: 0
>>> + maximum: 0xf
>>> +
>>> + mediatek,pop-en-cnt:
>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>> + description:
>>> + Some SoCs need to set appropriate pop-en-cnt to configure
>> the margins of write
>>> + and read pointers while begin to pop data transfer. The
>> valid range is from 0
>>> + to 0xf.
>>> + minimum: 0
>>> + maximum: 0xf
>>
>> Same question.
> Same as the reply above.
>>
>>> +
>>> + mediatek,prohibit-gate-cg:
>>> + $ref: /schemas/types.yaml#/definitions/flag
>>> + description:
>>> + Decide if source clock CG could be disabled when CPU access
>> IP registers.
>>> + If present, source clock CG could not be disabled.
>>> + If not present, source clock CG could be disabled.
>>
>>
>> Sounds like you need to describe the clock in "clocks".
> It is not with clock itself, but rather with the bus design that would
> check the 'source_cg' status bit to decide whether to prevent the CPU
> from accessing the IP registers. And there have been no changes to the
> 'source_cg'(already been descirbed before) for MT8196.

I don't understand why do you need this property if it was already
described. Please do not describe things twice.

Best regards,
Krzysztof