162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra20-dsi.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: NVIDIA Tegra Display Serial Interface
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Thierry Reding <thierry.reding@gmail.com>
1162306a36Sopenharmony_ci  - Jon Hunter <jonathanh@nvidia.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciproperties:
1462306a36Sopenharmony_ci  compatible:
1562306a36Sopenharmony_ci    oneOf:
1662306a36Sopenharmony_ci      - enum:
1762306a36Sopenharmony_ci          - nvidia,tegra20-dsi
1862306a36Sopenharmony_ci          - nvidia,tegra30-dsi
1962306a36Sopenharmony_ci          - nvidia,tegra114-dsi
2062306a36Sopenharmony_ci          - nvidia,tegra124-dsi
2162306a36Sopenharmony_ci          - nvidia,tegra210-dsi
2262306a36Sopenharmony_ci          - nvidia,tegra186-dsi
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci      - items:
2562306a36Sopenharmony_ci          - const: nvidia,tegra132-dsi
2662306a36Sopenharmony_ci          - const: nvidia,tegra124-dsi
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  reg:
2962306a36Sopenharmony_ci    maxItems: 1
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  interrupts:
3262306a36Sopenharmony_ci    maxItems: 1
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  clocks:
3562306a36Sopenharmony_ci    minItems: 2
3662306a36Sopenharmony_ci    maxItems: 3
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  clock-names:
3962306a36Sopenharmony_ci    minItems: 2
4062306a36Sopenharmony_ci    maxItems: 3
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci  resets:
4362306a36Sopenharmony_ci    items:
4462306a36Sopenharmony_ci      - description: module reset
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  reset-names:
4762306a36Sopenharmony_ci    items:
4862306a36Sopenharmony_ci      - const: dsi
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  operating-points-v2: true
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  power-domains:
5362306a36Sopenharmony_ci    maxItems: 1
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  avdd-dsi-csi-supply:
5662306a36Sopenharmony_ci    description: phandle of a supply that powers the DSI controller
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci  nvidia,mipi-calibrate:
5962306a36Sopenharmony_ci    description: Should contain a phandle and a specifier specifying
6062306a36Sopenharmony_ci      which pads are used by this DSI output and need to be
6162306a36Sopenharmony_ci      calibrated. See nvidia,tegra114-mipi.yaml for details.
6262306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle-array
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci  nvidia,ddc-i2c-bus:
6562306a36Sopenharmony_ci    description: phandle of an I2C controller used for DDC EDID
6662306a36Sopenharmony_ci      probing
6762306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci  nvidia,hpd-gpio:
7062306a36Sopenharmony_ci    description: specifies a GPIO used for hotplug detection
7162306a36Sopenharmony_ci    maxItems: 1
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci  nvidia,edid:
7462306a36Sopenharmony_ci    description: supplies a binary EDID blob
7562306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint8-array
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci  nvidia,panel:
7862306a36Sopenharmony_ci    description: phandle of a display panel
7962306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci  nvidia,ganged-mode:
8262306a36Sopenharmony_ci    description: contains a phandle to a second DSI controller to
8362306a36Sopenharmony_ci      gang up with in order to support up to 8 data lanes
8462306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ciallOf:
8762306a36Sopenharmony_ci  - $ref: ../dsi-controller.yaml#
8862306a36Sopenharmony_ci  - if:
8962306a36Sopenharmony_ci      properties:
9062306a36Sopenharmony_ci        compatible:
9162306a36Sopenharmony_ci          contains:
9262306a36Sopenharmony_ci            enum:
9362306a36Sopenharmony_ci              - nvidia,tegra20-dsi
9462306a36Sopenharmony_ci              - nvidia,tegra30-dsi
9562306a36Sopenharmony_ci    then:
9662306a36Sopenharmony_ci      properties:
9762306a36Sopenharmony_ci        clocks:
9862306a36Sopenharmony_ci          items:
9962306a36Sopenharmony_ci            - description: DSI module clock
10062306a36Sopenharmony_ci            - description: input for the pixel clock
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci        clock-names:
10362306a36Sopenharmony_ci          items:
10462306a36Sopenharmony_ci            - const: dsi
10562306a36Sopenharmony_ci            - const: parent
10662306a36Sopenharmony_ci    else:
10762306a36Sopenharmony_ci      properties:
10862306a36Sopenharmony_ci        clocks:
10962306a36Sopenharmony_ci          items:
11062306a36Sopenharmony_ci            - description: DSI module clock
11162306a36Sopenharmony_ci            - description: low-power module clock
11262306a36Sopenharmony_ci            - description: input for the pixel clock
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci        clock-names:
11562306a36Sopenharmony_ci          items:
11662306a36Sopenharmony_ci            - const: dsi
11762306a36Sopenharmony_ci            - const: lp
11862306a36Sopenharmony_ci            - const: parent
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci  - if:
12162306a36Sopenharmony_ci      properties:
12262306a36Sopenharmony_ci        compatible:
12362306a36Sopenharmony_ci          contains:
12462306a36Sopenharmony_ci            const: nvidia,tegra186-dsi
12562306a36Sopenharmony_ci    then:
12662306a36Sopenharmony_ci      required:
12762306a36Sopenharmony_ci        - interrupts
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ciunevaluatedProperties: false
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_cirequired:
13262306a36Sopenharmony_ci  - compatible
13362306a36Sopenharmony_ci  - reg
13462306a36Sopenharmony_ci  - clocks
13562306a36Sopenharmony_ci  - clock-names
13662306a36Sopenharmony_ci  - resets
13762306a36Sopenharmony_ci  - reset-names
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ciexamples:
14062306a36Sopenharmony_ci  - |
14162306a36Sopenharmony_ci    #include <dt-bindings/clock/tegra186-clock.h>
14262306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
14362306a36Sopenharmony_ci    #include <dt-bindings/power/tegra186-powergate.h>
14462306a36Sopenharmony_ci    #include <dt-bindings/reset/tegra186-reset.h>
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci    dsi@15300000 {
14762306a36Sopenharmony_ci        compatible = "nvidia,tegra186-dsi";
14862306a36Sopenharmony_ci        reg = <0x15300000 0x10000>;
14962306a36Sopenharmony_ci        interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
15062306a36Sopenharmony_ci        clocks = <&bpmp TEGRA186_CLK_DSI>,
15162306a36Sopenharmony_ci                 <&bpmp TEGRA186_CLK_DSIA_LP>,
15262306a36Sopenharmony_ci                 <&bpmp TEGRA186_CLK_PLLD>;
15362306a36Sopenharmony_ci        clock-names = "dsi", "lp", "parent";
15462306a36Sopenharmony_ci        resets = <&bpmp TEGRA186_RESET_DSI>;
15562306a36Sopenharmony_ci        reset-names = "dsi";
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci        power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
15862306a36Sopenharmony_ci    };
159