1. 28 Mar, 2023 3 commits
    • Jagan Teki's avatar
      drm: exynos: dsi: Mark PHY as optional · 9528af4a
      Jagan Teki authored
      The same Samsung MIPI DSIM master can also be used in NXP's
      i.MX8M Mini/Nano/Plus SoC.
      
      In i.MX8M Mini/Nano/Plus SoC the DSI Phy requires a MIPI DPHY
      bit to reset in order to activate the PHY and that can be done
      via upstream i.MX8M blk-ctrl driver.
      
      So, mark the phy get as optional.
      Tested-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Reviewed-by: default avatarFrieder Schrempf <frieder.schrempf@kontron.de>
      Reviewed-by: default avatarMarek Vasut <marex@denx.de>
      Signed-off-by: default avatarJagan Teki <jagan@amarulasolutions.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      9528af4a
    • Jagan Teki's avatar
      drm: exynos: dsi: Lookup OF-graph or Child node devices · e39a82bf
      Jagan Teki authored
      In general, for MIPI DSI there are three ways to represent the
      pipeline for an upstream bridge to find the connected downstream
      panel or bridge.
      
      1. Child panel or bridge as a conventional device tree child node.
      2. Child panel or bridge as an OF-graph port node.
      3. Child panel or bridge as an OF-graph ports node.
      
      There are three different downstream panels or bridges that are
      possible to connect an upstream DSI host bridge - DSI Panel,
      DSI Bridge, and I2C-Configured DSI bridge.
      
      An example of the downstream panel represented as a child node,
      
      &dsi {
         compatible = "samsung,exynos5433-mipi-dsi";
      
         ports {
              port@0 {
                   reg = <0>;
      
                   dsi_to_mic: endpoint {
                        remote-endpoint = <&mic_to_dsi>;
                   };
              };
         };
      
         panel@0 {
              reg = <0>;
         };
      };
      
      An example of the downstream bridge represented as a port node,
      
      &i2c4 {
         bridge@2c {
      	compatible = "ti,sn65dsi84";
      
              ports {
                   port@0 {
                        reg = <0>;
      
                        bridge_in_dsi: endpoint {
                             remote-endpoint = <&dsi_out_bridge>;
                             data-lanes = <1 2>;
                        };
                   };
      
      	     port@2 {
      	          reg = <2>;
      
                        bridge_out_panel: endpoint {
                             remote-endpoint = <&panel_out_bridge>;
                        };
                   };
              };
         };
      };
      
      &dsi {
         compatible = "fsl,imx8mm-mipi-dsim";
      
         port {
              dsi_in_lcdif: endpoint@0 {
      	     reg = <0>;
      	     remote-endpoint = <&lcdif_out_dsi>;
      	};
      
      	dsi_out_bridge: endpoint@1 {
      	     reg = <1>;
      	     remote-endpoint = <&bridge_in_dsi>;
      	};
         };
      };
      
      An example of the downstream bridge represented as a ports node,
      
      &dsi {
         compatible = "fsl,imx8mm-mipi-dsim";
      
         ports {
      	port@0 {
      	     reg = <0>;
      
      	     dsi_in_lcdif: endpoint@0 {
      		  reg = <0>;
      		  remote-endpoint = <&lcdif_out_dsi>;
      	     };
      	};
      
      	port@1 {
      	     reg = <1>;
      
      	     dsi_out_bridge: endpoint {
      		  remote-endpoint = <&bridge_in_dsi>;
      	     };
      	};
      };
      
      In, summary it is possible to represent all three downstream slaves
      devices using OF-graph port or ports node however only DSI Panel and
      DSI Bridge are possible but not possible to represent I2C-Configured
      DSI bridge child nodes since I2C-Configure bridges are child of I2C
      node, not upstream DSI host bridge and it is must represent them
      endpoint port linking.
      
      This indeed means, the OF-graph port or ports representation is
      mandatory for I2C-Configured DSI bridges.
      
      This patch tries to add an OF-graph port or ports representation
      detection code on top of existing child node detection.
      
      It is possible to replace the entire detection code using existing
      drm_of helper drm_of_find_panel_or_bridge but it will break the
      Exynos DSI since the pipeline doesn't support OF-graph port or ports
      node.
      
      Overall, this patch has a combination of child and OF-graph pipeline
      detections in order to support the backward compatibility of Exynos
      DSI child node and i.MX8M Mini/Nano/Plus OF-graph port or ports
      node pipelines.
      
      This is the first common DSI host bridge driver that needs to support
      all possible downstream connection pipeline combinations.
      Tested-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Reviewed-by: default avatarMarek Vasut <marex@denx.de>
      Signed-off-by: default avatarJagan Teki <jagan@amarulasolutions.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      e39a82bf
    • Jagan Teki's avatar
      drm: exynos: dsi: Drop explicit call to bridge detach · 56193b57
      Jagan Teki authored
      Exynos DSI already converted into a bridge driver, so bridge
      detach will suppose happened during bridge chain removal done
      by the bridge core.
      
      Drop the explicit call chain to detach the bridge.
      Tested-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Reviewed-by: default avatarMarek Vasut <marex@denx.de>
      Signed-off-by: default avatarJagan Teki <jagan@amarulasolutions.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      56193b57
  2. 27 Mar, 2023 1 commit
  3. 25 Mar, 2023 8 commits
  4. 24 Mar, 2023 2 commits
  5. 23 Mar, 2023 6 commits
  6. 22 Mar, 2023 20 commits