Commit 34bdf809 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Dmitry Baryshkov
Browse files

dt-bindings: display/msm: dsi-controller-main: Add SM8750



Add DSI controller for Qualcomm SM8750 SoC which is quite different from
previous (SM8650) generation.

It does not allow the display clock controller clocks like "byte" and
"pixel" to be reparented to DSI PHY PLLs while the DSI PHY PLL is not
configured (not prepared, rate not set).  Therefore
assigned-clock-parents are not working here and driver is responsible
for reparenting clocks with proper procedure.  These clocks are now
inputs to the DSI controller device.

Except that SM8750 DSI comes with several differences, new blocks and
changes in registers, making it incompatible with SM8650.

Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/659609/
Link: https://lore.kernel.org/r/20250618-b4-sm8750-display-v7-2-a591c609743d@linaro.org


Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
parent c257d2c8
Loading
Loading
Loading
Loading
+49 −5
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ properties:
              - qcom,sm8450-dsi-ctrl
              - qcom,sm8550-dsi-ctrl
              - qcom,sm8650-dsi-ctrl
              - qcom,sm8750-dsi-ctrl
          - const: qcom,mdss-dsi-ctrl
      - enum:
          - qcom,dsi-ctrl-6g-qcm2290
@@ -70,11 +71,11 @@ properties:
       - mnoc:: MNOC clock
       - pixel:: Display pixel clock.
    minItems: 3
    maxItems: 9
    maxItems: 12

  clock-names:
    minItems: 3
    maxItems: 9
    maxItems: 12

  phys:
    maxItems: 1
@@ -109,7 +110,8 @@ properties:
    minItems: 2
    maxItems: 4
    description: |
      Parents of "byte" and "pixel" for the given platform.
      For DSI on SM8650 and older: parents of "byte" and "pixel" for the given
      platform.
      For DSIv2 platforms this should contain "byte", "esc", "src" and
      "pixel_src" clocks.

@@ -218,8 +220,6 @@ required:
  - clocks
  - clock-names
  - phys
  - assigned-clocks
  - assigned-clock-parents
  - ports

allOf:
@@ -244,6 +244,9 @@ allOf:
            - const: byte
            - const: pixel
            - const: core
      required:
        - assigned-clocks
        - assigned-clock-parents

  - if:
      properties:
@@ -266,6 +269,9 @@ allOf:
            - const: byte
            - const: pixel
            - const: core
      required:
        - assigned-clocks
        - assigned-clock-parents

  - if:
      properties:
@@ -288,6 +294,9 @@ allOf:
            - const: pixel
            - const: core
            - const: core_mmss
      required:
        - assigned-clocks
        - assigned-clock-parents

  - if:
      properties:
@@ -309,6 +318,9 @@ allOf:
            - const: core_mmss
            - const: pixel
            - const: core
      required:
        - assigned-clocks
        - assigned-clock-parents

  - if:
      properties:
@@ -346,6 +358,35 @@ allOf:
            - const: core
            - const: iface
            - const: bus
      required:
        - assigned-clocks
        - assigned-clock-parents

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sm8750-dsi-ctrl
    then:
      properties:
        clocks:
          minItems: 12
          maxItems: 12
        clock-names:
          items:
            - const: byte
            - const: byte_intf
            - const: pixel
            - const: core
            - const: iface
            - const: bus
            - const: dsi_pll_pixel
            - const: dsi_pll_byte
            - const: esync
            - const: osc
            - const: byte_src
            - const: pixel_src

  - if:
      properties:
@@ -369,6 +410,9 @@ allOf:
            - const: core_mmss
            - const: pixel
            - const: core
      required:
        - assigned-clocks
        - assigned-clock-parents

unevaluatedProperties: false