[PATCH 2/4] dt-bindings: memory: mediatek: Add smi-sub-common property for reset

Friday Yang (杨阳) Friday.Yang at mediatek.com
Fri Oct 25 02:32:55 PDT 2024


On Thu, 2024-10-24 at 08:38 +0200, Krzysztof Kozlowski wrote:
>  	 
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>  On 24/10/2024 03:28, Friday Yang (杨阳) wrote:
> > On Wed, 2024-08-21 at 10:55 +0200, Krzysztof Kozlowski wrote:
> >>   
> >> External email : Please do not click links or open attachments
> until
> >> you have verified the sender or the content.
> >>  On 21/08/2024 10:26, friday.yang wrote:
> >>> On the MediaTek platform, some SMI LARBs are directly linked to
> SMI
> >>> common. While some SMI LARBs are linked to SMI sub common, then
> SMI
> >>> sub common is linked to SMI common. Add 'mediatek,smi-sub-comm'
> and
> >>> 'mediatek,smi-sub-comm-in-portid' properties here. The SMI reset
> >>> driver could query which port of the SMI sub common the current
> >> LARB
> >>> is linked to through the two properties. The hardware block
> diagram
> >>> could be described as below.
> >>>
> >>>              SMI Common(Smart Multimedia Interface Common)
> >>>                  |
> >>>          +----------------+-------
> >>>          |                |
> >>>          |                |
> >>>          |                |
> >>>          |                |
> >>>          |                |
> >>>        larb0       SMI Sub Common
> >>>                    |      |     |
> >>>                   larb1  larb2 larb3
> >>>
> >>> Signed-off-by: friday.yang <friday.yang at mediatek.com>
> >>> ---
> >>>  .../mediatek,smi-common.yaml                  |  2 ++
> >>>  .../memory-controllers/mediatek,smi-larb.yaml | 22
> >> +++++++++++++++++++
> >>>  2 files changed, 24 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..5f162bb360db 100644
> >>> --- a/Documentation/devicetree/bindings/memory-
> >> controllers/mediatek,smi-larb.yaml
> >>> +++ b/Documentation/devicetree/bindings/memory-
> >> controllers/mediatek,smi-larb.yaml
> >>> @@ -69,6 +69,16 @@ 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.
> >>>  
> >>> +  mediatek,smi-sub-comm:
> >>> +    $ref: /schemas/types.yaml#/definitions/phandle
> >>> +    description: a phandle of smi_sub_common that the larb is
> >> linked to.
> >>
> >> Why do you have to smi phandle properties per each node?
> >>
> > 
> > As shown in the picture from the commit message, we have multipule
> smi-
> > sub-common, each SMI larb may link to one of the smi-sub-common. So
> we
> > need the 'mediatek,smi-sub-comm' to describe which smi-sub-common
> the
> > larb is linked to.
> > In next version, I will add two smi-sub-common to the diagram in
> the
> > commit message.
> 
> You respond two months after... That email conversation is not even
> in
> my mailbox anymore.
> 
> Anyway, sub-common are subnodes, no?
> 


                         IOMMU
                           |
                     SMI Common(Smart Multimedia Interface Common)
                           |
          +----------------+------------------------+
          |                |                        |
          |                |                        |
          |                |                        |
          |                |                        |
          |                |                        |
       larb0       SMI-Sub-Common0          SMI-Sub-Common1
                   |       |     |          |             |
                  larb2   larb4  larb5   larb1         larb7

This is the new version diagram.
In MediaTek platform, some larbs are linked to SMI Common, while some
other larbs are linked to smi-sub-common. Different platforms have
different hardware structures.

In the device tree, smi sub common is not a child node, but is at the
same level as smi common. 'sub' is just a internal name rule.
And 'mediatek,smi' is used to describe this connection. 
Example as below...

> > 
> >>> +
> >>> +  mediatek,smi-sub-comm-in-portid:
> >>> +    $ref: /schemas/types.yaml#/definitions/uint32
> >>> +    minimum: 0
> >>> +    maximum: 7
> >>> +    description: which port of smi_sub_common that the larb is
> >> linked to.
> >>
> >> Merge it into phandle.
> >>
> > 
> > Just confirm,
> > Do you mean merge these two into one property, like:
> > mediatek,smi-sub-comm = <&phandle port-id>;
> 
> Yes
> 

We will remove 'mediatek,smi-sub-comm', which should be redundant.
Merge this 'mediatek,smi-sub-comm-in-portid' into 'mediatek,smi', is
this OK for you?

		smi_common_vdo: smi at 1c024000 {
			compatible = "mediatek,mt8188-smi-common-vdo";
			reg = <0 0x1c024000 0 0x1000>;
			...
		};
		
		smi_sub_common_img0_4x1: smi at 15002000 {
			compatible = "mediatek,mt8188-smi-sub-common";
			reg = <0 0x15002000 0 0x1000>;
			mediatek,smi = <&smi_common_vpp 5>;
			....
		};

		larb10: larb at 15120000 {
			compatible = "mediatek,mt8188-smi-larb";
			reg = <0 0x15120000 0 0x1000>;
			mediatek,smi = <&smi_sub_common_img0_4x1 1>;
			...
		};

> 
> Best regards,
> Krzysztof
> 


More information about the linux-arm-kernel mailing list