On Fri, Nov 14, 2025 at 12:13:34PM +0530, Swamil Jain wrote: > TI's AM62P SoC contains two instances of the TI Keystone Display > SubSystem (DSS), each with two video ports and two video planes. These > instances support up to three independent video streams through OLDI, > DPI, and DSI interfaces. > > DSS0 (first instance) supports: > - Two OLDI transmitters on video port 1, configurable in dual-link or > single-link mode. > - DPI output on video port 2. > > DSS1 (second instance) supports: > - One OLDI transmitter on video port 1 (single-link mode only). > - DSI controller output on video port 2. > > The two OLDI transmitters can be configured in clone mode to drive a > pair of identical OLDI single-link displays. DPI outputs from > DSS0 VP2, DSS1 VP1, and DSS1 VP2 are multiplexed, allowing only one > DPI output at a time. > > Add the compatible string "ti,am62p-dss" and update related > description accordingly. > > AM62P has different power domains for DSS and OLDI compared to other > Keystone SoCs. Therefore, add 'minItems' and set to 1 and update the > 'maxItems' field in the power-domains property to 3 for the > "ti,am62p-dss" compatible entry to reflect this hardware difference. > > Signed-off-by: Swamil Jain <[email protected]> > --- > .../bindings/display/ti/ti,am65x-dss.yaml | 127 +++++++++++++++++- > 1 file changed, 126 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml > b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml > index 361e9cae6896..8bd188e7f09b 100644 > --- a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml > +++ b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml > @@ -24,6 +24,19 @@ description: | > DPI signals are also routed internally to DSI Tx controller present within > the > SoC. Due to clocking limitations only one of the interface i.e. either DSI > or > DPI can be used at once. > + The AM62P has two instances of TI Keystone Display SubSystem, each with two > + video ports and two video planes. These instances can support up to 3 > + independent video streams through OLDI, DPI, and DSI interfaces. > + DSS0 (first instance) supports: > + - Two OLDI TXes on video port 1, configurable in dual-link or > + single link clone mode > + - DPI output on video port 2 > + DSS1 (second instance) supports: > + - One OLDI TX on video port 1 (single-link mode only) > + - DSI controller output on video port 2 > + The two OLDI TXes can be configured in clone mode to drive a pair of > + identical OLDI single-link displays. DPI outputs from DSS0 VP2, DSS1 VP1, > + and DSS1 VP2 are muxed, allowing only one DPI output at a time. > > properties: > compatible: > @@ -31,6 +44,7 @@ properties: > - ti,am625-dss > - ti,am62a7-dss > - ti,am62l-dss > + - ti,am62p-dss > - ti,am65x-dss > > reg: > @@ -81,7 +95,8 @@ properties: > maxItems: 1 > > power-domains: > - maxItems: 1 > + minItems: 1 > + maxItems: 3 > description: phandle to the associated power domain > > dma-coherent: > @@ -347,3 +362,113 @@ examples:
I don't think you need a new 15 line example to add 2 power domains when
everything else remains the same.
Please also restrict the power domains by compatible. I'm not sure
reading this binding if the new device can function with 1 power domain,
but your binding permits that as well as not being clear that other
devices only need one.
pw-bot: changes-requested
Cheers,
Conor.
> };
> };
> };
> +
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/soc/ti,sci_pm_domain.h>
> +
> + dss0: dss@30200000 {
> + compatible = "ti,am62p-dss";
> + reg = <0x30200000 0x1000>, /* common */
> + <0x30202000 0x1000>, /* vidl1 */
> + <0x30206000 0x1000>, /* vid */
> + <0x30207000 0x1000>, /* ovr1 */
> + <0x30208000 0x1000>, /* ovr2 */
> + <0x3020a000 0x1000>, /* vp1: Used for OLDI */
> + <0x3020b000 0x1000>, /* vp2: Used as DPI Out */
> + <0x30201000 0x1000>; /* common1 */
> + reg-names = "common", "vidl1", "vid",
> + "ovr1", "ovr2", "vp1", "vp2", "common1";
> + power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>,
> + <&k3_pds 243 TI_SCI_PD_EXCLUSIVE>,
> + <&k3_pds 244 TI_SCI_PD_EXCLUSIVE>;
> + clocks = <&k3_clks 186 6>,
> + <&dss0_vp1_clk>,
> + <&k3_clks 186 2>;
> + clock-names = "fck", "vp1", "vp2";
> + interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
> +
> + oldi-transmitters {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + oldi0_am62p: oldi@0 {
> + reg = <0>;
> + clocks = <&k3_clks 186 0>;
> + clock-names = "serial";
> + ti,oldi-io-ctrl = <&dss_oldi_io_ctrl>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + oldi0_am62p_in: endpoint {
> + remote-endpoint = <&dpi0_am62p_out0>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> + oldi0_am62p_out: endpoint {
> + remote-endpoint = <&panel0_in>;
> + };
> + };
> + };
> + };
> +
> + oldi1_am62p: oldi@1 {
> + reg = <1>;
> + clocks = <&k3_clks 186 0>;
> + clock-names = "serial";
> + ti,oldi-io-ctrl = <&dss_oldi_io_ctrl>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + oldi1_am62p_in: endpoint {
> + remote-endpoint = <&dpi0_am62p_out1>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> + oldi1_am62p_out: endpoint {
> + remote-endpoint = <&panel1_in>;
> + };
> + };
> + };
> + };
> + };
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0>;
> + dpi0_am62p_out0: endpoint@0 {
> + reg = <0>;
> + remote-endpoint = <&oldi0_am62p_in>;
> + };
> + dpi0_am62p_out1: endpoint@1 {
> + reg = <1>;
> + remote-endpoint = <&oldi1_am62p_in>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> + dpi1_am62p_out: endpoint {
> + remote-endpoint = <&dpi_bridge>;
> + };
> + };
> + };
> + };
signature.asc
Description: PGP signature
