ARM: dts: msm: replace dtsi bindings with yaml

Replace existing display dtsi bindings in text format with
yaml format.

Change-Id: I9964bfe20f474746739f63a5615726f3ebb7683d
Signed-off-by: Jatin Srivastava <quic_jsrivast@quicinc.com>
This commit is contained in:
Jatin Srivastava
2024-02-05 12:05:10 +05:30
parent c64196b0d0
commit 7791bd1e32
15 changed files with 5389 additions and 2894 deletions

View File

@@ -1,278 +0,0 @@
Qualcomm Technologies Inc. snapdragon DSI output
DSI Controller:
Required properties:
- compatible:
* "qcom,mdss-dsi-ctrl"
- reg: Physical base address and length of the registers of controller
- reg-names: The names of register regions. The following regions are required:
* "dsi_ctrl"
- interrupts: The interrupt signal from the DSI block.
- power-domains: Should be <&mmcc MDSS_GDSC>.
- clocks: Phandles to device clocks.
- clock-names: the following clocks are required:
* "mdp_core"
* "iface"
* "bus"
* "core_mmss"
* "byte"
* "pixel"
* "core"
For DSIv2, we need an additional clock:
* "src"
For DSI6G v2.0 onwards, we need also need the clock:
* "byte_intf"
- assigned-clocks: Parents of "byte" and "pixel" for the given platform.
- assigned-clock-parents: The Byte clock and Pixel clock PLL outputs provided
by a DSI PHY block. See [1] for details on clock bindings.
- vdd-supply: phandle to vdd regulator device node
- vddio-supply: phandle to vdd-io regulator device node
- vdda-supply: phandle to vdda regulator device node
- phys: phandle to DSI PHY device node
- phy-names: the name of the corresponding PHY device
- syscon-sfpb: A phandle to mmss_sfpb syscon node (only for DSIv2)
- ports: Contains 2 DSI controller ports as child nodes. Each port contains
an endpoint subnode as defined in [2] and [3].
Optional properties:
- panel@0: Node of panel connected to this DSI controller.
See files in [4] for each supported panel.
- qcom,dual-dsi-mode: Boolean value indicating if the DSI controller is
driving a panel which needs 2 DSI links.
- qcom,master-dsi: Boolean value indicating if the DSI controller is driving
the master link of the 2-DSI panel.
- qcom,sync-dual-dsi: Boolean value indicating if the DSI controller is
driving a 2-DSI panel whose 2 links need receive command simultaneously.
- pinctrl-names: the pin control state names; should contain "default"
- pinctrl-0: the default pinctrl state (active)
- pinctrl-n: the "sleep" pinctrl state
- ports: contains DSI controller input and output ports as children, each
containing one endpoint subnode.
- qcom,dsi-ctrl-shared: Boolean value indicating if the DSI controller is
shared between dual displays.
DSI Endpoint properties:
- remote-endpoint: For port@0, set to phandle of the connected panel/bridge's
input endpoint. For port@1, set to the MDP interface output. See [2] for
device graph info.
- data-lanes: this describes how the physical DSI data lanes are mapped
to the logical lanes on the given platform. The value contained in
index n describes what physical lane is mapped to the logical lane n
(DATAn, where n lies between 0 and 3). The clock lane position is fixed
and can't be changed. Hence, they aren't a part of the DT bindings. See
[3] for more info on the data-lanes property.
For example:
data-lanes = <3 0 1 2>;
The above mapping describes that the logical data lane DATA0 is mapped to
the physical data lane DATA3, logical DATA1 to physical DATA0, logic DATA2
to phys DATA1 and logic DATA3 to phys DATA2.
There are only a limited number of physical to logical mappings possible:
<0 1 2 3>
<1 2 3 0>
<2 3 0 1>
<3 0 1 2>
<0 3 2 1>
<1 0 3 2>
<2 1 0 3>
<3 2 1 0>
DSI PHY:
Required properties:
- compatible: Could be the following
* "qcom,dsi-phy-28nm-hpm"
* "qcom,dsi-phy-28nm-lp"
* "qcom,dsi-phy-20nm"
* "qcom,dsi-phy-28nm-8960"
* "qcom,dsi-phy-14nm"
* "qcom,dsi-phy-10nm"
- reg: Physical base address and length of the registers of PLL, PHY. Some
revisions require the PHY regulator base address, whereas others require the
PHY lane base address. See below for each PHY revision.
- reg-names: The names of register regions. The following regions are required:
For DSI 28nm HPM/LP/8960 PHYs and 20nm PHY:
* "dsi_pll"
* "dsi_phy"
* "dsi_phy_regulator"
For DSI 14nm and 10nm PHYs:
* "dsi_pll"
* "dsi_phy"
* "dsi_phy_lane"
- clock-cells: Must be 1. The DSI PHY block acts as a clock provider, creating
2 clocks: A byte clock (index 0), and a pixel clock (index 1).
- power-domains: Should be <&mmcc MDSS_GDSC>.
- clocks: Phandles to device clocks. See [1] for details on clock bindings.
- clock-names: the following clocks are required:
* "iface"
For 28nm HPM/LP, 28nm 8960 PHYs:
- vddio-supply: phandle to vdd-io regulator device node
For 20nm PHY:
- vddio-supply: phandle to vdd-io regulator device node
- vcca-supply: phandle to vcca regulator device node
For 14nm PHY:
- vcca-supply: phandle to vcca regulator device node
For 10nm PHY:
- vdds-supply: phandle to vdds regulator device node
Optional properties:
- qcom,dsi-phy-regulator-ldo-mode: Boolean value indicating if the LDO mode PHY
regulator is wanted.
- qcom,mdss-mdp-transfer-time-us: Specifies the dsi transfer time for command mode
panels in microseconds. Driver uses this number to adjust
the clock rate according to the expected transfer time.
Increasing this value would slow down the mdp processing
and can result in slower performance.
Decreasing this value can speed up the mdp processing,
but this can also impact power consumption.
As a rule this time should not be higher than the time
that would be expected with the processing at the
dsi link rate since anyways this would be the maximum
transfer time that could be achieved.
If ping pong split is enabled, this time should not be higher
than two times the dsi link rate time.
If the property is not specified, then the default value is 14000 us.
- frame-threshold-time-us: For command mode panels, this specifies the idle
time for dsi controller where no active data is
send to the panel, as controller is done sending
active pixels. If there is no desired DSI clocks
specified, then clocks will be derived from this
threshold time, which has a default value in chipset
based on the CPU processing power.
- dsi_pll_codes: Contain an u32 array data to store dsi pll codes which were passed
from UEFI.
- qcom,dsi-phy-shared: Boolean value indicating if the DSI phy is shared
between dual displays.
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/graph.txt
[3] Documentation/devicetree/bindings/media/video-interfaces.txt
[4] Documentation/devicetree/bindings/display/panel/
Example:
dsi0: dsi@fd922800 {
compatible = "qcom,mdss-dsi-ctrl";
qcom,dsi-host-index = <0>;
interrupt-parent = <&mdp>;
interrupts = <4 0>;
reg-names = "dsi_ctrl";
reg = <0xfd922800 0x200>;
power-domains = <&mmcc MDSS_GDSC>;
clock-names =
"bus",
"byte",
"core",
"core_mmss",
"iface",
"mdp_core",
"pixel";
clocks =
<&mmcc MDSS_AXI_CLK>,
<&mmcc MDSS_BYTE0_CLK>,
<&mmcc MDSS_ESC0_CLK>,
<&mmcc MMSS_MISC_AHB_CLK>,
<&mmcc MDSS_AHB_CLK>,
<&mmcc MDSS_MDP_CLK>,
<&mmcc MDSS_PCLK0_CLK>;
assigned-clocks =
<&mmcc BYTE0_CLK_SRC>,
<&mmcc PCLK0_CLK_SRC>;
assigned-clock-parents =
<&dsi_phy0 0>,
<&dsi_phy0 1>;
vdda-supply = <&pma8084_l2>;
vdd-supply = <&pma8084_l22>;
vddio-supply = <&pma8084_l12>;
phys = <&dsi_phy0>;
phy-names ="dsi-phy";
qcom,dual-dsi-mode;
qcom,master-dsi;
qcom,sync-dual-dsi;
qcom,dsi-ctrl-shared;
qcom,mdss-mdp-transfer-time-us = <12000>;
frame-threshold-time-us = <800>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&dsi_active>;
pinctrl-1 = <&dsi_suspend>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dsi0_in: endpoint {
remote-endpoint = <&mdp_intf1_out>;
};
};
port@1 {
reg = <1>;
dsi0_out: endpoint {
remote-endpoint = <&panel_in>;
data-lanes = <0 1 2 3>;
};
};
};
panel: panel@0 {
compatible = "sharp,lq101r1sx01";
reg = <0>;
link2 = <&secondary>;
power-supply = <...>;
backlight = <...>;
port {
panel_in: endpoint {
remote-endpoint = <&dsi0_out>;
};
};
};
};
dsi_phy0: dsi-phy@fd922a00 {
compatible = "qcom,dsi-phy-28nm-hpm";
qcom,dsi-phy-index = <0>;
reg-names =
"dsi_pll",
"dsi_phy",
"dsi_phy_regulator";
reg = <0xfd922a00 0xd4>,
<0xfd922b00 0x2b0>,
<0xfd922d80 0x7b>;
clock-names = "iface";
clocks = <&mmcc MDSS_AHB_CLK>;
#clock-cells = <1>;
vddio-supply = <&pma8084_l12>;
qcom,dsi-phy-regulator-ldo-mode;
qcom,panel-allow-phy-poweroff;
qcom,dsi-phy-regulator-min-datarate-bps = <1200000000>;
qcom,panel-force-clock-lane-hs;
pll_codes_region = <&dsi_pll_codes_data>;
qcom,dsi-phy-shared;
};
dsi_pll_codes_data:dsi_pll_codes {
reg = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
label = "dsi_pll_codes";
};

226
bindings/dsi.yaml Normal file
View File

@@ -0,0 +1,226 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dsi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies Inc. Snapdragon DSI Controller output
description: >
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/graph.txt
[3] Documentation/devicetree/bindings/media/video-interfaces.txt
[4] Documentation/devicetree/bindings/display/panel/
maintainers:
- Vara Reddy <quic_varar@quicinc.com>
- Vishnuvardhan Prodduturi <quic_vproddut@quicinc.com>
properties:
compatible:
const: qcom,mdss-dsi-ctrl
reg:
description: Physical base address and length of the registers of controller
reg-names:
description: The names of register regions.
required:
- "dsi_ctrl"
interrupts:
description: The interrupt signal from the DSI block.
power-domains:
const: <&mmcc MDSS_GDSC>
clocks:
description: Phandles to device clocks.
$ref: /schemas/types.yaml#/definitions/phandle
clock-names:
description: >
Clocks necessary for DSI operation. For DSIv2, we need an additional clock "src" and for
DSI6G v2.0 onwards, we also need the clock "byte_intf".
required:
- "mdp_core"
- "iface"
- "bus"
- "core_mmss"
- "byte"
- "pixel"
- "core"
assigned-clocks:
description: Parents of "byte" and "pixel" for the given platform.
assigned-clock-parents:
description: >
The Byte clock and Pixel clock PLL outputs provided
by a DSI PHY block. See [1] for details on clock bindings.
vdd-supply:
description: phandle to vdd regulator device node
$ref: /schemas/types.yaml#/definitions/phandle
vddio-supply:
description: phandle to vdd-io regulator device node
$ref: /schemas/types.yaml#/definitions/phandle
vdda-supply:
description: phandle to vdda regulator device node
$ref: /schemas/types.yaml#/definitions/phandle
phys:
description: phandle to DSI PHY device node
$ref: /schemas/types.yaml#/definitions/phandle
phy-names:
description: the name of the corresponding PHY device
$ref: /schemas/types.yaml#/definitions/string-array
syscon-sfpb:
description: A phandle to mmss_sfpb syscon node (only for DSIv2)
$ref: /schemas/types.yaml#/definitions/phandle
panel@0:
description: >
Node of panel connected to this DSI controller.
See files in [4] for each supported panel.
qcom,dual-dsi-mode:
description: >
Boolean value indicating if the DSI controller is
driving a panel which needs 2 DSI links.
qcom,master-dsi:
description: >
Boolean value indicating if the DSI controller is driving
the master link of the 2-DSI panel.
qcom,sync-dual-dsi:
description: >
Boolean value indicating if the DSI controller is
driving a 2-DSI panel whose 2 links need receive command simultaneously.
pinctrl-names:
description: the pin control state names; should contain "default"
pinctrl-0:
description: the default pinctrl state (active)
pinctrl-n:
description: the "sleep" pinctrl state
qcom,dsi-ctrl-shared:
description: >
Boolean value indicating if the DSI controller is
shared between dual displays.
required:
- compatible
- reg
- reg-names
- interrupts
- power-domains
- clocks
- clock-names
- assigned-clocks
- assigned-clock-parents
- vdd-supply
- vddio-supply
- vdda-supply
- phys
- phy-names
- syscon-sfpb
- ports
examples:
- |
dsi0: dsi@fd922800 {
compatible = "qcom,mdss-dsi-ctrl";
qcom,dsi-host-index = <0>;
interrupt-parent = <&mdp>;
interrupts = <4 0>;
reg-names = "dsi_ctrl";
reg = <0xfd922800 0x200>;
power-domains = <&mmcc MDSS_GDSC>;
clock-names =
"bus",
"byte",
"core",
"core_mmss",
"iface",
"mdp_core",
"pixel";
clocks =
<&mmcc MDSS_AXI_CLK>,
<&mmcc MDSS_BYTE0_CLK>,
<&mmcc MDSS_ESC0_CLK>,
<&mmcc MMSS_MISC_AHB_CLK>,
<&mmcc MDSS_AHB_CLK>,
<&mmcc MDSS_MDP_CLK>,
<&mmcc MDSS_PCLK0_CLK>;
assigned-clocks =
<&mmcc BYTE0_CLK_SRC>,
<&mmcc PCLK0_CLK_SRC>;
assigned-clock-parents =
<&dsi_phy0 0>,
<&dsi_phy0 1>;
vdda-supply = <&pma8084_l2>;
vdd-supply = <&pma8084_l22>;
vddio-supply = <&pma8084_l12>;
phys = <&dsi_phy0>;
phy-names ="dsi-phy";
qcom,dual-dsi-mode;
qcom,master-dsi;
qcom,sync-dual-dsi;
qcom,dsi-ctrl-shared;
qcom,mdss-mdp-transfer-time-us = <12000>;
frame-threshold-time-us = <800>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&dsi_active>;
pinctrl-1 = <&dsi_suspend>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dsi0_in: endpoint {
remote-endpoint = <&mdp_intf1_out>;
};
};
port@1 {
reg = <1>;
dsi0_out: endpoint {
remote-endpoint = <&panel_in>;
data-lanes = <0 1 2 3>;
};
};
};
panel: panel@0 {
compatible = "sharp,lq101r1sx01";
reg = <0>;
link2 = <&secondary>;
power-supply = <...>;
backlight = <...>;
port {
panel_in: endpoint {
remote-endpoint = <&dsi0_out>;
};
};
};
};
...

161
bindings/dsi_phy.yaml Normal file
View File

@@ -0,0 +1,161 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dsi_phy.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies Inc. Snapdragon DSI PHY output
description: >
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/graph.txt
[3] Documentation/devicetree/bindings/media/video-interfaces.txt
[4] Documentation/devicetree/bindings/display/panel/
maintainers:
- Vara Reddy <quic_varar@quicinc.com>
- Vishnuvardhan Prodduturi <quic_vproddut@quicinc.com>
properties:
compatible:
enum:
- qcom,dsi-phy-28nm-hpm
- qcom,dsi-phy-28nm-lp
- qcom,dsi-phy-20nm
- qcom,dsi-phy-28nm-8960
- qcom,dsi-phy-14nm
- qcom,dsi-phy-10nm
reg:
description: >
Physical base address and length of the registers of PLL, PHY. Some
revisions require the PHY regulator base address, whereas others require the
PHY lane base address. See below for each PHY revision.
reg-names:
description: >
The names of register regions. For DSI 28nm HPM/LP/8960 PHYs and 20nm PHY "dsi_phy_regulator"
is needed and for DSI 14nm and 10nm PHYs "dsi_phy_lane" is needed.
required:
- "dsi_pll"
- "dsi_phy"
clock-cells:
description: >
Must be 1. The DSI PHY block acts as a clock provider, creating
2 clocks: A byte clock (index 0), and a pixel clock (index 1).
const: 1
power-domains:
const: <&mmcc MDSS_GDSC>
clocks:
description: Phandles to device clocks. See [1] for details on clock bindings.
$ref: /schemas/types.yaml#/definitions/phandle
clock-names:
const: iface
$ref: /schemas/types.yaml#/definitions/string-array
vddio-supply:
description: >
For 28nm HPM/LP, 28nm 8960 PHYs and 20nm PHY, this is phandle to vdd-io regulator
device node
$ref: /schemas/types.yaml#/definitions/phandle
vcca-supply:
description: For 14nm PHY and 20nm PHY this is phandle to vcca regulator device node
$ref: /schemas/types.yaml#/definitions/phandle
vdds-supply:
description: For 10nm PHY , phandle to vdds regulator device node
$ref: /schemas/types.yaml#/definitions/phandle
qcom,dsi-phy-regulator-ldo-mode:
description: Boolean value indicating if the LDO mode PHY regulator is wanted.
qcom,mdss-mdp-transfer-time-us:
description: >
Specifies the dsi transfer time for command mode
panels in microseconds. Driver uses this number to adjust
the clock rate according to the expected transfer time.
Increasing this value would slow down the mdp processing
and can result in slower performance.
Decreasing this value can speed up the mdp processing,
but this can also impact power consumption.
As a rule this time should not be higher than the time
that would be expected with the processing at the
dsi link rate since anyways this would be the maximum
transfer time that could be achieved.
If ping pong split is enabled, this time should not be higher
than two times the dsi link rate time.
If the property is not specified, then the default value is 14000 us.
$ref: /schemas/types.yaml#/definitions/uint32
frame-threshold-time-us:
description: >
For command mode panels, this specifies the idle
time for dsi controller where no active data is
send to the panel, as controller is done sending
active pixels. If there is no desired DSI clocks
specified, then clocks will be derived from this
threshold time, which has a default value in chipset
based on the CPU processing power.
$ref: /schemas/types.yaml#/definitions/uint32
dsi_pll_codes:
description: Contain an u32 array data to store dsi pll codes which were passed from UEFI.
$ref: /schemas/types.yaml#/definitions/uint32-array
qcom,dsi-phy-shared:
description: Boolean value indicating if the DSI phy is shared between dual displays.
required:
- compatible
- reg
- reg-names
- clock-cells
- power-domains
- clocks
- clock-names
- vddio-supply
- vcca-supply
- vdds-supply
examples:
- |
dsi_phy0: dsi-phy@fd922a00 {
compatible = "qcom,dsi-phy-28nm-hpm";
qcom,dsi-phy-index = <0>;
reg-names =
"dsi_pll",
"dsi_phy",
"dsi_phy_regulator";
reg = <0xfd922a00 0xd4>,
<0xfd922b00 0x2b0>,
<0xfd922d80 0x7b>;
clock-names = "iface";
clocks = <&mmcc MDSS_AHB_CLK>;
#clock-cells = <1>;
vddio-supply = <&pma8084_l12>;
qcom,dsi-phy-regulator-ldo-mode;
qcom,panel-allow-phy-poweroff;
qcom,dsi-phy-regulator-min-datarate-bps = <1200000000>;
qcom,panel-force-clock-lane-hs;
pll_codes_region = <&dsi_pll_codes_data>;
qcom,dsi-phy-shared;
};
dsi_pll_codes_data:dsi_pll_codes {
reg = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
label = "dsi_pll_codes";
};
...

File diff suppressed because it is too large Load Diff

1923
bindings/mdss-dsi-panel.yaml Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +0,0 @@
MSM HDCP driver
Standalone driver managing HDCP related communications
between TZ and HLOS for MSM chipset.
Required properties:
compatible = "qcom,msm-hdcp";
Example:
qcom_msmhdcp: qcom,msm_hdcp {
compatible = "qcom,msm-hdcp";
};

28
bindings/msm_hdcp.yaml Normal file
View File

@@ -0,0 +1,28 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/msm_hdcp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MSM HDCP driver
description: |
Standalone driver managing HDCP related communications between TZ and HLOS for MSM chipset.
maintainers:
- Rajkumar Subbiah <quic_rsubbia@quicinc.com>
- Vishnuvardhan Prodduturi <quic_vproddut@quicinc.com>
properties:
compatible:
const: qcom,msm-hdcp
required:
- compatible
examples:
- |
qcom_msmhdcp: qcom,msm_hdcp {
compatible = "qcom,msm-hdcp";
};
...

View File

@@ -1,297 +0,0 @@
Qualcomm Technologies, Inc.
sde-dp is the master Display Port device which supports DP host controllers that are compatible with VESA Display Port interface specification.
DP Controller: Required properties:
- compatible: Should be "qcom,dp-display".
- reg: Base address and length of DP hardware's memory mapped regions.
- reg-names: A list of strings that name the list of regs. "dp_ctrl" - DP controller memory region.
"dp_ahb" - AHB memory region.
"dp_aux" - AUX memory region.
"dp_link" - LINK memory region.
"dp_p0" - PCLK0 memory region.
"dp_phy" - PHY memory region.
"dp_ln_tx0" - USB3 DP PHY combo TX-0 lane memory region.
"dp_ln_tx1" - USB3 DP PHY combo TX-1 lane memory region.
"dp_mmss_cc" - Display Clock Control memory region.
"dp_pll" - USB3 DP combo PLL memory region.
"usb3_dp_com" - USB3 DP PHY combo memory region.
"hdcp_physical" - DP HDCP memory region.
"dp_p1" - DP PCLK1 memory region.
"gdsc" - DISPCC GDSC memory region.
- cell-index: Specifies the controller instance.
- #clock-cells: Denotes the DP driver as a clock producer (has one or more clock outputs)
- clocks: Clocks required for Display Port operation.
- clock-names: Names of the clocks corresponding to handles. Following clocks are required:
"core_aux_clk", "core_usb_ref_clk_src", "core_usb_pipe_clk", "link_clk",
"link_clk_src", "link_iface_clk", "pixel_clk_rcg", "pixel_parent",
"pixel1_clk_rcg", "strm0_pixel_clk", "strm1_pixel_clk".
- vdda-1p2-supply: phandle to vdda 1.2V regulator node.
- vdda-0p9-supply: phandle to vdda 0.9V regulator node.
- interrupt-parent phandle to the interrupt parent device node.
- interrupts: The interrupt signal from the DSI block.
- qcom,aux-cfg0-settings: Specifies the DP AUX configuration 0 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
- qcom,aux-cfg1-settings: Specifies the DP AUX configuration 1 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
- qcom,aux-cfg2-settings: Specifies the DP AUX configuration 2 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
- qcom,aux-cfg3-settings: Specifies the DP AUX configuration 3 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
- qcom,aux-cfg4-settings: Specifies the DP AUX configuration 4 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
- qcom,aux-cfg5-settings: Specifies the DP AUX configuration 5 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
- qcom,aux-cfg6-settings: Specifies the DP AUX configuration 6 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
- qcom,aux-cfg7-settings: Specifies the DP AUX configuration 7 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
- qcom,aux-cfg8-settings: Specifies the DP AUX configuration 8 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
- qcom,aux-cfg9-settings: Specifies the DP AUX configuration 9 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
- qcom,max-pclk-frequency-khz: An integer specifying the max. pixel clock in KHz supported by Display Port.
- qcom,mst-enable: MST feature enable control node.
- qcom,dsc-feature-enable: DSC feature enable control node.
- qcom,fec-feature-enable: FEC feature enable control node.
- qcom,qos-cpu-mask: A u32 value indicating desired PM QoS CPU affine mask
- qcom,qos-cpu-latency-us: A u32 value indicating desired PM QoS CPU latency in usec
- qcom,altmode-dev: Phandle for the AltMode GLink driver.
- usb-controller: Phandle for the USB controller.
- qcom,pll-revision: PLL hardware revision.
- usb-phy: Phandle for USB PHY driver. This is used to register for USB cable events.
- qcom,dsc-continuous-pps: Control node for sending PPS every frame in hardware for DSC over DP.
This is needed by certain bridge chips where there is such a requirement to do so.
- qcom,dp-aux-switch: Phandle for the driver used to program the AUX switch for Display Port orientation.
- qcom,dp-hpd-gpio: HPD gpio for direct DP connector without USB PHY or AUX switch.
- qcom,dp-gpio-aux-switch: Gpio DP AUX switch chipset support.
- qcom,<type>-supply-entries: A node that lists the elements of the supply used by the a particular "type" of DP module. The module "types"
can be "core", "ctrl", "pll" and "phy". Within the same type,
there can be more than one instance of this binding,
in which case the entry would be appended with the
supply entry index.
e.g. qcom,ctrl-supply-entry@0
-- qcom,supply-name: name of the supply (vdd/vdda/vddio)
-- qcom,supply-min-voltage: minimum voltage level (uV)
-- qcom,supply-max-voltage: maximum voltage level (uV)
-- qcom,supply-enable-load: load drawn (uA) from enabled supply
-- qcom,supply-disable-load: load drawn (uA) from disabled supply
-- qcom,supply-pre-on-sleep: time to sleep (ms) before turning on
-- qcom,supply-post-on-sleep: time to sleep (ms) after turning on
-- qcom,supply-pre-off-sleep: time to sleep (ms) before turning off
-- qcom,supply-post-off-sleep: time to sleep (ms) after turning off
msm_ext_disp is a device which manages the interaction between external
display interfaces, e.g. Display Port, and the audio subsystem.
Optional properties:
- clock-mmrm: List of the clocks that enable setting the clk rate through MMRM driver.
The order of the list must match the 'clocks' and 'clock-names'
properties. The 'DISP_CC' ID of the clock must be used to enable
the property for the respective clock, whereas a value of zero
disables the property.
- vdd_mx-supply: phandle to vdda MX regulator node
- qcom,aux-en-gpio: Specifies the aux-channel enable gpio.
- qcom,aux-sel-gpio: Specifies the aux-channel select gpio.
- qcom,usbplug-cc-gpio: Specifies the usbplug orientation gpio.
- qcom,ext-disp: phandle for msm-ext-display module
- compatible: Must be "qcom,msm-ext-disp"
- qcom,dp-low-power-hw-hpd: Low power hardware HPD feature enable control node
- qcom,phy-version: Phy version
- qcom,pn-swap-lane-map: P/N swap configuration of each lane
- pinctrl-names: List of names to assign mdss pin states defined in pinctrl device node
Refer to pinctrl-bindings.txt
- pinctrl-<0..n>: Lists phandles each pointing to the pin configuration node within a pin
controller. These pin configurations are installed in the pinctrl
device node. Refer to pinctrl-bindings.txt
- qcom,max-lclk-frequency-khz: An integer specifying the max. link clock in KHz supported by Display Port.
- qcom,mst-fixed-topology-ports: u32 values of which MST output port to reserve, start from one
- qcom,hbr-rbr-voltage-swing: Specifies the voltage swing levels for HBR and RBR rates.
- qcom,hbr-rbr-pre-emphasis: Specifies the pre-emphasis levels for HBR and RBR rates.
- qcom,hbr2-3-voltage-swing: Specifies the voltage swing levels for HBR2 and HBR3 rates.
- qcom,hbr2-3-pre-emphasis: Specifies the pre-emphasis levels for HBR2 and HBR3 rates.
[Optional child nodes]: These nodes are for devices which are
dependent on msm_ext_disp. If msm_ext_disp is disabled then
these devices will be disabled as well. Ex. Audio Codec device.
- ext_disp_audio_codec: Node for Audio Codec.
- compatible : "qcom,msm-ext-disp-audio-codec-rx";
Example:
ext_disp: qcom,msm-ext-disp {
compatible = "qcom,msm-ext-disp";
ext_disp_audio_codec: qcom,msm-ext-disp-audio-codec-rx {
compatible = "qcom,msm-ext-disp-audio-codec-rx";
};
};
sde_dp: qcom,dp_display@0 {
cell-index = <0>;
compatible = "qcom,dp-display";
qcom,dp-aux-switch = <&fsa4480>;
qcom,ext-disp = <&ext_disp>;
qcom,altmode-dev = <&altmode 0>;
usb-controller = <&usb0>;
reg = <0xae90000 0x0dc>,
<0xae90200 0x0c0>,
<0xae90400 0x508>,
<0xae91000 0x094>,
<0x88eaa00 0x200>,
<0x88ea200 0x200>,
<0x88ea600 0x200>,
<0xaf02000 0x1a0>,
<0x88ea000 0x200>,
<0x88e8000 0x20>,
<0x0aee1000 0x034>,
<0xae91400 0x094>,
<0xaf03000 0x8>;
reg-names = "dp_ahb", "dp_aux", "dp_link",
"dp_p0", "dp_phy", "dp_ln_tx0", "dp_ln_tx1",
"dp_mmss_cc", "dp_pll", "usb3_dp_com",
"hdcp_physical", "dp_p1", "gdsc";
interrupt-parent = <&mdss_mdp>;
interrupts = <12 0>;
#clock-cells = <1>;
clocks = <&clock_dispcc DISP_CC_MDSS_DP_AUX_CLK>,
<&clock_rpmh RPMH_CXO_CLK>,
<&clock_gcc GCC_USB3_PRIM_PHY_PIPE_CLK>,
<&clock_dispcc DISP_CC_MDSS_DP_LINK_CLK>,
<&clock_dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
<&clock_dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>,
<&clock_dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>,
<&sde_dp DP_PHY_PLL_VCO_DIV_CLK>,
<&clock_dispcc DISP_CC_MDSS_DP_PIXEL1_CLK_SRC>,
<&clock_dispcc DISP_CC_MDSS_DP_PIXEL_CLK>,
<&clock_dispcc DISP_CC_MDSS_DP_PIXEL1_CLK>;
clock-names = "core_aux_clk", "core_usb_ref_clk_src",
"core_usb_pipe_clk", "link_clk", "link_clk_src",
"link_iface_clk", "pixel_clk_rcg", "pixel_parent",
"pixel1_clk_rcg", "strm0_pixel_clk", "strm1_pixel_clk";
clock-mmrm = <0 0 0 0 DISP_CC_MDSS_DP_LINK_CLK_SRC 0 0 0 0 0 0>;
qcom,pll-revision = "5nm-v1";
qcom,phy-version = <0x420>;
qcom,dp-aux-switch = <&fsa4480>;
qcom,aux-cfg0-settings = [1c 00];
qcom,aux-cfg1-settings = [20 13 23 1d];
qcom,aux-cfg2-settings = [24 00];
qcom,aux-cfg3-settings = [28 00];
qcom,aux-cfg4-settings = [2c 0a];
qcom,aux-cfg5-settings = [30 26];
qcom,aux-cfg6-settings = [34 0a];
qcom,aux-cfg7-settings = [38 03];
qcom,aux-cfg8-settings = [3c bb];
qcom,aux-cfg9-settings = [40 03];
qcom,max-pclk-frequency-khz = <593470>;
qcom,mst-enable;
qcom,dsc-feature-enable;
qcom,fec-feature-enable;
qcom,dsc-continuous-pps;
qcom,qos-cpu-mask = <0xf>;
qcom,qos-cpu-latency-us = <300>;
vdda-1p2-supply = <&L6B>;
vdda-0p9-supply = <&L1B>;
vdd_mx-supply = <&VDD_MXA_LEVEL>;
qcom,hbr-rbr-voltage-swing = <0x07 0x0f 0x16 0x1f>,
<0x11 0x1e 0x1f 0xff>,
<0x16 0x1f 0xff 0xff>,
<0x1f 0xff 0xff 0xff>;
qcom,hbr-rbr-pre-emphasis = <0x00 0x0d 0x14 0x1a>,
<0x00 0x0e 0x15 0xff>,
<0x00 0x0e 0xff 0xff>,
<0x02 0xff 0xff 0xff>;
qcom,hbr2-3-voltage-swing = <0x02 0x12 0x16 0x1a>,
<0x09 0x19 0x1f 0xff>,
<0x10 0x1f 0xff 0xff>,
<0x1f 0xff 0xff 0xff>;
qcom,hbr2-3-pre-emphasis = <0x00 0x0c 0x15 0x1b>,
<0x02 0x0e 0x16 0xff>,
<0x02 0x11 0xff 0xff>,
<0x04 0xff 0xff 0xff>;
qcom,ctrl-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,ctrl-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdda-1p2";
qcom,supply-min-voltage = <1200000>;
qcom,supply-max-voltage = <1200000>;
qcom,supply-enable-load = <21700>;
qcom,supply-disable-load = <0>;
};
};
qcom,phy-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,phy-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdda-0p9";
qcom,supply-min-voltage = <912000>;
qcom,supply-max-voltage = <912000>;
qcom,supply-enable-load = <115000>;
qcom,supply-disable-load = <0>;
};
};
qcom,core-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,core-supply-entry@0 {
reg = <0>;
qcom,supply-name = "refgen";
qcom,supply-min-voltage = <0>;
qcom,supply-max-voltage = <0>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
qcom,pll-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,pll-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdd_mx";
qcom,supply-min-voltage =
<RPMH_REGULATOR_LEVEL_TURBO>;
qcom,supply-max-voltage =
<RPMH_REGULATOR_LEVEL_MAX>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
};

579
bindings/sde-dp.yaml Normal file
View File

@@ -0,0 +1,579 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sde-dp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: SDE DP
description: |
sde-dp is the master Display Port device which supports DP host controllers that are compatible
with VESA Display Port interface specification.
msm_ext_disp is a device which manages the interaction between external
display interfaces, e.g. Display Port, and the audio subsystem.
[Optional child nodes]: These nodes are for devices which are
dependent on msm_ext_disp. If msm_ext_disp is disabled then
these devices will be disabled as well. Ex. Audio Codec device.
maintainers:
- Rajkumar Subbiah <quic_rsubbia@quicinc.com>
- Vishnuvardhan Prodduturi <quic_vproddut@quicinc.com>
properties:
compatible:
const: qcom,dp-display
reg:
description: |
Base address and length of DP hardware's memory mapped regions.
reg-names:
description: |
A list of strings that name the list of regs. "dp_ctrl" - DP controller memory region.
"dp_ahb" - AHB memory region.
"dp_aux" - AUX memory region.
"dp_link" - LINK memory region.
"dp_p0" - PCLK0 memory region.
"dp_phy" - PHY memory region.
"dp_ln_tx0" - USB3 DP PHY combo TX-0 lane memory region.
"dp_ln_tx1" - USB3 DP PHY combo TX-1 lane memory region.
"dp_mmss_cc" - Display Clock Control memory region.
"dp_pll" - USB3 DP combo PLL memory region.
"usb3_dp_com" - USB3 DP PHY combo memory region.
"hdcp_physical" - DP HDCP memory region.
"dp_p1" - DP PCLK1 memory region.
"gdsc" - DISPCC GDSC memory region.
cell-index:
description: Specifies the controller instance.
'#clock-cells':
description: Denotes the DP driver as a clock producer (has one or more clock outputs)
clocks:
description: Clocks required for Display Port operation.
clock-names:
items:
- const: core_aux_clk
- const: core_usb_ref_clk_src
- const: core_usb_pipe_clk
- const: link_clk
- const: link_clk_src
- const: link_iface_clk
- const: pixel_clk_rcg
- const: pixel_parent
- const: pixel1_clk_rcg
- const: strm0_pixel_clk
- const: strm1_pixel_clk
vdda-1p2-supply:
description: phandle to vdda 1.2V regulator node.
$ref: /schemas/types.yaml#/definitions/phandle
vdda-0p9-supply:
description: phandle to vdda 0.9V regulator node.
$ref: /schemas/types.yaml#/definitions/phandle
interrupt-parent:
description: phandle to the interrupt parent device node.
$ref: /schemas/types.yaml#/definitions/phandle
interrupts:
description: The interrupt signal from the DSI block.
qcom,aux-cfg0-settings:
description: |
Specifies the DP AUX configuration 0 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
qcom,aux-cfg1-settings:
description: |
Specifies the DP AUX configuration 1 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
qcom,aux-cfg2-settings:
description: |
Specifies the DP AUX configuration 2 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
qcom,aux-cfg3-settings:
description: |
Specifies the DP AUX configuration 3 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
qcom,aux-cfg4-settings:
description: |
Specifies the DP AUX configuration 4 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
qcom,aux-cfg5-settings:
description: |
Specifies the DP AUX configuration 5 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
qcom,aux-cfg6-settings:
description: |
Specifies the DP AUX configuration 6 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
qcom,aux-cfg7-settings:
description: |
Specifies the DP AUX configuration 7 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
qcom,aux-cfg8-settings:
description: |
Specifies the DP AUX configuration 8 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
qcom,aux-cfg9-settings:
description: |
Specifies the DP AUX configuration 9 settings. The first
entry in this array corresponds to the register offset
within DP AUX, while the remaining entries indicate the
programmable values.
qcom,max-pclk-frequency-khz:
description: An integer specifying the max. pixel clock in KHz supported by Display Port.
$ref: /schemas/types.yaml#/definitions/uint32
qcom,mst-enable:
description: MST feature enable control node.
qcom,dsc-feature-enable:
description: DSC feature enable control node.
qcom,fec-feature-enable:
description: FEC feature enable control node.
qcom,qos-cpu-mask:
description: A u32 value indicating desired PM QoS CPU affine mask
$ref: /schemas/types.yaml#/definitions/uint32
qcom,qos-cpu-latency-us:
description: A u32 value indicating desired PM QoS CPU latency in usec
$ref: /schemas/types.yaml#/definitions/uint32
qcom,altmode-dev:
description: Phandle for the AltMode GLink driver.
$ref: /schemas/types.yaml#/definitions/phandle
usb-controller:
description: Phandle for the USB controller.
$ref: /schemas/types.yaml#/definitions/phandle
qcom,pll-revision:
description: PLL hardware revision.
usb-phy:
description: Phandle for USB PHY driver. This is used to register for USB cable events.
$ref: /schemas/types.yaml#/definitions/phandle
qcom,dsc-continuous-pps:
description: |
Control node for sending PPS every frame in hardware for DSC over DP.
This is needed by certain bridge chips where there is such a requirement to do so.
qcom,dp-aux-switch:
description: Phandle for the driver used to program the AUX switch for Display Port orientation.
$ref: /schemas/types.yaml#/definitions/phandle
qcom,dp-hpd-gpio:
description: HPD gpio for direct DP connector without USB PHY or AUX switch.
qcom,dp-gpio-aux-switch:
description: Gpio DP AUX switch chipset support.
clock-mmrm:
description: |
List of the clocks that enable setting the clk rate through MMRM driver.
The order of the list must match the 'clocks' and 'clock-names'
properties. The 'DISP_CC' ID of the clock must be used to enable
the property for the respective clock, whereas a value of zero
disables the property.
vdd_mx-supply:
description: phandle to vdda MX regulator node
$ref: /schemas/types.yaml#/definitions/phandle
qcom,aux-en-gpio:
description: Specifies the aux-channel enable gpio.
qcom,aux-sel-gpio:
description: Specifies the aux-channel select gpio.
qcom,usbplug-cc-gpio:
description: Specifies the usbplug orientation gpio.
qcom,ext-disp:
description: phandle for msm-ext-display module
$ref: /schemas/types.yaml#/definitions/phandle
compatible:
const: qcom,msm-ext-disp
qcom,dp-low-power-hw-hpd:
description: Low power hardware HPD feature enable control node
qcom,phy-version:
description: Phy version
pinctrl-names:
description: |
List of names to assign mdss pin states defined in pinctrl device node
Refer to pinctrl-bindings.txt
pinctrl-<0..n>:
description: |
Lists phandles each pointing to the pin configuration node within a pin
controller. These pin configurations are installed in the pinctrl
device node. Refer to pinctrl-bindings.txt
qcom,max-lclk-frequency-khz:
description: An integer specifying the max. link clock in KHz supported by Display Port.
qcom,mst-fixed-topology-ports:
description: u32 values of which MST output port to reserve, start from one
$ref: /schemas/types.yaml#/definitions/uint32
qcom,hbr-rbr-voltage-swing:
description: Specifies the voltage swing levels for HBR and RBR rates.
qcom,hbr-rbr-pre-emphasis:
description: Specifies the pre-emphasis levels for HBR and RBR rates.
qcom,hbr2-3-voltage-swing:
description: Specifies the voltage swing levels for HBR2 and HBR3 rates.
qcom,hbr2-3-pre-emphasis:
description: Specifies the pre-emphasis levels for HBR2 and HBR3 rates.
compatible:
const: qcom,msm-ext-disp-audio-codec-rx
ext_disp_audio_codec:
description: Node for Audio Codec.
pattern properties:
"qcom,+\w+\-supply\-entries":
description: |
A node that lists the elements of the supply used by the
a particular "type" of DSI module. The module "types"
can be "core", "ctrl", and "phy". Within the same type,
there can be more than one instance of this binding,
in which case the entry would be appended with the
supply entry index.
e.g. qcom,ctrl-supply-entry@0
type: object
patternProperties:
"qcom,ctrl\-supply\-entry\@+\w":
properties:
reg:
description: offset and length of the register set for the device.
qcom,supply-name:
description: name of the supply (vdd/vdda/vddio)
$ref: /schemas/types.yaml#/definitions/string-array
qcom,supply-min-voltage:
description: minimum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-max-voltage:
description: maximum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-enable-load:
description: load drawn (uA) from enabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-disable-load:
description: load drawn (uA) from disabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-on-sleep:
description: time to sleep (ms) before turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-on-sleep:
description: time to sleep (ms) after turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-off-sleep:
description: time to sleep (ms) before turning off
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-off-sleep:
description: time to sleep (ms) after turning off
$ref: /schemas/types.yaml#/definitions/uint32
"qcom,core\-supply\-entry\@+\w":
properties:
reg:
description: offset and length of the register set for the device.
qcom,supply-name:
description: name of the supply (vdd/vdda/vddio)
$ref: /schemas/types.yaml#/definitions/string-array
qcom,supply-min-voltage:
description: minimum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-max-voltage:
description: maximum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-enable-load:
description: load drawn (uA) from enabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-disable-load:
description: load drawn (uA) from disabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-on-sleep:
description: time to sleep (ms) before turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-on-sleep:
description: time to sleep (ms) after turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-off-sleep:
description: time to sleep (ms) before turning off
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-off-sleep:
description: time to sleep (ms) after turning off
$ref: /schemas/types.yaml#/definitions/uint32
"qcom,phy\-supply\-entry\@+\w":
properties:
reg:
description: offset and length of the register set for the device.
qcom,supply-name:
description: name of the supply (vdd/vdda/vddio)
$ref: /schemas/types.yaml#/definitions/string-array
qcom,supply-min-voltage:
description: minimum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-max-voltage:
description: maximum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-enable-load:
description: load drawn (uA) from enabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-disable-load:
description: load drawn (uA) from disabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-on-sleep:
description: time to sleep (ms) before turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-on-sleep:
description: time to sleep (ms) after turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-off-sleep:
description: time to sleep (ms) before turning off
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-off-sleep:
description: time to sleep (ms) after turning off
$ref: /schemas/types.yaml#/definitions/uint32
required:
- compatible
- reg
- reg-names
- cell-index
- '#clock-cells'
- clocks
- clock-names
- vdda-1p2-supply
- vdda-0p9-supply
- interrupt-parent
- interrupts
- qcom,aux-cfg0-settings
- qcom,aux-cfg1-settings
- qcom,aux-cfg2-settings
- qcom,aux-cfg3-settings
- qcom,aux-cfg4-settings
- qcom,aux-cfg5-settings
- qcom,aux-cfg6-settings
- qcom,aux-cfg7-settings
- qcom,aux-cfg8-settings
- qcom,aux-cfg9-settings
- qcom,max-pclk-frequency-khz
- qcom,mst-enable
- qcom,dsc-feature-enable
- qcom,fec-feature-enable
- qcom,qos-cpu-mask
- qcom,qos-cpu-latency-us
- qcom,altmode-dev
- usb-controller
- qcom,pll-revision
- usb-phy
- qcom,dp-aux-switch
- qcom,dp-hpd-gpio
- qcom,dp-gpio-aux-switch
- qcom,<type>-supply-entries
examples:
- |
ext_disp: qcom,msm-ext-disp {
compatible = "qcom,msm-ext-disp";
ext_disp_audio_codec: qcom,msm-ext-disp-audio-codec-rx {
compatible = "qcom,msm-ext-disp-audio-codec-rx";
};
};
- |
sde_dp: qcom,dp_display@0 {
cell-index = <0>;
compatible = "qcom,dp-display";
qcom,dp-aux-switch = <&fsa4480>;
qcom,ext-disp = <&ext_disp>;
qcom,altmode-dev = <&altmode 0>;
usb-controller = <&usb0>;
reg = <0xae90000 0x0dc>,
<0xae90200 0x0c0>,
<0xae90400 0x508>,
<0xae91000 0x094>,
<0x88eaa00 0x200>,
<0x88ea200 0x200>,
<0x88ea600 0x200>,
<0xaf02000 0x1a0>,
<0x88ea000 0x200>,
<0x88e8000 0x20>,
<0x0aee1000 0x034>,
<0xae91400 0x094>,
<0xaf03000 0x8>;
reg-names = "dp_ahb", "dp_aux", "dp_link",
"dp_p0", "dp_phy", "dp_ln_tx0", "dp_ln_tx1",
"dp_mmss_cc", "dp_pll", "usb3_dp_com",
"hdcp_physical", "dp_p1", "gdsc";
interrupt-parent = <&mdss_mdp>;
interrupts = <12 0>;
#clock-cells = <1>;
clocks = <&clock_dispcc DISP_CC_MDSS_DP_AUX_CLK>,
<&clock_rpmh RPMH_CXO_CLK>,
<&clock_gcc GCC_USB3_PRIM_PHY_PIPE_CLK>,
<&clock_dispcc DISP_CC_MDSS_DP_LINK_CLK>,
<&clock_dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
<&clock_dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>,
<&clock_dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>,
<&sde_dp DP_PHY_PLL_VCO_DIV_CLK>,
<&clock_dispcc DISP_CC_MDSS_DP_PIXEL1_CLK_SRC>,
<&clock_dispcc DISP_CC_MDSS_DP_PIXEL_CLK>,
<&clock_dispcc DISP_CC_MDSS_DP_PIXEL1_CLK>;
clock-names = "core_aux_clk", "core_usb_ref_clk_src",
"core_usb_pipe_clk", "link_clk", "link_clk_src",
"link_iface_clk", "pixel_clk_rcg", "pixel_parent",
"pixel1_clk_rcg", "strm0_pixel_clk", "strm1_pixel_clk";
clock-mmrm = <0 0 0 0 DISP_CC_MDSS_DP_LINK_CLK_SRC 0 0 0 0 0 0>;
qcom,pll-revision = "5nm-v1";
qcom,phy-version = <0x420>;
qcom,dp-aux-switch = <&fsa4480>;
qcom,aux-cfg0-settings = [1c 00];
qcom,aux-cfg1-settings = [20 13 23 1d];
qcom,aux-cfg2-settings = [24 00];
qcom,aux-cfg3-settings = [28 00];
qcom,aux-cfg4-settings = [2c 0a];
qcom,aux-cfg5-settings = [30 26];
qcom,aux-cfg6-settings = [34 0a];
qcom,aux-cfg7-settings = [38 03];
qcom,aux-cfg8-settings = [3c bb];
qcom,aux-cfg9-settings = [40 03];
qcom,max-pclk-frequency-khz = <593470>;
qcom,mst-enable;
qcom,dsc-feature-enable;
qcom,fec-feature-enable;
qcom,dsc-continuous-pps;
qcom,qos-cpu-mask = <0xf>;
qcom,qos-cpu-latency-us = <300>;
vdda-1p2-supply = <&L6B>;
vdda-0p9-supply = <&L1B>;
vdd_mx-supply = <&VDD_MXA_LEVEL>;
qcom,hbr-rbr-voltage-swing = <0x07 0x0f 0x16 0x1f>,
<0x11 0x1e 0x1f 0xff>,
<0x16 0x1f 0xff 0xff>,
<0x1f 0xff 0xff 0xff>;
qcom,hbr-rbr-pre-emphasis = <0x00 0x0d 0x14 0x1a>,
<0x00 0x0e 0x15 0xff>,
<0x00 0x0e 0xff 0xff>,
<0x02 0xff 0xff 0xff>;
qcom,hbr2-3-voltage-swing = <0x02 0x12 0x16 0x1a>,
<0x09 0x19 0x1f 0xff>,
<0x10 0x1f 0xff 0xff>,
<0x1f 0xff 0xff 0xff>;
qcom,hbr2-3-pre-emphasis = <0x00 0x0c 0x15 0x1b>,
<0x02 0x0e 0x16 0xff>,
<0x02 0x11 0xff 0xff>,
<0x04 0xff 0xff 0xff>;
qcom,ctrl-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,ctrl-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdda-1p2";
qcom,supply-min-voltage = <1200000>;
qcom,supply-max-voltage = <1200000>;
qcom,supply-enable-load = <21700>;
qcom,supply-disable-load = <0>;
};
};
qcom,phy-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,phy-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdda-0p9";
qcom,supply-min-voltage = <912000>;
qcom,supply-max-voltage = <912000>;
qcom,supply-enable-load = <115000>;
qcom,supply-disable-load = <0>;
};
};
qcom,core-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,core-supply-entry@0 {
reg = <0>;
qcom,supply-name = "refgen";
qcom,supply-min-voltage = <0>;
qcom,supply-max-voltage = <0>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
qcom,pll-supply-entries {
#address-cells = <1>;
#size-cells = <0>;
qcom,pll-supply-entry@0 {
reg = <0>;
qcom,supply-name = "vdd_mx";
qcom,supply-min-voltage =
<RPMH_REGULATOR_LEVEL_TURBO>;
qcom,supply-max-voltage =
<RPMH_REGULATOR_LEVEL_MAX>;
qcom,supply-enable-load = <0>;
qcom,supply-disable-load = <0>;
};
};
};
...

View File

@@ -1,130 +0,0 @@
Qualcomm Technologies, Inc.
mdss-dsi is the master DSI device which supports multiple DSI host controllers
that are compatible with MIPI display serial interface specification.
DSI Controller and PHY:
Required properties:
- compatible: Should be "qcom,dsi-ctrl-hw-v<version>". Supported
versions include 2.4, 2.5, and 2.6.
eg: qcom,dsi-ctrl-hw-v2.2, qcom,dsi-ctrl-hw-v2.3,
qcom,dsi-ctrl-hw-v2.4, qcom,dsi-ctrl-hw-v2.5,
qcom,dsi-ctrl-hw-v2.6
And for dsi phy driver:
qcom,dsi-phy-v3.0, qcom,dsi-phy-v4.0,
qcom,dsi-phy-v4.1, qcom,dsi-phy-v4.2
- reg: List of base address and length of memory mapped
regions of DSI controller, disp_cc and mdp_intf.
- reg-names: A list of strings that name the list of regs.
"dsi_ctrl" - DSI controller memory region.
"disp_cc_base" - Base address of disp_cc memory region.
"mdp_intf_base" - Base address of mdp_intf memory region.
- cell-index: Specifies the controller instance.
- clocks: Clocks required for DSI controller operation.
- clock-names: Names of the clocks corresponding to handles. Following
clocks are required:
"mdp_core_clk"
"iface_clk"
"core_mmss_clk"
"bus_clk"
"byte_clk"
"pixel_clk"
"core_clk"
"byte_clk_rcg"
"pixel_clk_rcg"
- pll-label Supported versions of DSI PLL:
dsi_pll_5nm
- gdsc-supply: phandle to gdsc regulator node.
- vdda-supply: phandle to vdda regulator node.
- vcca-supply: phandle to vcca regulator node.
- interrupt-parent phandle to the interrupt parent device node.
- interrupts: The interrupt signal from the DSI block.
- qcom,dsi-default-panel: Specifies the default panel.
- qcom,mdp: Specifies the mdp node which can find panel node from this.
- qcom,demura-panel-id: Specifies the u64 demura panel ID as an array <2>
If demura is not used this node must be set to <0,0>.
Bus Scaling Data:
- qcom,msm-bus,name: String property describing MDSS client.
- qcom,msm-bus,num-cases: This is the number of bus scaling use cases
defined in the vectors property. This must be
set to <2> for MDSS DSI driver where use-case 0
is used to remove BW votes from the system. Use
case 1 is used to generate bandwidth requestes
when sending command packets.
- qcom,msm-bus,num-paths: This represents number of paths in each bus
scaling usecase. This value depends on number of
AXI master ports dedicated to MDSS for
particular chipset.
- qcom,msm-bus,vectors-KBps: A series of 4 cell properties, with a format
of (src, dst, ab, ib) which is defined at
Documentation/devicetree/bindings/arm/msm/msm_bus.txt.
DSI driver should always set average bandwidth
(ab) to 0 and always use instantaneous
bandwidth(ib) values.
Optional properties:
- label: String to describe controller.
- qcom,platform-te-gpio: Specifies the gpio used for TE.
- qcom,panel-te-source: Specifies the source pin for Vsync from panel or WD Timer.
- qcom,dsi-ctrl: handle to dsi controller device
- qcom,dsi-phy: handle to dsi phy device
- qcom,dsi-ctrl-num: Specifies the DSI controllers to use for primary panel
- qcom,dsi-sec-ctrl-num: Specifies the DSI controllers to use for secondary panel
- qcom,dsi-phy-num: Specifies the DSI PHYs to use for primary panel
- qcom,dsi-sec-phy-num: Specifies the DSI PHYs to use for secondary panel
- qcom,dsi-select-clocks: Specifies the required clocks to use for primary panel
- qcom,dsi-select-sec-clocks: Specifies the required clocks to use for secondary panel
- qcom,dsi-display-list: Specifies the list of supported displays.
- qcom,dsi-manager: Specifies dsi manager is present
- qcom,dsi-display: Specifies dsi display is present
- qcom,hdmi-display: Specifies hdmi is present
- qcom,dp-display: Specified dp is present
- qcom,<type>-supply-entries: A node that lists the elements of the supply used by the
a particular "type" of DSI module. The module "types"
can be "core", "ctrl", and "phy". Within the same type,
there can be more than one instance of this binding,
in which case the entry would be appended with the
supply entry index.
e.g. qcom,ctrl-supply-entry@0
-- qcom,supply-name: name of the supply (vdd/vdda/vddio)
-- qcom,supply-min-voltage: minimum voltage level (uV)
-- qcom,supply-max-voltage: maximum voltage level (uV)
-- qcom,supply-enable-load: load drawn (uA) from enabled supply
-- qcom,supply-disable-load: load drawn (uA) from disabled supply
-- qcom,supply-pre-on-sleep: time to sleep (ms) before turning on
-- qcom,supply-post-on-sleep: time to sleep (ms) after turning on
-- qcom,supply-pre-off-sleep: time to sleep (ms) before turning off
-- qcom,supply-post-off-sleep: time to sleep (ms) after turning off
- qcom,mdss-mdp-transfer-time-us: Specifies the dsi transfer time for command mode
panels in microseconds. Driver uses this number to adjust
the clock rate according to the expected transfer time.
Increasing this value would slow down the mdp processing
and can result in slower performance.
Decreasing this value can speed up the mdp processing,
but this can also impact power consumption.
As a rule this time should not be higher than the time
that would be expected with the processing at the
dsi link rate since anyways this would be the maximum
transfer time that could be achieved.
If ping pong split enabled, this time should not be higher
than two times the dsi link rate time.
If the property is not specified, then the default value is 14000 us.
- qcom,dsi-phy-pll-bypass: A boolean property that enables bypassing hardware access in DSI
PHY/PLL drivers to allow the DSI driver to run on emulation platforms
that might be missing those modules.
- - qcom,null-insertion-enabled: A boolean to enable NULL packet insertion feature for DSI controller.
- ports: This video port is used when external bridge is present.
The connection is modeled using the OF graph bindings
specified in Documentation/devicetree/bindings/graph.txt.
Video port 0 reg 0 is for the bridge output. The remote
endpoint phandle should be mipi_dsi_device device node.
- qcom,dsi-pll-ssc-en: Boolean property to indicate that ssc is enabled.
- qcom,dsi-pll-ssc-mode: Spread-spectrum clocking. It can be either "down-spread"
or "center-spread". Default is "down-spread" if it is not specified.
- qcom,ssc-frequency-hz: Integer property to specify the spread frequency
to be programmed for the SSC.
- qcom,ssc-ppm: Integer property to specify the Parts per Million
value of SSC.
- qcom,avdd-regulator-gpio: Specifies the gpio pin used for avdd
power supply regulator.

360
bindings/sde-dsi.yaml Normal file
View File

@@ -0,0 +1,360 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sde-dsi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MDSS DSI
description: |
mdss-dsi is the master DSI device which supports multiple DSI host controllers
that are compatible with MIPI display serial interface specification.
maintainers:
- Vara Reddy <quic_varar@quicinc.com>
- Vishnuvardhan Prodduturi <quic_vproddut@quicinc.com>
pattern properties:
"qcom,+\w+\-supply\-entries":
description: |
A node that lists the elements of the supply used by the
a particular "type" of DSI module. The module "types"
can be "core", "ctrl", and "phy". Within the same type,
there can be more than one instance of this binding,
in which case the entry would be appended with the
supply entry index.
e.g. qcom,ctrl-supply-entry@0
type: object
patternProperties:
"qcom,ctrl\-supply\-entry\@+\w":
properties:
reg:
description: offset and length of the register set for the device.
qcom,supply-name:
description: name of the supply (vdd/vdda/vddio)
$ref: /schemas/types.yaml#/definitions/string-array
qcom,supply-min-voltage:
description: minimum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-max-voltage:
description: maximum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-enable-load:
description: load drawn (uA) from enabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-disable-load:
description: load drawn (uA) from disabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-on-sleep:
description: time to sleep (ms) before turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-on-sleep:
description: time to sleep (ms) after turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-off-sleep:
description: time to sleep (ms) before turning off
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-off-sleep:
description: time to sleep (ms) after turning off
$ref: /schemas/types.yaml#/definitions/uint32
"qcom,core\-supply\-entry\@+\w":
properties:
reg:
description: offset and length of the register set for the device.
qcom,supply-name:
description: name of the supply (vdd/vdda/vddio)
$ref: /schemas/types.yaml#/definitions/string-array
qcom,supply-min-voltage:
description: minimum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-max-voltage:
description: maximum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-enable-load:
description: load drawn (uA) from enabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-disable-load:
description: load drawn (uA) from disabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-on-sleep:
description: time to sleep (ms) before turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-on-sleep:
description: time to sleep (ms) after turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-off-sleep:
description: time to sleep (ms) before turning off
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-off-sleep:
description: time to sleep (ms) after turning off
$ref: /schemas/types.yaml#/definitions/uint32
"qcom,phy\-supply\-entry\@+\w":
properties:
reg:
description: offset and length of the register set for the device.
qcom,supply-name:
description: name of the supply (vdd/vdda/vddio)
$ref: /schemas/types.yaml#/definitions/string-array
qcom,supply-min-voltage:
description: minimum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-max-voltage:
description: maximum voltage level (uV)
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-enable-load:
description: load drawn (uA) from enabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-disable-load:
description: load drawn (uA) from disabled supply
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-on-sleep:
description: time to sleep (ms) before turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-on-sleep:
description: time to sleep (ms) after turning on
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-pre-off-sleep:
description: time to sleep (ms) before turning off
$ref: /schemas/types.yaml#/definitions/uint32
qcom,supply-post-off-sleep:
description: time to sleep (ms) after turning off
$ref: /schemas/types.yaml#/definitions/uint32
properties:
compatible:
enum:
- qcom,dsi-ctrl-hw-v2.4
- qcom,dsi-ctrl-hw-v2.5
- qcom,dsi-ctrl-hw-v2.6
- qcom,dsi-ctrl-hw-v2.7
- qcom,dsi-ctrl-hw-v2.8
- qcom,dsi-ctrl-hw-v2.9
- qcom,dsi-phy-v3.0
- qcom,dsi-phy-v4.0
- qcom,dsi-phy-v4.1
- qcom,dsi-phy-v4.2
- qcom,dsi-phy-v4.3
- qcom,dsi-phy-v4.3.2
- qcom,dsi-phy-v5.2
- qcom,dsi-phy-v7.2
reg:
description: |
List of base address and length of memory mapped
regions of DSI controller, disp_cc and mdp_intf.
reg-names:
items:
- const: dsi_ctrl
- const: disp_cc_base
- const: mdp_intf_base
cell-index:
description: Specifies the controller instance.
clocks:
items:
- const: mdp_core_clk
- const: iface_clk
- const: core_mmss_clk
- const: bus_clk
- const: byte_clk
- const: pixel_clk
- const: core_clk
- const: byte_clk_rcg
- const: pixel_clk_rcg
pll-label:
description: Supported versions of DSI PLL.
$ref: /schemas/types.yaml#/definitions/string-array
enum: [dsi_pll_5nm, dsi_pll_4nm, dsi_pll_3nm]
gdsc-supply:
description: phandle to gdsc regulator node.
$ref: /schemas/types.yaml#/definitions/phandle
vdda-supply:
description: phandle to vdda regulator node.
$ref: /schemas/types.yaml#/definitions/phandle
vcca-supply:
description: phandle to vcca regulator node.
$ref: /schemas/types.yaml#/definitions/phandle
interrupt-parent:
description: phandle to the interrupt parent device node.
$ref: /schemas/types.yaml#/definitions/phandle
interrupts:
description: The interrupt signal from the DSI block.
qcom,dsi-default-panel:
description: Specifies the default panel.
qcom,mdp:
description: Specifies the mdp node which can find panel node from this.
qcom,demura-panel-id:
description: |
Specifies the u64 demura panel ID as an array <2>
If demura is not used this node must be set to <0,0>.
$ref: /schemas/types.yaml#/definitions/uint64
qcom,msm-bus,name:
description: String property describing MDSS client.
$ref: /schemas/types.yaml#/definitions/string-array
qcom,msm-bus,num-cases:
description: |
This is the number of bus scaling use cases
defined in the vectors property. This must be
set to <2> for MDSS DSI driver where use-case 0
is used to remove BW votes from the system. Use
case 1 is used to generate bandwidth requestes
when sending command packets.
qcom,msm-bus,num-paths:
description: |
This represents number of paths in each bus
scaling usecase. This value depends on number of
AXI master ports dedicated to MDSS for
particular chipset.
qcom,msm-bus,vectors-KBps:
description: |
A series of 4 cell properties, with a format
of (src, dst, ab, ib) which is defined at
Documentation/devicetree/bindings/arm/msm/msm_bus.txt.
DSI driver should always set average bandwidth
(ab) to 0 and always use instantaneous
bandwidth(ib) values.
label:
description: String to describe controller.
$ref: /schemas/types.yaml#/definitions/string-array
qcom,platform-te-gpio:
description: Specifies the gpio used for TE.
qcom,panel-te-source:
description: Specifies the source pin for Vsync from panel or WD Timer.
qcom,dsi-ctrl:
description: handle to dsi controller device
qcom,dsi-phy:
description: handle to dsi phy device
qcom,dsi-ctrl-num:
description: Specifies the DSI controllers to use for primary panel
qcom,dsi-sec-ctrl-num:
description: Specifies the DSI controllers to use for secondary panel
qcom,dsi-phy-num:
description: Specifies the DSI PHYs to use for primary panel
qcom,dsi-sec-phy-num:
description: Specifies the DSI PHYs to use for secondary panel
qcom,dsi-select-clocks:
description: Specifies the required clocks to use for primary panel
qcom,dsi-select-sec-clocks:
description: Specifies the required clocks to use for secondary panel
qcom,dsi-display-list:
description: Specifies the list of supported displays.
$ref: /schemas/types.yaml#/definitions/string-array
qcom,dsi-manager:
description: Specifies dsi manager is present
qcom,dsi-display:
description: Specifies dsi display is present
qcom,hdmi-display:
description: Specifies hdmi is present
qcom,dp-display:
description: Specified dp is present
qcom,mdss-mdp-transfer-time-us:
description: |
Specifies the dsi transfer time for command mode
panels in microseconds. Driver uses this number to adjust
the clock rate according to the expected transfer time.
Increasing this value would slow down the mdp processing
and can result in slower performance.
Decreasing this value can speed up the mdp processing,
but this can also impact power consumption.
As a rule this time should not be higher than the time
that would be expected with the processing at the
dsi link rate since anyways this would be the maximum
transfer time that could be achieved.
If ping pong split enabled, this time should not be higher
than two times the dsi link rate time.
If the property is not specified, then the default value is 14000 us.
qcom,dsi-phy-pll-bypass:
description: |
A boolean property that enables bypassing hardware access in DSI
PHY/PLL drivers to allow the DSI driver to run on emulation platforms
that might be missing those modules.
qcom,null-insertion-enabled:
description: A boolean to enable NULL packet insertion feature for DSI controller.
ports:
description: |
This video port is used when external bridge is present.
The connection is modeled using the OF graph bindings
specified in Documentation/devicetree/bindings/graph.txt.
Video port 0 reg 0 is for the bridge output. The remote
endpoint phandle should be mipi_dsi_device device node.
qcom,dsi-pll-ssc-en:
description: Boolean property to indicate that ssc is enabled.
qcom,dsi-pll-ssc-mode:
description: |
Spread-spectrum clocking. It can be either "down-spread"
or "center-spread". Default is "down-spread" if it is not specified.
$ref: /schemas/types.yaml#/definitions/string-array
default: down-spread
enum: [down-spread, center-spread]
qcom,ssc-frequency-hz:
description: |
Integer property to specify the spread frequency
to be programmed for the SSC.
$ref: /schemas/types.yaml#/definitions/uint32
qcom,ssc-ppm:
description: Integer property to specify the Parts per Million value of SSC.
$ref: /schemas/types.yaml#/definitions/uint32
qcom,avdd-regulator-gpio:
description: Specifies the gpio pin used for avdd power supply regulator.
required:
- compatible
- reg
- reg-names
- cell-index
- clocks
- clock-names
- pll-label
- gdsc-supply
- vdda-supply
- vcca-supply
- interrupt-parent
- qcom,dsi-default-panel
- qcom,mdp
- qcom,demura-panel-id
- qcom,msm-bus,name
- qcom,msm-bus,num-cases
- qcom,msm-bus,num-paths
- qcom,msm-bus,vectors-KBps
...

View File

@@ -1,23 +0,0 @@
Qualcomm Technologies, Inc. Snapdragon Display Engine (SDE) writeback display
Required properties:
- compatible: "qcom,wb-display"
Optional properties:
- cell-index: Index of writeback device instance.
Default to 0 if not specified.
- label: String to describe this writeback display.
Default to "unknown" if not specified.
Example:
/ {
...
sde_wb: qcom,wb-display {
compatible = "qcom,wb-display";
cell-index = <2>;
label = "wb_display";
};
};

36
bindings/sde-wb.yaml Normal file
View File

@@ -0,0 +1,36 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sde-wb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies, Inc. Snapdragon Display Engine (SDE) writeback display
maintainers:
- Veera Sundaram Sankaran <quic_veeras@quicinc.com>
- Kalyan Thota <quic_kalyant@quicinc.com>
- Ravi Teja Tamatam <quic_travitej@quicinc.com>
properties:
compatible:
const: qcom,wb-display
cell-index:
description: Index of writeback device instance. Default to 0 if not specified.
default: 0
label:
description: String to describe this writeback display. Default to "unknown" if not specified.
default: "unknown"
required:
- compatible
examples:
- |
sde_wb: qcom,wb-display {
compatible = "qcom,wb-display";
cell-index = <2>;
label = "wb_display";
};
...

File diff suppressed because it is too large Load Diff

2076
bindings/sde.yaml Normal file

File diff suppressed because it is too large Load Diff