[PATCH v4 1/2] dt-bindings: memory: mediatek: Add SMI reset and clamp for MT8188

Friday Yang posted 2 patches 9 months, 4 weeks ago
There is a newer version of this series
[PATCH v4 1/2] dt-bindings: memory: mediatek: Add SMI reset and clamp for MT8188
Posted by Friday Yang 9 months, 4 weeks ago
From: "Friday Yang" <friday.yang@mediatek.com>

On the MediaTek platform, some SMI LARBs are directly connected to
the SMI Common, while others are connected to the SMI Sub-Common,
which in turn is connected to the SMI Common. The hardware block
diagram can be described as follows.

             SMI-Common(Smart Multimedia Interface Common)
                 |
         +----------------+------------------+
         |                |                  |
         |                |                  |
         |                |                  |
         |                |                  |
         |                |                  |
       larb0       SMI-Sub-Common0     SMI-Sub-Common1
                   |      |     |      |             |
                  larb1  larb2 larb3  larb7       larb9

For previous discussion on the direction of the code modifications,
please refer to:
https://lore.kernel.org/all/CAFGrd9qZhObQXvm2_abqaX83xMLqxjQETB2=
wXpobDWU1CnvkA@mail.gmail.com/
https://lore.kernel.org/all/CAPDyKFpokXV2gJDgowbixTvOH_5VL3B5H8ey
hP+KJ5Fasm2rFg@mail.gmail.com/

On the MediaTek MT8188 SoC platform, we encountered power-off failures
and SMI bus hang issues during camera stress tests. The issue arises
because bus glitches are sometimes produced when MTCMOS powers on or
off. While this is fairly normal, the software must handle these
glitches to avoid mistaking them for transaction signals. What's
more, this issue emerged only after the initial upstreaming of this
binding. Without these patches, the SMI becomes unstable during camera
stress tests.

The software solutions can be summarized as follows:

1. Use CLAMP to disable the SMI sub-common port after turning off the
   LARB CG and before turning off the LARB MTCMOS.
2. Use CLAMP to disable/enable the SMI sub-common port.
3. Implement an AXI reset for SMI LARBs.

This patch primarily add two changes:
1. Add compatible for SMI sub-common on MT8188 SoC.
2. Add 'resets' and 'reset-names' properties for SMI LARBs to
   support SMI reset operations.

Signed-off-by: Friday Yang <friday.yang@mediatek.com>
---
 .../mediatek,smi-common.yaml                  |  2 ++
 .../memory-controllers/mediatek,smi-larb.yaml | 20 +++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.yaml b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.yaml
index 2f36ac23604c..4392d349878c 100644
--- a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.yaml
@@ -39,6 +39,7 @@ properties:
           - mediatek,mt8186-smi-common
           - mediatek,mt8188-smi-common-vdo
           - mediatek,mt8188-smi-common-vpp
+          - mediatek,mt8188-smi-sub-common
           - mediatek,mt8192-smi-common
           - mediatek,mt8195-smi-common-vdo
           - mediatek,mt8195-smi-common-vpp
@@ -107,6 +108,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - mediatek,mt8188-smi-sub-common
               - mediatek,mt8195-smi-sub-common
     then:
       required:
diff --git a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
index 2381660b324c..2e86bb3455f9 100644
--- a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
@@ -69,6 +69,12 @@ properties:
     description: the hardware id of this larb. It's only required when this
       hardware id is not consecutive from its M4U point of view.

+  resets:
+    maxItems: 1
+
+  reset-names:
+    const: larb
+
 required:
   - compatible
   - reg
@@ -125,6 +131,20 @@ allOf:
       required:
         - mediatek,larb-id

+  - if:  # only for image, camera and ipe subsys
+      properties:
+        compatible:
+          const: mediatek,mt8188-smi-larb
+        mediatek,larb-id:
+          oneOf:
+            - enum:
+                [ 9, 10, 11, 12, 13, 16, 17, 18, 19, 20 ]
+
+    then:
+      required:
+        - resets
+        - reset-names
+
 additionalProperties: false

 examples:
--
2.46.0
Re: [PATCH v4 1/2] dt-bindings: memory: mediatek: Add SMI reset and clamp for MT8188
Posted by AngeloGioacchino Del Regno 9 months, 3 weeks ago
Il 21/02/25 08:48, Friday Yang ha scritto:
> From: "Friday Yang" <friday.yang@mediatek.com>
> 
> On the MediaTek platform, some SMI LARBs are directly connected to
> the SMI Common, while others are connected to the SMI Sub-Common,
> which in turn is connected to the SMI Common. The hardware block
> diagram can be described as follows.
> 
>               SMI-Common(Smart Multimedia Interface Common)
>                   |
>           +----------------+------------------+
>           |                |                  |
>           |                |                  |
>           |                |                  |
>           |                |                  |
>           |                |                  |
>         larb0       SMI-Sub-Common0     SMI-Sub-Common1
>                     |      |     |      |             |
>                    larb1  larb2 larb3  larb7       larb9
> 
> For previous discussion on the direction of the code modifications,
> please refer to:
> https://lore.kernel.org/all/CAFGrd9qZhObQXvm2_abqaX83xMLqxjQETB2=
> wXpobDWU1CnvkA@mail.gmail.com/
> https://lore.kernel.org/all/CAPDyKFpokXV2gJDgowbixTvOH_5VL3B5H8ey
> hP+KJ5Fasm2rFg@mail.gmail.com/
> 
> On the MediaTek MT8188 SoC platform, we encountered power-off failures
> and SMI bus hang issues during camera stress tests. The issue arises
> because bus glitches are sometimes produced when MTCMOS powers on or
> off. While this is fairly normal, the software must handle these
> glitches to avoid mistaking them for transaction signals. What's
> more, this issue emerged only after the initial upstreaming of this
> binding. Without these patches, the SMI becomes unstable during camera
> stress tests.
> 
> The software solutions can be summarized as follows:
> 
> 1. Use CLAMP to disable the SMI sub-common port after turning off the
>     LARB CG and before turning off the LARB MTCMOS.
> 2. Use CLAMP to disable/enable the SMI sub-common port.
> 3. Implement an AXI reset for SMI LARBs.
> 
> This patch primarily add two changes:
> 1. Add compatible for SMI sub-common on MT8188 SoC.
> 2. Add 'resets' and 'reset-names' properties for SMI LARBs to
>     support SMI reset operations.
> 
> Signed-off-by: Friday Yang <friday.yang@mediatek.com>
> ---
>   .../mediatek,smi-common.yaml                  |  2 ++
>   .../memory-controllers/mediatek,smi-larb.yaml | 20 +++++++++++++++++++
>   2 files changed, 22 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.yaml b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.yaml
> index 2f36ac23604c..4392d349878c 100644
> --- a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.yaml
> +++ b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.yaml
> @@ -39,6 +39,7 @@ properties:
>             - mediatek,mt8186-smi-common
>             - mediatek,mt8188-smi-common-vdo
>             - mediatek,mt8188-smi-common-vpp
> +          - mediatek,mt8188-smi-sub-common
>             - mediatek,mt8192-smi-common
>             - mediatek,mt8195-smi-common-vdo
>             - mediatek,mt8195-smi-common-vpp
> @@ -107,6 +108,7 @@ allOf:
>           compatible:
>             contains:
>               enum:
> +              - mediatek,mt8188-smi-sub-common
>                 - mediatek,mt8195-smi-sub-common
>       then:
>         required:
> diff --git a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
> index 2381660b324c..2e86bb3455f9 100644
> --- a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
> +++ b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
> @@ -69,6 +69,12 @@ properties:
>       description: the hardware id of this larb. It's only required when this
>         hardware id is not consecutive from its M4U point of view.
> 
> +  resets:
> +    maxItems: 1
> +
> +  reset-names:
> +    const: larb
> +
>   required:
>     - compatible
>     - reg
> @@ -125,6 +131,20 @@ allOf:
>         required:
>           - mediatek,larb-id
> 
> +  - if:  # only for image, camera and ipe subsys
> +      properties:
> +        compatible:
> +          const: mediatek,mt8188-smi-larb
> +        mediatek,larb-id:
> +          oneOf:

Are you really sure that you need 'oneOf' here? :-)

Regards,
Angelo

> +            - enum:
> +                [ 9, 10, 11, 12, 13, 16, 17, 18, 19, 20 ]
> +
> +    then:
> +      required:
> +        - resets
> +        - reset-names
> +
>   additionalProperties: false
> 
>   examples:
> --
> 2.46.0
>
Re: [PATCH v4 1/2] dt-bindings: memory: mediatek: Add SMI reset and clamp for MT8188
Posted by Friday Yang (杨阳) 9 months, 2 weeks ago
On Mon, 2025-02-24 at 09:41 +0100, AngeloGioacchino Del Regno wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> 
> 
> Il 21/02/25 08:48, Friday Yang ha scritto:
> > From: "Friday Yang" <friday.yang@mediatek.com>
> > 
> > On the MediaTek platform, some SMI LARBs are directly connected to
> > the SMI Common, while others are connected to the SMI Sub-Common,
> > which in turn is connected to the SMI Common. The hardware block
> > diagram can be described as follows.
> > 
> >               SMI-Common(Smart Multimedia Interface Common)
> >                   |
> >           +----------------+------------------+
> >           |                |                  |
> >           |                |                  |
> >           |                |                  |
> >           |                |                  |
> >           |                |                  |
> >         larb0       SMI-Sub-Common0     SMI-Sub-Common1
> >                     |      |     |      |             |
> >                    larb1  larb2 larb3  larb7       larb9
> > 
> > For previous discussion on the direction of the code modifications,
> > please refer to:
> > https://lore.kernel.org/all/CAFGrd9qZhObQXvm2_abqaX83xMLqxjQETB2=
> > wXpobDWU1CnvkA@mail.gmail.com/
> > https://lore.kernel.org/all/CAPDyKFpokXV2gJDgowbixTvOH_5VL3B5H8ey
> > hP+KJ5Fasm2rFg@mail.gmail.com/
> > 
> > On the MediaTek MT8188 SoC platform, we encountered power-off
> > failures
> > and SMI bus hang issues during camera stress tests. The issue
> > arises
> > because bus glitches are sometimes produced when MTCMOS powers on
> > or
> > off. While this is fairly normal, the software must handle these
> > glitches to avoid mistaking them for transaction signals. What's
> > more, this issue emerged only after the initial upstreaming of this
> > binding. Without these patches, the SMI becomes unstable during
> > camera
> > stress tests.
> > 
> > The software solutions can be summarized as follows:
> > 
> > 1. Use CLAMP to disable the SMI sub-common port after turning off
> > the
> >     LARB CG and before turning off the LARB MTCMOS.
> > 2. Use CLAMP to disable/enable the SMI sub-common port.
> > 3. Implement an AXI reset for SMI LARBs.
> > 
> > This patch primarily add two changes:
> > 1. Add compatible for SMI sub-common on MT8188 SoC.
> > 2. Add 'resets' and 'reset-names' properties for SMI LARBs to
> >     support SMI reset operations.
> > 
> > Signed-off-by: Friday Yang <friday.yang@mediatek.com>
> > ---
> >   .../mediatek,smi-common.yaml                  |  2 ++
> >   .../memory-controllers/mediatek,smi-larb.yaml | 20
> > +++++++++++++++++++
> >   2 files changed, 22 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/memory-
> > controllers/mediatek,smi-common.yaml
> > b/Documentation/devicetree/bindings/memory-
> > controllers/mediatek,smi-common.yaml
> > index 2f36ac23604c..4392d349878c 100644
> > --- a/Documentation/devicetree/bindings/memory-
> > controllers/mediatek,smi-common.yaml
> > +++ b/Documentation/devicetree/bindings/memory-
> > controllers/mediatek,smi-common.yaml
> > @@ -39,6 +39,7 @@ properties:
> >             - mediatek,mt8186-smi-common
> >             - mediatek,mt8188-smi-common-vdo
> >             - mediatek,mt8188-smi-common-vpp
> > +          - mediatek,mt8188-smi-sub-common
> >             - mediatek,mt8192-smi-common
> >             - mediatek,mt8195-smi-common-vdo
> >             - mediatek,mt8195-smi-common-vpp
> > @@ -107,6 +108,7 @@ allOf:
> >           compatible:
> >             contains:
> >               enum:
> > +              - mediatek,mt8188-smi-sub-common
> >                 - mediatek,mt8195-smi-sub-common
> >       then:
> >         required:
> > diff --git a/Documentation/devicetree/bindings/memory-
> > controllers/mediatek,smi-larb.yaml
> > b/Documentation/devicetree/bindings/memory-
> > controllers/mediatek,smi-larb.yaml
> > index 2381660b324c..2e86bb3455f9 100644
> > --- a/Documentation/devicetree/bindings/memory-
> > controllers/mediatek,smi-larb.yaml
> > +++ b/Documentation/devicetree/bindings/memory-
> > controllers/mediatek,smi-larb.yaml
> > @@ -69,6 +69,12 @@ properties:
> >       description: the hardware id of this larb. It's only required
> > when this
> >         hardware id is not consecutive from its M4U point of view.
> > 
> > +  resets:
> > +    maxItems: 1
> > +
> > +  reset-names:
> > +    const: larb
> > +
> >   required:
> >     - compatible
> >     - reg
> > @@ -125,6 +131,20 @@ allOf:
> >         required:
> >           - mediatek,larb-id
> > 
> > +  - if:  # only for image, camera and ipe subsys
> > +      properties:
> > +        compatible:
> > +          const: mediatek,mt8188-smi-larb
> > +        mediatek,larb-id:
> > +          oneOf:
> 
> Are you really sure that you need 'oneOf' here? :-)
> 
> Regards,
> Angelo

Yes, I have tested it. If I try to modify the 'examples'
like this. That is:
  change the compatible to "mediatek,mt8188-smi-larb",
  add 'mediatek,larb-id = <10>;'

examples:
  - |+
    #include <dt-bindings/clock/mt8173-clk.h>
    #includ
e <dt-bindings/power/mt8173-power.h>

    larb1: larb@16010000 {
      compatible = "mediatek,mt8188-smi-larb";
      reg = <0x16010000 0x1000>;
      mediatek,smi = <&smi_common>;
      mediatek,larb-id = <10>;
      power-domains = <&scpsys MT8188_POWER_DOMAIN_VDEC>;
      clocks = <&vdecsys CLK_VDEC_CKEN>,
               <&vdecsys CLK_VDEC_LARB_CKEN>;
      clock-names = "apb", "smi";
    };

The 'dt_binding_check' could give the following
errors:

Documentation/devicetree/bindings/memory-controllers/mediatek,smi-
larb.example.dtb: larb@16010000: 'resets' is a required property
from schema $id: 
http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml#
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-
larb.example.dtb: larb@16010000: 'reset-names' is a required property
from schema $id:  
http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml#

And this is what I want to achieve. On the MediaTek MT8188 SoC
platform, 'resets' and 'reset-names' are only required for SMI LARBs
located in image, camera and ipe subsys. Others can be ignored. And the
'larb-id' of these SMI LARBs are shown in this array: [ 9, 10, 11, 12,
13, 16, 17, 18, 19, 20 ].

Please feel free to let me know if you have any doubts.

> 
> > +            - enum:
> > +                [ 9, 10, 11, 12, 13, 16, 17, 18, 19, 20 ]
> > +
> > +    then:
> > +      required:
> > +        - resets
> > +        - reset-names
> > +
> >   additionalProperties: false
> > 
> >   examples:
> > --
> > 2.46.0
> > 
> 
> 
> 
Re: [PATCH v4 1/2] dt-bindings: memory: mediatek: Add SMI reset and clamp for MT8188
Posted by Krzysztof Kozlowski 9 months, 2 weeks ago
On 06/03/2025 13:45, Friday Yang (杨阳) wrote:
>>> +          const: mediatek,mt8188-smi-larb
>>> +        mediatek,larb-id:
>>> +          oneOf:
>>
>> Are you really sure that you need 'oneOf' here? :-)
>>
>> Regards,
>> Angelo
> 
> Yes, I have tested it. If I try to modify the 'examples'
> like this. That is:
>   change the compatible to "mediatek,mt8188-smi-larb",
>   add 'mediatek,larb-id = <10>;'
> 
> examples:
>   - |+
>     #include <dt-bindings/clock/mt8173-clk.h>
>     #includ
> e <dt-bindings/power/mt8173-power.h>
> 
>     larb1: larb@16010000 {
>       compatible = "mediatek,mt8188-smi-larb";
>       reg = <0x16010000 0x1000>;
>       mediatek,smi = <&smi_common>;
>       mediatek,larb-id = <10>;
>       power-domains = <&scpsys MT8188_POWER_DOMAIN_VDEC>;
>       clocks = <&vdecsys CLK_VDEC_CKEN>,
>                <&vdecsys CLK_VDEC_LARB_CKEN>;
>       clock-names = "apb", "smi";
>     };
> 
> The 'dt_binding_check' could give the following
> errors:
> 
> Documentation/devicetree/bindings/memory-controllers/mediatek,smi-
> larb.example.dtb: larb@16010000: 'resets' is a required property
> from schema $id: 
> http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml#
> Documentation/devicetree/bindings/memory-controllers/mediatek,smi-
> larb.example.dtb: larb@16010000: 'reset-names' is a required property
> from schema $id:  
> http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml#
> 
> And this is what I want to achieve. On the MediaTek MT8188 SoC
> platform, 'resets' and 'reset-names' are only required for SMI LARBs
> located in image, camera and ipe subsys. Others can be ignored. And the
> 'larb-id' of these SMI LARBs are shown in this array: [ 9, 10, 11, 12,
> 13, 16, 17, 18, 19, 20 ].
> 
> Please feel free to let me know if you have any doubts.

You did not really answer the question. Where is anything about oneOf in
your reply?

I am dropping this patchset from my queue.

Best regards,
Krzysztof
Re: [PATCH v4 1/2] dt-bindings: memory: mediatek: Add SMI reset and clamp for MT8188
Posted by Friday Yang (杨阳) 9 months, 2 weeks ago
On Thu, 2025-03-06 at 13:48 +0100, Krzysztof Kozlowski wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> 
> 
> On 06/03/2025 13:45, Friday Yang (杨阳) wrote:
> > > > +          const: mediatek,mt8188-smi-larb
> > > > +        mediatek,larb-id:
> > > > +          oneOf:
> > > 
> > > Are you really sure that you need 'oneOf' here? :-)
> > > 
> > > Regards,
> > > Angelo
> > 
> > Yes, I have tested it. If I try to modify the 'examples'
> > like this. That is:
> >   change the compatible to "mediatek,mt8188-smi-larb",
> >   add 'mediatek,larb-id = <10>;'
> > 
> > examples:
> >   - |+
> >     #include <dt-bindings/clock/mt8173-clk.h>
> >     #includ
> > e <dt-bindings/power/mt8173-power.h>
> > 
> >     larb1: larb@16010000 {
> >       compatible = "mediatek,mt8188-smi-larb";
> >       reg = <0x16010000 0x1000>;
> >       mediatek,smi = <&smi_common>;
> >       mediatek,larb-id = <10>;
> >       power-domains = <&scpsys MT8188_POWER_DOMAIN_VDEC>;
> >       clocks = <&vdecsys CLK_VDEC_CKEN>,
> >                <&vdecsys CLK_VDEC_LARB_CKEN>;
> >       clock-names = "apb", "smi";
> >     };
> > 
> > The 'dt_binding_check' could give the following
> > errors:
> > 
> > Documentation/devicetree/bindings/memory-controllers/mediatek,smi-
> > larb.example.dtb: larb@16010000: 'resets' is a required property
> > from schema $id:
> > 
https://urldefense.com/v3/__http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml*__;Iw!!CTRNKA9wMg0ARbw!kEwWhxyfjVtuHKBHazZGRaFdlmrU2bcIsiVDcsUDzEIManMw2XIG9RgOzq773vtmqlR9_sWZDFhU09SV$
> > Documentation/devicetree/bindings/memory-controllers/mediatek,smi-
> > larb.example.dtb: larb@16010000: 'reset-names' is a required
> > property
> > from schema $id:
> > 
https://urldefense.com/v3/__http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml*__;Iw!!CTRNKA9wMg0ARbw!kEwWhxyfjVtuHKBHazZGRaFdlmrU2bcIsiVDcsUDzEIManMw2XIG9RgOzq773vtmqlR9_sWZDFhU09SV$
> > 
> > And this is what I want to achieve. On the MediaTek MT8188 SoC
> > platform, 'resets' and 'reset-names' are only required for SMI
> > LARBs
> > located in image, camera and ipe subsys. Others can be ignored. And
> > the
> > 'larb-id' of these SMI LARBs are shown in this array: [ 9, 10, 11,
> > 12,
> > 13, 16, 17, 18, 19, 20 ].
> > 
> > Please feel free to let me know if you have any doubts.
> 
> You did not really answer the question. Where is anything about oneOf
> in
> your reply?
> 
> I am dropping this patchset from my queue.
> 

In this SoC, we encountered power-off failures and SMI bus hang issues
during camera stress tests. SMI LARBs located in the image, IPE, and
camera subsystems need to implement a reset, while other LARBs do not
require it.

The 'mediatek,larb-id' for SMI LARBs in the image, IPE, and camera
subsystems are as follows:
- image subsystem: 9, 10, 11, 12, 16
- IPE subsystem: 13
- camera subsystem: 17, 18, 19, 20

Therefore, we believe that 'mediatek,larb-id' should be 'oneOf' the
values in the array. Could this answer the question, or is there
another property I should use in this situation?

> Best regards,
> Krzysztof
Re: [PATCH v4 1/2] dt-bindings: memory: mediatek: Add SMI reset and clamp for MT8188
Posted by Krzysztof Kozlowski 9 months, 2 weeks ago
On 07/03/2025 07:38, Friday Yang (杨阳) wrote:
> On Thu, 2025-03-06 at 13:48 +0100, Krzysztof Kozlowski wrote:
>> External email : Please do not click links or open attachments until
>> you have verified the sender or the content.
>>
>>
>> On 06/03/2025 13:45, Friday Yang (杨阳) wrote:
>>>>> +          const: mediatek,mt8188-smi-larb
>>>>> +        mediatek,larb-id:
>>>>> +          oneOf:
>>>>
>>>> Are you really sure that you need 'oneOf' here? :-)
>>>>
>>>> Regards,
>>>> Angelo
>>>
>>> Yes, I have tested it. If I try to modify the 'examples'
>>> like this. That is:
>>>   change the compatible to "mediatek,mt8188-smi-larb",
>>>   add 'mediatek,larb-id = <10>;'
>>>
>>> examples:
>>>   - |+
>>>     #include <dt-bindings/clock/mt8173-clk.h>
>>>     #includ
>>> e <dt-bindings/power/mt8173-power.h>
>>>
>>>     larb1: larb@16010000 {
>>>       compatible = "mediatek,mt8188-smi-larb";
>>>       reg = <0x16010000 0x1000>;
>>>       mediatek,smi = <&smi_common>;
>>>       mediatek,larb-id = <10>;
>>>       power-domains = <&scpsys MT8188_POWER_DOMAIN_VDEC>;
>>>       clocks = <&vdecsys CLK_VDEC_CKEN>,
>>>                <&vdecsys CLK_VDEC_LARB_CKEN>;
>>>       clock-names = "apb", "smi";
>>>     };
>>>
>>> The 'dt_binding_check' could give the following
>>> errors:
>>>
>>> Documentation/devicetree/bindings/memory-controllers/mediatek,smi-
>>> larb.example.dtb: larb@16010000: 'resets' is a required property
>>> from schema $id:
>>>
> https://urldefense.com/v3/__http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml*__;Iw!!CTRNKA9wMg0ARbw!kEwWhxyfjVtuHKBHazZGRaFdlmrU2bcIsiVDcsUDzEIManMw2XIG9RgOzq773vtmqlR9_sWZDFhU09SV$
>>> Documentation/devicetree/bindings/memory-controllers/mediatek,smi-
>>> larb.example.dtb: larb@16010000: 'reset-names' is a required
>>> property
>>> from schema $id:
>>>
> https://urldefense.com/v3/__http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml*__;Iw!!CTRNKA9wMg0ARbw!kEwWhxyfjVtuHKBHazZGRaFdlmrU2bcIsiVDcsUDzEIManMw2XIG9RgOzq773vtmqlR9_sWZDFhU09SV$
>>>
>>> And this is what I want to achieve. On the MediaTek MT8188 SoC
>>> platform, 'resets' and 'reset-names' are only required for SMI
>>> LARBs
>>> located in image, camera and ipe subsys. Others can be ignored. And
>>> the
>>> 'larb-id' of these SMI LARBs are shown in this array: [ 9, 10, 11,
>>> 12,
>>> 13, 16, 17, 18, 19, 20 ].
>>>
>>> Please feel free to let me know if you have any doubts.
>>
>> You did not really answer the question. Where is anything about oneOf
>> in
>> your reply?
>>
>> I am dropping this patchset from my queue.
>>
> 
> In this SoC, we encountered power-off failures and SMI bus hang issues
> during camera stress tests. SMI LARBs located in the image, IPE, and
> camera subsystems need to implement a reset, while other LARBs do not
> require it.
> 
> The 'mediatek,larb-id' for SMI LARBs in the image, IPE, and camera
> subsystems are as follows:
> - image subsystem: 9, 10, 11, 12, 16
> - IPE subsystem: 13
> - camera subsystem: 17, 18, 19, 20
> 
> Therefore, we believe that 'mediatek,larb-id' should be 'oneOf' the


So explain me where is the second condition?

Best regards,
Krzysztof
Re: [PATCH v4 1/2] dt-bindings: memory: mediatek: Add SMI reset and clamp for MT8188
Posted by Friday Yang (杨阳) 9 months, 2 weeks ago
On Fri, 2025-03-07 at 08:04 +0100, Krzysztof Kozlowski wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> 
> 
> On 07/03/2025 07:38, Friday Yang (杨阳) wrote:
> > On Thu, 2025-03-06 at 13:48 +0100, Krzysztof Kozlowski wrote:
> > > External email : Please do not click links or open attachments
> > > until
> > > you have verified the sender or the content.
> > > 
> > > 
> > > On 06/03/2025 13:45, Friday Yang (杨阳) wrote:
> > > > > > +          const: mediatek,mt8188-smi-larb
> > > > > > +        mediatek,larb-id:
> > > > > > +          oneOf:
> > > > > 
> > > > > Are you really sure that you need 'oneOf' here? :-)
> > > > > 
> > > > > Regards,
> > > > > Angelo
> > > > 
> > > > Yes, I have tested it. If I try to modify the 'examples'
> > > > like this. That is:
> > > >   change the compatible to "mediatek,mt8188-smi-larb",
> > > >   add 'mediatek,larb-id = <10>;'
> > > > 
> > > > examples:
> > > >   - |+
> > > >     #include <dt-bindings/clock/mt8173-clk.h>
> > > >     #includ
> > > > e <dt-bindings/power/mt8173-power.h>
> > > > 
> > > >     larb1: larb@16010000 {
> > > >       compatible = "mediatek,mt8188-smi-larb";
> > > >       reg = <0x16010000 0x1000>;
> > > >       mediatek,smi = <&smi_common>;
> > > >       mediatek,larb-id = <10>;
> > > >       power-domains = <&scpsys MT8188_POWER_DOMAIN_VDEC>;
> > > >       clocks = <&vdecsys CLK_VDEC_CKEN>,
> > > >                <&vdecsys CLK_VDEC_LARB_CKEN>;
> > > >       clock-names = "apb", "smi";
> > > >     };
> > > > 
> > > > The 'dt_binding_check' could give the following
> > > > errors:
> > > > 
> > > > Documentation/devicetree/bindings/memory-
> > > > controllers/mediatek,smi-
> > > > larb.example.dtb: larb@16010000: 'resets' is a required
> > > > property
> > > > from schema $id:
> > > > 
> > 
> > 
https://urldefense.com/v3/__http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml*__;Iw!!CTRNKA9wMg0ARbw!kEwWhxyfjVtuHKBHazZGRaFdlmrU2bcIsiVDcsUDzEIManMw2XIG9RgOzq773vtmqlR9_sWZDFhU09SV$
> > > > Documentation/devicetree/bindings/memory-
> > > > controllers/mediatek,smi-
> > > > larb.example.dtb: larb@16010000: 'reset-names' is a required
> > > > property
> > > > from schema $id:
> > > > 
> > 
> > 
https://urldefense.com/v3/__http://devicetree.org/schemas/memory-controllers/mediatek,smi-larb.yaml*__;Iw!!CTRNKA9wMg0ARbw!kEwWhxyfjVtuHKBHazZGRaFdlmrU2bcIsiVDcsUDzEIManMw2XIG9RgOzq773vtmqlR9_sWZDFhU09SV$
> > > > 
> > > > And this is what I want to achieve. On the MediaTek MT8188 SoC
> > > > platform, 'resets' and 'reset-names' are only required for SMI
> > > > LARBs
> > > > located in image, camera and ipe subsys. Others can be ignored.
> > > > And
> > > > the
> > > > 'larb-id' of these SMI LARBs are shown in this array: [ 9, 10,
> > > > 11,
> > > > 12,
> > > > 13, 16, 17, 18, 19, 20 ].
> > > > 
> > > > Please feel free to let me know if you have any doubts.
> > > 
> > > You did not really answer the question. Where is anything about
> > > oneOf
> > > in
> > > your reply?
> > > 
> > > I am dropping this patchset from my queue.
> > > 
> > 
> > In this SoC, we encountered power-off failures and SMI bus hang
> > issues
> > during camera stress tests. SMI LARBs located in the image, IPE,
> > and
> > camera subsystems need to implement a reset, while other LARBs do
> > not
> > require it.
> > 
> > The 'mediatek,larb-id' for SMI LARBs in the image, IPE, and camera
> > subsystems are as follows:
> > - image subsystem: 9, 10, 11, 12, 16
> > - IPE subsystem: 13
> > - camera subsystem: 17, 18, 19, 20
> > 
> > Therefore, we believe that 'mediatek,larb-id' should be 'oneOf' the
> 
> 
> So explain me where is the second condition?
> 

Sorry for the misunderstanding. I should fix it like this:
just delete 'oneOf' and use 'enum'

  - if:  # only for camera and image subsys
      properties:
        com
patible:
          const: mediatek,mt8188-smi-larb
        mediatek,larb-
id:
          enum:
            [ 9, 10, 11, 12, 13, 16, 17, 18, 19, 20 ]

    then:
      required:
        - resets
        - reset-names

> Best regards,
> Krzysztof
Re: [PATCH v4 1/2] dt-bindings: memory: mediatek: Add SMI reset and clamp for MT8188
Posted by Krzysztof Kozlowski 9 months, 2 weeks ago
On 07/03/2025 09:14, Friday Yang (杨阳) wrote:
>>> The 'mediatek,larb-id' for SMI LARBs in the image, IPE, and camera
>>> subsystems are as follows:
>>> - image subsystem: 9, 10, 11, 12, 16
>>> - IPE subsystem: 13
>>> - camera subsystem: 17, 18, 19, 20
>>>
>>> Therefore, we believe that 'mediatek,larb-id' should be 'oneOf' the
>>
>>
>> So explain me where is the second condition?
>>
> 
> Sorry for the misunderstanding. I should fix it like this:
> just delete 'oneOf' and use 'enum'
> 
>   - if:  # only for camera and image subsys
>       properties:
>         com
> patible:
>           const: mediatek,mt8188-smi-larb
>         mediatek,larb-
> id:
>           enum:
>             [ 9, 10, 11, 12, 13, 16, 17, 18, 19, 20 ]
Yes

Best regards,
Krzysztof