Re: [PATCH v4 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path

2024-05-20 Thread Alexandre Mergnat




On 20/05/2024 13:55, AngeloGioacchino Del Regno wrote:

Il 20/05/24 13:49, Alexandre Mergnat ha scritto:



On 20/05/2024 12:53, AngeloGioacchino Del Regno wrote:

So, I don't know how you want to manage multiple display, but IMHO there are 2 
ways:
- removing the current "oneOf".


...eh I think this should be anyOf instead :-)

I'll check later and send a v5.


"anyOf" behavior works as expected on my side, dt-validate pass ;)



Hey, thanks for the test, buys me some important time.


You're welcome, after that:

Reviewed-by: Alexandre Mergnat 
Tested-by: Alexandre Mergnat 

--
Regards,
Alexandre


Re: [PATCH v4 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path

2024-05-20 Thread AngeloGioacchino Del Regno

Il 20/05/24 13:49, Alexandre Mergnat ha scritto:



On 20/05/2024 12:53, AngeloGioacchino Del Regno wrote:
So, I don't know how you want to manage multiple display, but IMHO there are 2 
ways:

- removing the current "oneOf".


...eh I think this should be anyOf instead :-)

I'll check later and send a v5.


"anyOf" behavior works as expected on my side, dt-validate pass ;)



Hey, thanks for the test, buys me some important time.

Cheers!
Angelo


Re: [PATCH v4 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path

2024-05-20 Thread Alexandre Mergnat




On 20/05/2024 12:53, AngeloGioacchino Del Regno wrote:

So, I don't know how you want to manage multiple display, but IMHO there are 2 
ways:
- removing the current "oneOf".


...eh I think this should be anyOf instead :-)

I'll check later and send a v5.


"anyOf" behavior works as expected on my side, dt-validate pass ;)

--
Regards,
Alexandre


Re: [PATCH v4 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path

2024-05-20 Thread AngeloGioacchino Del Regno

Il 19/05/24 19:18, Alexandre Mergnat ha scritto:

Hi Angelo,

On 16/05/2024 10:11, AngeloGioacchino Del Regno wrote:

+    oneOf:
+  - required:
+  - endpoint@0
+  - required:
+  - endpoint@1
+  - required:
+  - endpoint@2


I'm not sure this is what you expect because I must remove this part to pass the 
dt-validate.


I have 2 possible display at the same time (DSI and DPI), then I add this in my 
DTSI:

     mmsys: syscon@1400 {
     compatible = "mediatek,mt8365-mmsys", "syscon";
     reg = <0 0x1400 0 0x1000>;
     #clock-cells = <1>;
     port {
     #address-cells = <1>;
     #size-cells = <0>;

     mmsys_main: endpoint@0 {
     reg = <0>;
     remote-endpoint = <_in>;
     };
     mmsys_ext: endpoint@1 {
     reg = <1>;
     remote-endpoint = <_in>;
     };
     };
     };

But the DTS check returns me an error:

dt-validate -s Documentation/devicetree/bindings 
arch/arm64/boot/dts/mediatek/mt8365-evk.dtb
/home/***/linux-upstream/arch/arm64/boot/dts/mediatek/mt8365-evk.dtb: 
syscon@1400: port: More than one condition true in oneOf schema:

     {'$ref': '/schemas/graph.yaml#/properties/port',
  'oneOf': [{'required': ['endpoint@0']},
    {'required': ['endpoint@1']},
    {'required': ['endpoint@2']}],
  'properties': {'endpoint@0': {'$ref': 
'/schemas/graph.yaml#/properties/endpoint'},
     'endpoint@1': {'$ref': 
'/schemas/graph.yaml#/properties/endpoint'},
     'endpoint@2': {'$ref': 
'/schemas/graph.yaml#/properties/endpoint'}}}
     from schema $id: 
http://devicetree.org/schemas/arm/mediatek/mediatek,mmsys.yaml#



In other hand, if I use "ports" to keep only one endpoint for each port:

     mmsys: syscon@1400 {
     compatible = "mediatek,mt8365-mmsys", "syscon";
     reg = <0 0x1400 0 0x1000>;
     #clock-cells = <1>;
     ports {
     #address-cells = <1>;
     #size-cells = <0>;

     port@0 {
     #address-cells = <1>;
     #size-cells = <0>;
     reg = <0>;
     mmsys_main: endpoint@0 {
     reg = <0>;
     remote-endpoint = <_in>;
     };
     };

     port@1 {
     #address-cells = <1>;
     #size-cells = <0>;
     reg = <1>;
     mmsys_ext: endpoint@1 {
     reg = <1>;
     remote-endpoint = <_in>;
     };
     };
     };
     };

The DTS check returns another error:

dt-validate -s Documentation/devicetree/bindings 
arch/arm64/boot/dts/mediatek/mt8365-evk.dtb
/home/***/linux-upstream/arch/arm64/boot/dts/mediatek/mt8365-evk.dtb: 
syscon@1400: 'ports' does not match any of the regexes: 'pinctrl-[0-9]+'
     from schema $id: 
http://devicetree.org/schemas/arm/mediatek/mediatek,mmsys.yaml#


Additionally, with the last DTS example, displays aren't working, probably because 
"ports" isn't well parsed.


So, I don't know how you want to manage multiple display, but IMHO there are 2 
ways:
- removing the current "oneOf".


...eh I think this should be anyOf instead :-)

I'll check later and send a v5.

Cheers,
Angelo


- adding the "ports" support in the documentation and driver (to be parsed).

Still possible I missed something and I doing shit :)






Re: [PATCH v4 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path

2024-05-19 Thread Alexandre Mergnat

Hi Angelo,

On 16/05/2024 10:11, AngeloGioacchino Del Regno wrote:

+oneOf:
+  - required:
+  - endpoint@0
+  - required:
+  - endpoint@1
+  - required:
+  - endpoint@2


I'm not sure this is what you expect because I must remove this part to pass 
the dt-validate.

I have 2 possible display at the same time (DSI and DPI), then I add this in my 
DTSI:

mmsys: syscon@1400 {
compatible = "mediatek,mt8365-mmsys", "syscon";
reg = <0 0x1400 0 0x1000>;
#clock-cells = <1>;
port {
#address-cells = <1>;
#size-cells = <0>;

mmsys_main: endpoint@0 {
reg = <0>;
remote-endpoint = <_in>;
};
mmsys_ext: endpoint@1 {
reg = <1>;
remote-endpoint = <_in>;
};
};
};

But the DTS check returns me an error:

dt-validate -s Documentation/devicetree/bindings 
arch/arm64/boot/dts/mediatek/mt8365-evk.dtb
/home/***/linux-upstream/arch/arm64/boot/dts/mediatek/mt8365-evk.dtb: syscon@1400: port: 
More than one condition true in oneOf schema:
{'$ref': '/schemas/graph.yaml#/properties/port', 

 'oneOf': [{'required': ['endpoint@0']}, 

   {'required': ['endpoint@1']}, 

   {'required': ['endpoint@2']}], 

 'properties': {'endpoint@0': {'$ref': '/schemas/graph.yaml#/properties/endpoint'}, 


'endpoint@1': {'$ref': 
'/schemas/graph.yaml#/properties/endpoint'},
'endpoint@2': {'$ref': '/schemas/graph.yaml#/properties/endpoint'}}} 


from schema $id: 
http://devicetree.org/schemas/arm/mediatek/mediatek,mmsys.yaml#


In other hand, if I use "ports" to keep only one endpoint for each port:

mmsys: syscon@1400 {
compatible = "mediatek,mt8365-mmsys", "syscon";
reg = <0 0x1400 0 0x1000>;
#clock-cells = <1>;
ports {
#address-cells = <1>;
#size-cells = <0>;

port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
mmsys_main: endpoint@0 {
reg = <0>;
remote-endpoint = <_in>;
};
};

port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
mmsys_ext: endpoint@1 {
reg = <1>;
remote-endpoint = <_in>;
};
};
};
};

The DTS check returns another error:

dt-validate -s Documentation/devicetree/bindings 
arch/arm64/boot/dts/mediatek/mt8365-evk.dtb
/home/***/linux-upstream/arch/arm64/boot/dts/mediatek/mt8365-evk.dtb: syscon@1400: 'ports' 
does not match any of the regexes: 'pinctrl-[0-9]+'

from schema $id: 
http://devicetree.org/schemas/arm/mediatek/mediatek,mmsys.yaml#

Additionally, with the last DTS example, displays aren't working, probably because "ports" isn't 
well parsed.


So, I don't know how you want to manage multiple display, but IMHO there are 2 
ways:
- removing the current "oneOf".
- adding the "ports" support in the documentation and driver (to be parsed).

Still possible I missed something and I doing shit :)

--
Regards,
Alexandre


Re: [PATCH v4 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path

2024-05-16 Thread AngeloGioacchino Del Regno

Il 16/05/24 11:23, CK Hu (胡俊光) ha scritto:

Hi, Angelo:

On Thu, 2024-05-16 at 10:11 +0200, AngeloGioacchino Del Regno wrote:

Document OF graph on MMSYS/VDOSYS: this supports up to three DDP paths
per HW instance (so potentially up to six displays for multi-vdo SoCs).

The MMSYS or VDOSYS is always the first component in the DDP pipeline,
so it only supports an output port with multiple endpoints - where each
endpoint defines the starting point for one of the (currently three)
possible hardware paths.

Reviewed-by: Rob Herring (Arm) 
Signed-off-by: AngeloGioacchino Del Regno 

---
  .../bindings/arm/mediatek/mediatek,mmsys.yaml | 28 +++
  1 file changed, 28 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml 
b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
index b3c6888c1457..0ef67ca4122b 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
@@ -93,6 +93,34 @@ properties:
'#reset-cells':
  const: 1
  
+  port:

+$ref: /schemas/graph.yaml#/properties/port
+description:
+  Output port node. This port connects the MMSYS/VDOSYS output to
+  the first component of one display pipeline, for example one of
+  the available OVL or RDMA blocks.
+  Some MediaTek SoCs support multiple display outputs per MMSYS.


The display pipeline number usually depend on how many display interface. 
Display interface is in the end of pipeline.



I have never stated that the display pipeline number depends on that.

Plus, the display interface is not described in the mmsys binding: this document
is only saying that mmsys' endpoint is to be connected to a (supported) 
component
of your choice. Nothing else.


In below case, two RDMA is merged into one pipeline and output to one display 
interface DP_INTF. This is usually ONE display.

RDMA -+
   Merge -> ... -> DP_INTF
RDMA -+

In below case, one RDMA data output to two display interface DSI and DPI. This 
is usually TWO display with the same content.

+-> DSI
RDMA -> ... -> +
+-> DPI



The actual content of a display is a software capability - if the hardware 
supports
that, and some MediaTek SoCs do, the connection does not happen at the endpoint 
of
mmsys, but later.


So the display pipeline number does not depend on the number of first 
component. It usually depend on the number of display interface.



I sure agree with that, but again, I have *never stated* that the display 
pipeline
number depends on the number of the first component.


Regards,
CK



+properties:
+  endpoint@0:
+$ref: /schemas/graph.yaml#/properties/endpoint
+description: Output to the primary display pipeline
+
+  endpoint@1:
+$ref: /schemas/graph.yaml#/properties/endpoint
+description: Output to the secondary display pipeline
+
+  endpoint@2:
+$ref: /schemas/graph.yaml#/properties/endpoint
+description: Output to the tertiary display pipeline
+
+oneOf:
+  - required:
+  - endpoint@0
+  - required:
+  - endpoint@1
+  - required:
+  - endpoint@2
+
  required:
- compatible
- reg





Re: [PATCH v4 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path

2024-05-16 Thread 胡俊光


[PATCH v4 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path

2024-05-16 Thread AngeloGioacchino Del Regno
Document OF graph on MMSYS/VDOSYS: this supports up to three DDP paths
per HW instance (so potentially up to six displays for multi-vdo SoCs).

The MMSYS or VDOSYS is always the first component in the DDP pipeline,
so it only supports an output port with multiple endpoints - where each
endpoint defines the starting point for one of the (currently three)
possible hardware paths.

Reviewed-by: Rob Herring (Arm) 
Signed-off-by: AngeloGioacchino Del Regno 

---
 .../bindings/arm/mediatek/mediatek,mmsys.yaml | 28 +++
 1 file changed, 28 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml 
b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
index b3c6888c1457..0ef67ca4122b 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
@@ -93,6 +93,34 @@ properties:
   '#reset-cells':
 const: 1
 
+  port:
+$ref: /schemas/graph.yaml#/properties/port
+description:
+  Output port node. This port connects the MMSYS/VDOSYS output to
+  the first component of one display pipeline, for example one of
+  the available OVL or RDMA blocks.
+  Some MediaTek SoCs support multiple display outputs per MMSYS.
+properties:
+  endpoint@0:
+$ref: /schemas/graph.yaml#/properties/endpoint
+description: Output to the primary display pipeline
+
+  endpoint@1:
+$ref: /schemas/graph.yaml#/properties/endpoint
+description: Output to the secondary display pipeline
+
+  endpoint@2:
+$ref: /schemas/graph.yaml#/properties/endpoint
+description: Output to the tertiary display pipeline
+
+oneOf:
+  - required:
+  - endpoint@0
+  - required:
+  - endpoint@1
+  - required:
+  - endpoint@2
+
 required:
   - compatible
   - reg
-- 
2.45.0