* [PATCH v3 00/10] Add DSI display support for SA8775P target
@ 2025-04-04 11:55 Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 01/10] dt-bindings: display: msm-dsi-phy-7nm: document the SA8775P DSI PHY Ayushi Makhija
` (9 more replies)
0 siblings, 10 replies; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-04 11:55 UTC (permalink / raw)
To: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel
Cc: Ayushi Makhija, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, konradybcio, conor+dt,
andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, quic_abhinavk, quic_rajeevny, quic_vproddut,
quic_jesszhan
This series enables the support for DSI to DP bridge ports
(labled as DSI0 and DSI1) of the Qualcomm's SA8775P Ride platform.
SA8775P SoC has DSI controller v2.5.1 and DSI PHY v4.2.
The Ride platform is having ANX7625 DSI to DP bridge chip from Analogix.
---
This patch depends on following series:
https://lore.kernel.org/linux-arm-msm/20250127-dts-qcom-dsi-phy-clocks-v1-0-9d8ddbcb1c7f@linaro.org/
(ARM / arm64: dts: qcom: Use the header with DSI phy clock IDs)
Changes in v3: Fixed review comments from Dmitry and Krzysztof
- Added qcom,sa8775p-dsi-ctrl compatible based on the set of clocks
which are associated with it in patch 2. [Krzysztof]
- Drop the blank line and add contains instead of items in pattern
properties of dsi ctrl and phy in patch 3. [Krzysztof]
- Updated the node name from anx7625@58 to bridge@58 for anx7625
dsi-dp bridge in patch 7. [Dmitry/Krzysztof]
- Updated endpoint label name for input output ports of analogix bridge chip in patch 7.
- Check the DP or eDP confiuration based on the aux node in patch 9. [Dmitry]
- Link to v2 : https://lore.kernel.org/all/20250311122445.3597100-1-quic_amakhija@quicinc.com/
Changes in v2: Fixed review comments from Rob, konard, Dmitry and Krzysztof
- Added additionalProperities in dsi and phy patternProperties in patch 3. [Rob's bot]
- Updated example in qcom,sa8775p-mdss.yaml of patch 3:
- Added port1 and port2 inside mdss0 ports.
- Renamed dsi ports from mdss_dsi0_in to mdss0_dsi0_in and mdss_dsi1_in to mdss0_dsi1_in.
- Updated the init load value for vdds supply of DSI PHY from
150000uA to 48000uA as per chipset power grid in patch 4. [Dmitry]
- Updated the init load value for vdda supply for DSI ctrl
from 30100uA to 8300uA as per chipset power grid in patch 5.[Dmitry]
- Rebase the series to use the header with DSI phy clock IDs to make code more
readable in patch 6. [konard]
- Added the interrupts-extended in patch 7. [konard]
- Fixed the warning from DT checker against DT binding in patch 7. [Krzysztof]
- Changed the connector node name from dsi0-connector to dp-dsi0-connector and dsi1-connector to dp-dsi1-connector
respectively in patch 7. [Dmitry]
- Added the vph_pwr for anx7625 vdda10, vdds18 and vdda33 supply to fix the warnings from DT checker in
patch 7. [Rob's bot]
- Addressed device tree comments in patch 7. [Konard]
- Squash the DT patch 8 into DT patch 7. [Dmitry]
- Added hpd_enable() and hpd_disable() bridge funcs in patch 9. [Dmitry]
- Update hpd detection bridge op flags logic based on eDP connector in patch 10. [Dmitry]
- Link to v1 : https://lore.kernel.org/linux-arm-msm/20250225121824.3869719-1-quic_amakhija@quicinc.com/
---
Ayushi Makhija (10):
dt-bindings: display: msm-dsi-phy-7nm: document the SA8775P DSI PHY
dt-bindings: msm: dsi-controller-main: document the SA8775P DSI CTRL
dt-bindings: display: msm: document DSI controller and phy on SA8775P
drm/msm/dsi: add DSI PHY configuration on SA8775P
drm/msm/dsi: add DSI support for SA8775P
arm64: dts: qcom: sa8775p: add Display Serial Interface device nodes
arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
drm/bridge: anx7625: enable HPD interrupts
drm/bridge: anx7625: update bridge_ops and sink detect logic
drm/bridge: anx7625: change the gpiod_set_value API
.../display/msm/dsi-controller-main.yaml | 2 +
.../bindings/display/msm/dsi-phy-7nm.yaml | 1 +
.../display/msm/qcom,sa8775p-mdss.yaml | 183 ++++++++++++++-
arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 +++++++++++++++++-
arch/arm64/boot/dts/qcom/sa8775p.dtsi | 186 +++++++++++++++-
drivers/gpu/drm/bridge/analogix/anx7625.c | 34 ++-
drivers/gpu/drm/msm/dsi/dsi_cfg.c | 18 ++
drivers/gpu/drm/msm/dsi/dsi_cfg.h | 1 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 1 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 27 +++
11 files changed, 650 insertions(+), 13 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v3 01/10] dt-bindings: display: msm-dsi-phy-7nm: document the SA8775P DSI PHY
2025-04-04 11:55 [PATCH v3 00/10] Add DSI display support for SA8775P target Ayushi Makhija
@ 2025-04-04 11:55 ` Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 02/10] dt-bindings: msm: dsi-controller-main: document the SA8775P DSI CTRL Ayushi Makhija
` (8 subsequent siblings)
9 siblings, 0 replies; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-04 11:55 UTC (permalink / raw)
To: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel
Cc: Ayushi Makhija, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, konradybcio, conor+dt,
andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, quic_abhinavk, quic_rajeevny, quic_vproddut,
quic_jesszhan, Krzysztof Kozlowski
Document the DSI PHY on the SA8775P Platform.
Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
Documentation/devicetree/bindings/display/msm/dsi-phy-7nm.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/display/msm/dsi-phy-7nm.yaml b/Documentation/devicetree/bindings/display/msm/dsi-phy-7nm.yaml
index 321470435e65..fd5728f3e89f 100644
--- a/Documentation/devicetree/bindings/display/msm/dsi-phy-7nm.yaml
+++ b/Documentation/devicetree/bindings/display/msm/dsi-phy-7nm.yaml
@@ -17,6 +17,7 @@ properties:
enum:
- qcom,dsi-phy-7nm
- qcom,dsi-phy-7nm-8150
+ - qcom,sa8775p-dsi-phy-5nm
- qcom,sc7280-dsi-phy-7nm
- qcom,sm6375-dsi-phy-7nm
- qcom,sm8350-dsi-phy-5nm
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v3 02/10] dt-bindings: msm: dsi-controller-main: document the SA8775P DSI CTRL
2025-04-04 11:55 [PATCH v3 00/10] Add DSI display support for SA8775P target Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 01/10] dt-bindings: display: msm-dsi-phy-7nm: document the SA8775P DSI PHY Ayushi Makhija
@ 2025-04-04 11:55 ` Ayushi Makhija
2025-04-06 12:36 ` Krzysztof Kozlowski
2025-04-04 11:55 ` [PATCH v3 03/10] dt-bindings: display: msm: document DSI controller and phy on SA8775P Ayushi Makhija
` (7 subsequent siblings)
9 siblings, 1 reply; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-04 11:55 UTC (permalink / raw)
To: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel
Cc: Ayushi Makhija, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, konradybcio, conor+dt,
andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, quic_abhinavk, quic_rajeevny, quic_vproddut,
quic_jesszhan
Document the DSI CTRL on the SA8775P Platform.
Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
---
.../devicetree/bindings/display/msm/dsi-controller-main.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
index 2aab33cd0017..a025e4384ac6 100644
--- a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
+++ b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
@@ -23,6 +23,7 @@ properties:
- qcom,msm8996-dsi-ctrl
- qcom,msm8998-dsi-ctrl
- qcom,qcm2290-dsi-ctrl
+ - qcom,sa8775p-dsi-ctrl
- qcom,sc7180-dsi-ctrl
- qcom,sc7280-dsi-ctrl
- qcom,sdm660-dsi-ctrl
@@ -314,6 +315,7 @@ allOf:
contains:
enum:
- qcom,msm8998-dsi-ctrl
+ - qcom,sa8775p-dsi-ctrl
- qcom,sc7180-dsi-ctrl
- qcom,sc7280-dsi-ctrl
- qcom,sdm845-dsi-ctrl
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v3 03/10] dt-bindings: display: msm: document DSI controller and phy on SA8775P
2025-04-04 11:55 [PATCH v3 00/10] Add DSI display support for SA8775P target Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 01/10] dt-bindings: display: msm-dsi-phy-7nm: document the SA8775P DSI PHY Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 02/10] dt-bindings: msm: dsi-controller-main: document the SA8775P DSI CTRL Ayushi Makhija
@ 2025-04-04 11:55 ` Ayushi Makhija
2025-04-05 7:48 ` Krzysztof Kozlowski
2025-04-04 11:55 ` [PATCH v3 04/10] drm/msm/dsi: add DSI PHY configuration " Ayushi Makhija
` (6 subsequent siblings)
9 siblings, 1 reply; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-04 11:55 UTC (permalink / raw)
To: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel
Cc: Ayushi Makhija, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, konradybcio, conor+dt,
andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, quic_abhinavk, quic_rajeevny, quic_vproddut,
quic_jesszhan
Document DSI controller and phy on SA8775P platform.
Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
---
.../display/msm/qcom,sa8775p-mdss.yaml | 183 +++++++++++++++++-
1 file changed, 182 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml
index 5fac3e266703..1be26137b7b6 100644
--- a/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml
+++ b/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml
@@ -52,12 +52,25 @@ patternProperties:
items:
- const: qcom,sa8775p-dp
+ "^dsi@[0-9a-f]+$":
+ type: object
+ additionalProperties: true
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,sa8775p-dsi-ctrl
+ - qcom,mdss-dsi-ctrl
+
"^phy@[0-9a-f]+$":
type: object
additionalProperties: true
properties:
compatible:
- const: qcom,sa8775p-edp-phy
+ contains:
+ enum:
+ - qcom,sa8775p-dsi-phy-5nm
+ - qcom,sa8775p-edp-phy
required:
- compatible
@@ -139,6 +152,20 @@ examples:
remote-endpoint = <&mdss0_dp0_in>;
};
};
+
+ port@1 {
+ reg = <1>;
+ dpu_intf1_out: endpoint {
+ remote-endpoint = <&mdss0_dsi0_in>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+ dpu_intf2_out: endpoint {
+ remote-endpoint = <&mdss0_dsi1_in>;
+ };
+ };
};
mdss0_mdp_opp_table: opp-table {
@@ -186,6 +213,160 @@ examples:
vdda-pll-supply = <&vreg_l4a>;
};
+ dsi@ae94000 {
+ compatible = "qcom,sa8775p-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+ reg = <0x0ae94000 0x400>;
+ reg-names = "dsi_ctrl";
+
+ interrupt-parent = <&mdss>;
+ interrupts = <4>;
+
+ clocks = <&dispc_byte_clk>,
+ <&dispcc_intf_clk>,
+ <&dispcc_pclk>,
+ <&dispcc_esc_clk>,
+ <&dispcc_ahb_clk>,
+ <&gcc_bus_clk>;
+ clock-names = "byte",
+ "byte_intf",
+ "pixel",
+ "core",
+ "iface",
+ "bus";
+ assigned-clocks = <&dispcc_byte_clk>,
+ <&dispcc_pclk>;
+ assigned-clock-parents = <&mdss0_dsi0_phy 0>, <&mdss0_dsi0_phy 1>;
+ phys = <&mdss0_dsi0_phy>;
+
+ operating-points-v2 = <&dsi0_opp_table>;
+ power-domains = <&rpmhpd SA8775P_MMCX>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ mdss0_dsi0_in: endpoint {
+ remote-endpoint = <&dpu_intf1_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ mdss0_dsi0_out: endpoint { };
+ };
+ };
+
+ dsi0_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-358000000 {
+ opp-hz = /bits/ 64 <358000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ };
+ };
+ };
+
+ mdss0_dsi0_phy: phy@ae94400 {
+ compatible = "qcom,sa8775p-dsi-phy-5nm";
+ reg = <0x0ae94400 0x200>,
+ <0x0ae94600 0x280>,
+ <0x0ae94900 0x27c>;
+ reg-names = "dsi_phy",
+ "dsi_phy_lane",
+ "dsi_pll";
+
+ #clock-cells = <1>;
+ #phy-cells = <0>;
+
+ clocks = <&dispcc_iface_clk>,
+ <&rpmhcc_ref_clk>;
+ clock-names = "iface", "ref";
+
+ vdds-supply = <&vreg_dsi_supply>;
+ };
+
+ dsi@ae96000 {
+ compatible = "qcom,sa8775p-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+ reg = <0x0ae96000 0x400>;
+ reg-names = "dsi_ctrl";
+
+ interrupt-parent = <&mdss>;
+ interrupts = <4>;
+
+ clocks = <&dispc_byte_clk>,
+ <&dispcc_intf_clk>,
+ <&dispcc_pclk>,
+ <&dispcc_esc_clk>,
+ <&dispcc_ahb_clk>,
+ <&gcc_bus_clk>;
+ clock-names = "byte",
+ "byte_intf",
+ "pixel",
+ "core",
+ "iface",
+ "bus";
+ assigned-clocks = <&dispcc_byte_clk>,
+ <&dispcc_pclk>;
+ assigned-clock-parents = <&mdss0_dsi1_phy 0>, <&mdss0_dsi1_phy 1>;
+ phys = <&mdss0_dsi1_phy>;
+
+ operating-points-v2 = <&dsi1_opp_table>;
+ power-domains = <&rpmhpd SA8775P_MMCX>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ mdss0_dsi1_in: endpoint {
+ remote-endpoint = <&dpu_intf2_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ mdss0_dsi1_out: endpoint { };
+ };
+ };
+
+ dsi1_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-358000000 {
+ opp-hz = /bits/ 64 <358000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ };
+ };
+ };
+
+ mdss0_dsi1_phy: phy@ae96400 {
+ compatible = "qcom,sa8775p-dsi-phy-5nm";
+ reg = <0x0ae96400 0x200>,
+ <0x0ae96600 0x280>,
+ <0x0ae96900 0x27c>;
+ reg-names = "dsi_phy",
+ "dsi_phy_lane",
+ "dsi_pll";
+
+ #clock-cells = <1>;
+ #phy-cells = <0>;
+
+ clocks = <&dispcc_iface_clk>,
+ <&rpmhcc_ref_clk>;
+ clock-names = "iface", "ref";
+
+ vdds-supply = <&vreg_dsi_supply>;
+ };
+
displayport-controller@af54000 {
compatible = "qcom,sa8775p-dp";
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v3 04/10] drm/msm/dsi: add DSI PHY configuration on SA8775P
2025-04-04 11:55 [PATCH v3 00/10] Add DSI display support for SA8775P target Ayushi Makhija
` (2 preceding siblings ...)
2025-04-04 11:55 ` [PATCH v3 03/10] dt-bindings: display: msm: document DSI controller and phy on SA8775P Ayushi Makhija
@ 2025-04-04 11:55 ` Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 05/10] drm/msm/dsi: add DSI support for SA8775P Ayushi Makhija
` (5 subsequent siblings)
9 siblings, 0 replies; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-04 11:55 UTC (permalink / raw)
To: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel
Cc: Ayushi Makhija, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, konradybcio, conor+dt,
andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, quic_abhinavk, quic_rajeevny, quic_vproddut,
quic_jesszhan, Dmitry Baryshkov
The SA8775P SoC uses the 5nm (v4.2) DSI PHY driver with
different enable regulator load.
Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
Reviewed-by: Dmitry Baryshkov <lumag@kernel.org>
---
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 ++
drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 1 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 27 +++++++++++++++++++++++
3 files changed, 30 insertions(+)
diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
index c0bcc6828963..92be08ac5f65 100644
--- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
+++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
@@ -581,6 +581,8 @@ static const struct of_device_id dsi_phy_dt_match[] = {
.data = &dsi_phy_7nm_cfgs },
{ .compatible = "qcom,dsi-phy-7nm-8150",
.data = &dsi_phy_7nm_8150_cfgs },
+ { .compatible = "qcom,sa8775p-dsi-phy-5nm",
+ .data = &dsi_phy_5nm_8775p_cfgs },
{ .compatible = "qcom,sc7280-dsi-phy-7nm",
.data = &dsi_phy_7nm_7280_cfgs },
{ .compatible = "qcom,sm6375-dsi-phy-7nm",
diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.h b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.h
index 1925418d9999..8d9a541f9f09 100644
--- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.h
+++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.h
@@ -59,6 +59,7 @@ extern const struct msm_dsi_phy_cfg dsi_phy_7nm_8150_cfgs;
extern const struct msm_dsi_phy_cfg dsi_phy_7nm_7280_cfgs;
extern const struct msm_dsi_phy_cfg dsi_phy_5nm_8350_cfgs;
extern const struct msm_dsi_phy_cfg dsi_phy_5nm_8450_cfgs;
+extern const struct msm_dsi_phy_cfg dsi_phy_5nm_8775p_cfgs;
extern const struct msm_dsi_phy_cfg dsi_phy_4nm_8550_cfgs;
extern const struct msm_dsi_phy_cfg dsi_phy_4nm_8650_cfgs;
diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c
index a92decbee5b5..2bfe6f921c7e 100644
--- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c
+++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c
@@ -1147,6 +1147,10 @@ static const struct regulator_bulk_data dsi_phy_7nm_37750uA_regulators[] = {
{ .supply = "vdds", .init_load_uA = 37550 },
};
+static const struct regulator_bulk_data dsi_phy_7nm_48000uA_regulators[] = {
+ { .supply = "vdds", .init_load_uA = 48000 },
+};
+
static const struct regulator_bulk_data dsi_phy_7nm_98000uA_regulators[] = {
{ .supply = "vdds", .init_load_uA = 98000 },
};
@@ -1289,6 +1293,29 @@ const struct msm_dsi_phy_cfg dsi_phy_5nm_8450_cfgs = {
.quirks = DSI_PHY_7NM_QUIRK_V4_3,
};
+const struct msm_dsi_phy_cfg dsi_phy_5nm_8775p_cfgs = {
+ .has_phy_lane = true,
+ .regulator_data = dsi_phy_7nm_48000uA_regulators,
+ .num_regulators = ARRAY_SIZE(dsi_phy_7nm_48000uA_regulators),
+ .ops = {
+ .enable = dsi_7nm_phy_enable,
+ .disable = dsi_7nm_phy_disable,
+ .pll_init = dsi_pll_7nm_init,
+ .save_pll_state = dsi_7nm_pll_save_state,
+ .restore_pll_state = dsi_7nm_pll_restore_state,
+ .set_continuous_clock = dsi_7nm_set_continuous_clock,
+ },
+ .min_pll_rate = 600000000UL,
+#ifdef CONFIG_64BIT
+ .max_pll_rate = 5000000000UL,
+#else
+ .max_pll_rate = ULONG_MAX,
+#endif
+ .io_start = { 0xae94400, 0xae96400 },
+ .num_dsi_phy = 2,
+ .quirks = DSI_PHY_7NM_QUIRK_V4_2,
+};
+
const struct msm_dsi_phy_cfg dsi_phy_4nm_8550_cfgs = {
.has_phy_lane = true,
.regulator_data = dsi_phy_7nm_98400uA_regulators,
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v3 05/10] drm/msm/dsi: add DSI support for SA8775P
2025-04-04 11:55 [PATCH v3 00/10] Add DSI display support for SA8775P target Ayushi Makhija
` (3 preceding siblings ...)
2025-04-04 11:55 ` [PATCH v3 04/10] drm/msm/dsi: add DSI PHY configuration " Ayushi Makhija
@ 2025-04-04 11:55 ` Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 06/10] arm64: dts: qcom: sa8775p: add Display Serial Interface device nodes Ayushi Makhija
` (4 subsequent siblings)
9 siblings, 0 replies; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-04 11:55 UTC (permalink / raw)
To: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel
Cc: Ayushi Makhija, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, konradybcio, conor+dt,
andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, quic_abhinavk, quic_rajeevny, quic_vproddut,
quic_jesszhan, Dmitry Baryshkov
Add DSI Controller v2.5.1 support for SA8775P SoC.
Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
Reviewed-by: Dmitry Baryshkov <lumag@kernel.org>
---
drivers/gpu/drm/msm/dsi/dsi_cfg.c | 18 ++++++++++++++++++
drivers/gpu/drm/msm/dsi/dsi_cfg.h | 1 +
2 files changed, 19 insertions(+)
diff --git a/drivers/gpu/drm/msm/dsi/dsi_cfg.c b/drivers/gpu/drm/msm/dsi/dsi_cfg.c
index 7754dcec33d0..7675558ae2e5 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_cfg.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_cfg.c
@@ -221,6 +221,22 @@ static const struct msm_dsi_config sc7280_dsi_cfg = {
},
};
+static const struct regulator_bulk_data sa8775p_dsi_regulators[] = {
+ { .supply = "vdda", .init_load_uA = 8300 }, /* 1.2 V */
+ { .supply = "refgen" },
+};
+
+static const struct msm_dsi_config sa8775p_dsi_cfg = {
+ .io_offset = DSI_6G_REG_SHIFT,
+ .regulator_data = sa8775p_dsi_regulators,
+ .num_regulators = ARRAY_SIZE(sa8775p_dsi_regulators),
+ .bus_clk_names = dsi_v2_4_clk_names,
+ .num_bus_clks = ARRAY_SIZE(dsi_v2_4_clk_names),
+ .io_start = {
+ { 0xae94000, 0xae96000 },
+ },
+};
+
static const struct msm_dsi_host_cfg_ops msm_dsi_v2_host_ops = {
.link_clk_set_rate = dsi_link_clk_set_rate_v2,
.link_clk_enable = dsi_link_clk_enable_v2,
@@ -294,6 +310,8 @@ static const struct msm_dsi_cfg_handler dsi_cfg_handlers[] = {
&sdm845_dsi_cfg, &msm_dsi_6g_v2_host_ops},
{MSM_DSI_VER_MAJOR_6G, MSM_DSI_6G_VER_MINOR_V2_5_0,
&sc7280_dsi_cfg, &msm_dsi_6g_v2_host_ops},
+ {MSM_DSI_VER_MAJOR_6G, MSM_DSI_6G_VER_MINOR_V2_5_1,
+ &sa8775p_dsi_cfg, &msm_dsi_6g_v2_host_ops},
{MSM_DSI_VER_MAJOR_6G, MSM_DSI_6G_VER_MINOR_V2_6_0,
&sdm845_dsi_cfg, &msm_dsi_6g_v2_host_ops},
{MSM_DSI_VER_MAJOR_6G, MSM_DSI_6G_VER_MINOR_V2_7_0,
diff --git a/drivers/gpu/drm/msm/dsi/dsi_cfg.h b/drivers/gpu/drm/msm/dsi/dsi_cfg.h
index 120cb65164c1..65b0705fac0e 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_cfg.h
+++ b/drivers/gpu/drm/msm/dsi/dsi_cfg.h
@@ -27,6 +27,7 @@
#define MSM_DSI_6G_VER_MINOR_V2_4_0 0x20040000
#define MSM_DSI_6G_VER_MINOR_V2_4_1 0x20040001
#define MSM_DSI_6G_VER_MINOR_V2_5_0 0x20050000
+#define MSM_DSI_6G_VER_MINOR_V2_5_1 0x20050001
#define MSM_DSI_6G_VER_MINOR_V2_6_0 0x20060000
#define MSM_DSI_6G_VER_MINOR_V2_7_0 0x20070000
#define MSM_DSI_6G_VER_MINOR_V2_8_0 0x20080000
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v3 06/10] arm64: dts: qcom: sa8775p: add Display Serial Interface device nodes
2025-04-04 11:55 [PATCH v3 00/10] Add DSI display support for SA8775P target Ayushi Makhija
` (4 preceding siblings ...)
2025-04-04 11:55 ` [PATCH v3 05/10] drm/msm/dsi: add DSI support for SA8775P Ayushi Makhija
@ 2025-04-04 11:55 ` Ayushi Makhija
2025-04-04 22:27 ` Konrad Dybcio
2025-04-04 11:55 ` [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes Ayushi Makhija
` (3 subsequent siblings)
9 siblings, 1 reply; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-04 11:55 UTC (permalink / raw)
To: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel
Cc: Ayushi Makhija, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, konradybcio, conor+dt,
andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, quic_abhinavk, quic_rajeevny, quic_vproddut,
quic_jesszhan, Dmitry Baryshkov
Add device tree nodes for the DSI0 and DSI1 controllers
with their corresponding PHYs found on Qualcomm SA8775P SoC.
Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
Reviewed-by: Dmitry Baryshkov <lumag@kernel.org>
---
arch/arm64/boot/dts/qcom/sa8775p.dtsi | 186 +++++++++++++++++++++++++-
1 file changed, 185 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sa8775p.dtsi b/arch/arm64/boot/dts/qcom/sa8775p.dtsi
index 3394ae2d1300..edc5130f4bae 100644
--- a/arch/arm64/boot/dts/qcom/sa8775p.dtsi
+++ b/arch/arm64/boot/dts/qcom/sa8775p.dtsi
@@ -6,6 +6,7 @@
#include <dt-bindings/interconnect/qcom,icc.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/qcom,dsi-phy-28nm.h>
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/clock/qcom,sa8775p-dispcc.h>
#include <dt-bindings/clock/qcom,sa8775p-gcc.h>
@@ -3890,6 +3891,22 @@ dpu_intf4_out: endpoint {
remote-endpoint = <&mdss0_dp1_in>;
};
};
+
+ port@2 {
+ reg = <2>;
+
+ dpu_intf1_out: endpoint {
+ remote-endpoint = <&mdss0_dsi0_in>;
+ };
+ };
+
+ port@3 {
+ reg = <3>;
+
+ dpu_intf2_out: endpoint {
+ remote-endpoint = <&mdss0_dsi1_in>;
+ };
+ };
};
mdss0_mdp_opp_table: opp-table {
@@ -3917,6 +3934,170 @@ opp-650000000 {
};
};
+ mdss0_dsi0: dsi@ae94000 {
+ compatible = "qcom,sa8775p-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+ reg = <0x0 0x0ae94000 0x0 0x400>;
+ reg-names = "dsi_ctrl";
+
+ interrupt-parent = <&mdss0>;
+ interrupts = <4>;
+
+ clocks = <&dispcc0 MDSS_DISP_CC_MDSS_BYTE0_CLK>,
+ <&dispcc0 MDSS_DISP_CC_MDSS_BYTE0_INTF_CLK>,
+ <&dispcc0 MDSS_DISP_CC_MDSS_PCLK0_CLK>,
+ <&dispcc0 MDSS_DISP_CC_MDSS_ESC0_CLK>,
+ <&dispcc0 MDSS_DISP_CC_MDSS_AHB_CLK>,
+ <&gcc GCC_DISP_HF_AXI_CLK>;
+ clock-names = "byte",
+ "byte_intf",
+ "pixel",
+ "core",
+ "iface",
+ "bus";
+ assigned-clocks = <&dispcc0 MDSS_DISP_CC_MDSS_BYTE0_CLK_SRC>,
+ <&dispcc0 MDSS_DISP_CC_MDSS_PCLK0_CLK_SRC>;
+ assigned-clock-parents = <&mdss0_dsi0_phy DSI_BYTE_PLL_CLK>,
+ <&mdss0_dsi0_phy DSI_PIXEL_PLL_CLK>;
+ phys = <&mdss0_dsi0_phy>;
+
+ operating-points-v2 = <&dsi0_opp_table>;
+ power-domains = <&rpmhpd SA8775P_MMCX>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ mdss0_dsi0_in: endpoint {
+ remote-endpoint = <&dpu_intf1_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ mdss0_dsi0_out: endpoint{ };
+ };
+ };
+
+ dsi0_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-358000000 {
+ opp-hz = /bits/ 64 <358000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ };
+ };
+ };
+
+ mdss0_dsi0_phy: phy@ae94400 {
+ compatible = "qcom,sa8775p-dsi-phy-5nm";
+ reg = <0x0 0x0ae94400 0x0 0x200>,
+ <0x0 0x0ae94600 0x0 0x280>,
+ <0x0 0x0ae94900 0x0 0x27c>;
+ reg-names = "dsi_phy",
+ "dsi_phy_lane",
+ "dsi_pll";
+
+ #clock-cells = <1>;
+ #phy-cells = <0>;
+
+ clocks = <&dispcc0 MDSS_DISP_CC_MDSS_AHB_CLK>,
+ <&rpmhcc RPMH_CXO_CLK>;
+ clock-names = "iface", "ref";
+
+ status = "disabled";
+ };
+
+ mdss0_dsi1: dsi@ae96000 {
+ compatible = "qcom,sa8775p-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+ reg = <0x0 0x0ae96000 0x0 0x400>;
+ reg-names = "dsi_ctrl";
+
+ interrupt-parent = <&mdss0>;
+ interrupts = <5>;
+
+ clocks = <&dispcc0 MDSS_DISP_CC_MDSS_BYTE1_CLK>,
+ <&dispcc0 MDSS_DISP_CC_MDSS_BYTE1_INTF_CLK>,
+ <&dispcc0 MDSS_DISP_CC_MDSS_PCLK1_CLK>,
+ <&dispcc0 MDSS_DISP_CC_MDSS_ESC1_CLK>,
+ <&dispcc0 MDSS_DISP_CC_MDSS_AHB_CLK>,
+ <&gcc GCC_DISP_HF_AXI_CLK>;
+ clock-names = "byte",
+ "byte_intf",
+ "pixel",
+ "core",
+ "iface",
+ "bus";
+ assigned-clocks = <&dispcc0 MDSS_DISP_CC_MDSS_BYTE1_CLK_SRC>,
+ <&dispcc0 MDSS_DISP_CC_MDSS_PCLK1_CLK_SRC>;
+ assigned-clock-parents = <&mdss0_dsi1_phy DSI_BYTE_PLL_CLK>,
+ <&mdss0_dsi1_phy DSI_PIXEL_PLL_CLK>;
+ phys = <&mdss0_dsi1_phy>;
+
+ operating-points-v2 = <&dsi1_opp_table>;
+ power-domains = <&rpmhpd SA8775P_MMCX>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ mdss0_dsi1_in: endpoint {
+ remote-endpoint = <&dpu_intf2_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ mdss0_dsi1_out: endpoint { };
+ };
+ };
+
+ dsi1_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-358000000 {
+ opp-hz = /bits/ 64 <358000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ };
+ };
+ };
+
+ mdss0_dsi1_phy: phy@ae96400 {
+ compatible = "qcom,sa8775p-dsi-phy-5nm";
+ reg = <0x0 0x0ae96400 0x0 0x200>,
+ <0x0 0x0ae96600 0x0 0x280>,
+ <0x0 0x0ae96900 0x0 0x27c>;
+ reg-names = "dsi_phy",
+ "dsi_phy_lane",
+ "dsi_pll";
+
+ #clock-cells = <1>;
+ #phy-cells = <0>;
+
+ clocks = <&dispcc0 MDSS_DISP_CC_MDSS_AHB_CLK>,
+ <&rpmhcc RPMH_CXO_CLK>;
+ clock-names = "iface", "ref";
+
+ status = "disabled";
+ };
+
mdss0_dp0_phy: phy@aec2a00 {
compatible = "qcom,sa8775p-edp-phy";
@@ -4123,7 +4304,10 @@ dispcc0: clock-controller@af00000 {
<&sleep_clk>,
<&mdss0_dp0_phy 0>, <&mdss0_dp0_phy 1>,
<&mdss0_dp1_phy 0>, <&mdss0_dp1_phy 1>,
- <0>, <0>, <0>, <0>;
+ <&mdss0_dsi0_phy DSI_BYTE_PLL_CLK>,
+ <&mdss0_dsi0_phy DSI_PIXEL_PLL_CLK>,
+ <&mdss0_dsi1_phy DSI_BYTE_PLL_CLK>,
+ <&mdss0_dsi1_phy DSI_PIXEL_PLL_CLK>;
power-domains = <&rpmhpd SA8775P_MMCX>;
#clock-cells = <1>;
#reset-cells = <1>;
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-04 11:55 [PATCH v3 00/10] Add DSI display support for SA8775P target Ayushi Makhija
` (5 preceding siblings ...)
2025-04-04 11:55 ` [PATCH v3 06/10] arm64: dts: qcom: sa8775p: add Display Serial Interface device nodes Ayushi Makhija
@ 2025-04-04 11:55 ` Ayushi Makhija
2025-04-04 22:39 ` Konrad Dybcio
2025-04-06 20:12 ` Dmitry Baryshkov
2025-04-04 11:55 ` [PATCH v3 08/10] drm/bridge: anx7625: enable HPD interrupts Ayushi Makhija
` (2 subsequent siblings)
9 siblings, 2 replies; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-04 11:55 UTC (permalink / raw)
To: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel
Cc: Ayushi Makhija, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, konradybcio, conor+dt,
andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, quic_abhinavk, quic_rajeevny, quic_vproddut,
quic_jesszhan
Add anx7625 DSI to DP bridge device nodes.
Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
---
arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 ++++++++++++++++++++-
1 file changed, 207 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
index 175f8b1e3b2d..8e784ccf4138 100644
--- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
+++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
@@ -28,6 +28,13 @@ chosen {
stdout-path = "serial0:115200n8";
};
+ vph_pwr: vph-pwr-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vph_pwr";
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
vreg_conn_1p8: vreg_conn_1p8 {
compatible = "regulator-fixed";
regulator-name = "vreg_conn_1p8";
@@ -128,6 +135,30 @@ dp1_connector_in: endpoint {
};
};
};
+
+ dp-dsi0-connector {
+ compatible = "dp-connector";
+ label = "DSI0";
+ type = "full-size";
+
+ port {
+ dp_dsi0_connector_in: endpoint {
+ remote-endpoint = <&dsi2dp_bridge0_out>;
+ };
+ };
+ };
+
+ dp-dsi1-connector {
+ compatible = "dp-connector";
+ label = "DSI1";
+ type = "full-size";
+
+ port {
+ dp_dsi1_connector_in: endpoint {
+ remote-endpoint = <&dsi2dp_bridge1_out>;
+ };
+ };
+ };
};
&apps_rsc {
@@ -517,9 +548,135 @@ &i2c11 {
&i2c18 {
clock-frequency = <400000>;
- pinctrl-0 = <&qup_i2c18_default>;
+ pinctrl-0 = <&qup_i2c18_default>,
+ <&io_expander_intr_active>,
+ <&io_expander_reset_active>;
pinctrl-names = "default";
+
status = "okay";
+
+ io_expander: gpio@74 {
+ compatible = "ti,tca9539";
+ reg = <0x74>;
+ interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ gpio2-hog {
+ gpio-hog;
+ gpios = <2 GPIO_ACTIVE_HIGH>;
+ input;
+ line-name = "dsi0_int_pin";
+ };
+
+ gpio3-hog {
+ gpio-hog;
+ gpios = <3 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "dsi0_cbl_det_pin";
+ };
+
+ gpio10-hog {
+ gpio-hog;
+ gpios = <10 GPIO_ACTIVE_HIGH>;
+ input;
+ line-name = "dsi1_int_pin";
+ };
+
+ gpio11-hog {
+ gpio-hog;
+ gpios = <11 GPIO_ACTIVE_LOW>;
+ output-high;
+ line-name = "dsi1_cbl_det_pin";
+ };
+ };
+
+ i2c-mux@70 {
+ compatible = "nxp,pca9543";
+ #address-cells = <1>;
+
+ #size-cells = <0>;
+ reg = <0x70>;
+
+ i2c@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ bridge@58 {
+ compatible = "analogix,anx7625";
+ reg = <0x58>;
+ interrupts-extended = <&io_expander 2 IRQ_TYPE_EDGE_FALLING>;
+ enable-gpios = <&io_expander 1 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&io_expander 0 GPIO_ACTIVE_HIGH>;
+ vdd10-supply = <&vph_pwr>;
+ vdd18-supply = <&vph_pwr>;
+ vdd33-supply = <&vph_pwr>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ dsi2dp_bridge0_in: endpoint {
+ remote-endpoint = <&mdss0_dsi0_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ dsi2dp_bridge0_out: endpoint {
+ remote-endpoint = <&dp_dsi0_connector_in>;
+ };
+ };
+ };
+ };
+ };
+
+ i2c@1 {
+ reg = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ bridge@58 {
+ compatible = "analogix,anx7625";
+ reg = <0x58>;
+ interrupts-extended = <&io_expander 10 IRQ_TYPE_EDGE_FALLING>;
+ enable-gpios = <&io_expander 9 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&io_expander 8 GPIO_ACTIVE_HIGH>;
+ vdd10-supply = <&vph_pwr>;
+ vdd18-supply = <&vph_pwr>;
+ vdd33-supply = <&vph_pwr>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ dsi2dp_bridge1_in: endpoint {
+ remote-endpoint = <&mdss0_dsi1_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ dsi2dp_bridge1_out: endpoint {
+ remote-endpoint = <&dp_dsi1_connector_in>;
+ };
+ };
+ };
+ };
+ };
+ };
+
};
&mdss0 {
@@ -566,6 +723,40 @@ &mdss0_dp1_phy {
status = "okay";
};
+&mdss0_dsi0 {
+ vdda-supply = <&vreg_l1c>;
+
+ status = "okay";
+};
+
+&mdss0_dsi0_out {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&dsi2dp_bridge0_in>;
+};
+
+&mdss0_dsi0_phy {
+ vdds-supply = <&vreg_l4a>;
+
+ status = "okay";
+};
+
+&mdss0_dsi1 {
+ vdda-supply = <&vreg_l1c>;
+
+ status = "okay";
+};
+
+&mdss0_dsi1_out {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&dsi2dp_bridge1_in>;
+};
+
+&mdss0_dsi1_phy {
+ vdds-supply = <&vreg_l4a>;
+
+ status = "okay";
+};
+
&pmm8654au_0_gpios {
gpio-line-names = "DS_EN",
"POFF_COMPLETE",
@@ -714,6 +905,21 @@ ethernet0_mdio: ethernet0-mdio-pins {
};
};
+ io_expander_intr_active: io-expander-intr-active-state {
+ pins = "gpio98";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ io_expander_reset_active: io-expander-reset-active-state {
+ pins = "gpio97";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ output-high;
+ };
+
qup_uart10_default: qup-uart10-state {
pins = "gpio46", "gpio47";
function = "qup1_se3";
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v3 08/10] drm/bridge: anx7625: enable HPD interrupts
2025-04-04 11:55 [PATCH v3 00/10] Add DSI display support for SA8775P target Ayushi Makhija
` (6 preceding siblings ...)
2025-04-04 11:55 ` [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes Ayushi Makhija
@ 2025-04-04 11:55 ` Ayushi Makhija
2025-04-06 20:26 ` Dmitry Baryshkov
2025-04-04 11:55 ` [PATCH v3 09/10] drm/bridge: anx7625: update bridge_ops and sink detect logic Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 10/10] drm/bridge: anx7625: change the gpiod_set_value API Ayushi Makhija
9 siblings, 1 reply; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-04 11:55 UTC (permalink / raw)
To: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel
Cc: Ayushi Makhija, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, konradybcio, conor+dt,
andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, quic_abhinavk, quic_rajeevny, quic_vproddut,
quic_jesszhan
When device enters the suspend state, it prevents
HPD interrupts from occurring. To address this,
add an additional PM runtime vote in hpd_enable().
This vote is removed in hpd_disable().
Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
---
drivers/gpu/drm/bridge/analogix/anx7625.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
index 0b97b66de577..99ef3f27ae42 100644
--- a/drivers/gpu/drm/bridge/analogix/anx7625.c
+++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
@@ -2474,6 +2474,22 @@ static const struct drm_edid *anx7625_bridge_edid_read(struct drm_bridge *bridge
return anx7625_edid_read(ctx);
}
+static void anx7625_bridge_hpd_enable(struct drm_bridge *bridge)
+{
+ struct anx7625_data *ctx = bridge_to_anx7625(bridge);
+ struct device *dev = ctx->dev;
+
+ pm_runtime_get_sync(dev);
+}
+
+static void anx7625_bridge_hpd_disable(struct drm_bridge *bridge)
+{
+ struct anx7625_data *ctx = bridge_to_anx7625(bridge);
+ struct device *dev = ctx->dev;
+
+ pm_runtime_put_sync(dev);
+}
+
static const struct drm_bridge_funcs anx7625_bridge_funcs = {
.attach = anx7625_bridge_attach,
.detach = anx7625_bridge_detach,
@@ -2487,6 +2503,8 @@ static const struct drm_bridge_funcs anx7625_bridge_funcs = {
.atomic_reset = drm_atomic_helper_bridge_reset,
.detect = anx7625_bridge_detect,
.edid_read = anx7625_bridge_edid_read,
+ .hpd_enable = anx7625_bridge_hpd_enable,
+ .hpd_disable = anx7625_bridge_hpd_disable,
};
static int anx7625_register_i2c_dummy_clients(struct anx7625_data *ctx,
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v3 09/10] drm/bridge: anx7625: update bridge_ops and sink detect logic
2025-04-04 11:55 [PATCH v3 00/10] Add DSI display support for SA8775P target Ayushi Makhija
` (7 preceding siblings ...)
2025-04-04 11:55 ` [PATCH v3 08/10] drm/bridge: anx7625: enable HPD interrupts Ayushi Makhija
@ 2025-04-04 11:55 ` Ayushi Makhija
2025-04-06 20:14 ` Dmitry Baryshkov
2025-04-04 11:55 ` [PATCH v3 10/10] drm/bridge: anx7625: change the gpiod_set_value API Ayushi Makhija
9 siblings, 1 reply; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-04 11:55 UTC (permalink / raw)
To: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel
Cc: Ayushi Makhija, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, konradybcio, conor+dt,
andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, quic_abhinavk, quic_rajeevny, quic_vproddut,
quic_jesszhan, Dmitry Baryshkov
The anx7625_link_bridge() checks if a device is not a panel
bridge and add DRM_BRIDGE_OP_HPD and DRM_BRIDGE_OP_DETECT to
the bridge operations. However, on port 1 of the anx7625
bridge, any device added is always treated as a panel
bridge, preventing connector_detect function from being
called. To resolve this, instead of just checking if it is a
panel bridge, verify the type of panel bridge
whether it is a DisplayPort or eDP panel. If the panel
bridge is not of the eDP type, add DRM_BRIDGE_OP_HPD and
DRM_BRIDGE_OP_DETECT to the bridge operations.
In the anx7625_sink_detect(), the device is checked to see
if it is a panel bridge, and it always sends a "connected"
status to the connector. When adding the DP port on port 1 of the
anx7625, it incorrectly treats it as a panel bridge and sends an
always "connected" status. Instead of checking the status on the
panel bridge, it's better to check the hpd_status for connectors
like DisplayPort. This way, it verifies the hpd_status variable
before sending the status to the connector.
Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
drivers/gpu/drm/bridge/analogix/anx7625.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
index 99ef3f27ae42..365d1c871028 100644
--- a/drivers/gpu/drm/bridge/analogix/anx7625.c
+++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
@@ -1814,9 +1814,6 @@ static enum drm_connector_status anx7625_sink_detect(struct anx7625_data *ctx)
DRM_DEV_DEBUG_DRIVER(dev, "sink detect\n");
- if (ctx->pdata.panel_bridge)
- return connector_status_connected;
-
return ctx->hpd_status ? connector_status_connected :
connector_status_disconnected;
}
@@ -2608,9 +2605,8 @@ static int anx7625_link_bridge(struct drm_dp_aux *aux)
platform->bridge.of_node = dev->of_node;
if (!anx7625_of_panel_on_aux_bus(dev))
platform->bridge.ops |= DRM_BRIDGE_OP_EDID;
- if (!platform->pdata.panel_bridge)
- platform->bridge.ops |= DRM_BRIDGE_OP_HPD |
- DRM_BRIDGE_OP_DETECT;
+ if (!platform->pdata.panel_bridge || !anx7625_of_panel_on_aux_bus(dev))
+ platform->bridge.ops |= DRM_BRIDGE_OP_HPD | DRM_BRIDGE_OP_DETECT;
platform->bridge.type = platform->pdata.panel_bridge ?
DRM_MODE_CONNECTOR_eDP :
DRM_MODE_CONNECTOR_DisplayPort;
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v3 10/10] drm/bridge: anx7625: change the gpiod_set_value API
2025-04-04 11:55 [PATCH v3 00/10] Add DSI display support for SA8775P target Ayushi Makhija
` (8 preceding siblings ...)
2025-04-04 11:55 ` [PATCH v3 09/10] drm/bridge: anx7625: update bridge_ops and sink detect logic Ayushi Makhija
@ 2025-04-04 11:55 ` Ayushi Makhija
9 siblings, 0 replies; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-04 11:55 UTC (permalink / raw)
To: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel
Cc: Ayushi Makhija, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, konradybcio, conor+dt,
andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, quic_abhinavk, quic_rajeevny, quic_vproddut,
quic_jesszhan
Use gpiod_set_value_cansleep() instead of gpiod_set_value()
to fix the below call trace in the boot log:
[ 5.690534] Call trace:
[ 5.690536] gpiod_set_value+0x40/0xa4
[ 5.690540] anx7625_runtime_pm_resume+0xa0/0x324 [anx7625]
[ 5.690545] __rpm_callback+0x48/0x1d8
[ 5.690549] rpm_callback+0x6c/0x78
Certain GPIO controllers require access via message-based buses
such as I2C or SPI, which may cause the GPIOs to enter a sleep
state. Therefore, use the gpiod_set_value_cansleep().
Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/bridge/analogix/anx7625.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
index 365d1c871028..f6f730262511 100644
--- a/drivers/gpu/drm/bridge/analogix/anx7625.c
+++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
@@ -1257,10 +1257,10 @@ static void anx7625_power_on(struct anx7625_data *ctx)
usleep_range(11000, 12000);
/* Power on pin enable */
- gpiod_set_value(ctx->pdata.gpio_p_on, 1);
+ gpiod_set_value_cansleep(ctx->pdata.gpio_p_on, 1);
usleep_range(10000, 11000);
/* Power reset pin enable */
- gpiod_set_value(ctx->pdata.gpio_reset, 1);
+ gpiod_set_value_cansleep(ctx->pdata.gpio_reset, 1);
usleep_range(10000, 11000);
DRM_DEV_DEBUG_DRIVER(dev, "power on !\n");
@@ -1280,9 +1280,9 @@ static void anx7625_power_standby(struct anx7625_data *ctx)
return;
}
- gpiod_set_value(ctx->pdata.gpio_reset, 0);
+ gpiod_set_value_cansleep(ctx->pdata.gpio_reset, 0);
usleep_range(1000, 1100);
- gpiod_set_value(ctx->pdata.gpio_p_on, 0);
+ gpiod_set_value_cansleep(ctx->pdata.gpio_p_on, 0);
usleep_range(1000, 1100);
ret = regulator_bulk_disable(ARRAY_SIZE(ctx->pdata.supplies),
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [PATCH v3 06/10] arm64: dts: qcom: sa8775p: add Display Serial Interface device nodes
2025-04-04 11:55 ` [PATCH v3 06/10] arm64: dts: qcom: sa8775p: add Display Serial Interface device nodes Ayushi Makhija
@ 2025-04-04 22:27 ` Konrad Dybcio
0 siblings, 0 replies; 27+ messages in thread
From: Konrad Dybcio @ 2025-04-04 22:27 UTC (permalink / raw)
To: Ayushi Makhija, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel
Cc: robdclark, dmitry.baryshkov, sean, marijn.suijten, andersson,
robh, robh+dt, krzk+dt, konradybcio, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan,
Dmitry Baryshkov
On 4/4/25 1:55 PM, Ayushi Makhija wrote:
> Add device tree nodes for the DSI0 and DSI1 controllers
> with their corresponding PHYs found on Qualcomm SA8775P SoC.
>
> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
> Reviewed-by: Dmitry Baryshkov <lumag@kernel.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-04 11:55 ` [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes Ayushi Makhija
@ 2025-04-04 22:39 ` Konrad Dybcio
2025-04-06 20:12 ` Dmitry Baryshkov
1 sibling, 0 replies; 27+ messages in thread
From: Konrad Dybcio @ 2025-04-04 22:39 UTC (permalink / raw)
To: Ayushi Makhija, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel
Cc: robdclark, dmitry.baryshkov, sean, marijn.suijten, andersson,
robh, robh+dt, krzk+dt, konradybcio, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On 4/4/25 1:55 PM, Ayushi Makhija wrote:
> Add anx7625 DSI to DP bridge device nodes.
>
> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
> ---
[...]
> +
> + io_expander: gpio@74 {
> + compatible = "ti,tca9539";
> + reg = <0x74>;
> + interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> +
> + gpio2-hog {
> + gpio-hog;
> + gpios = <2 GPIO_ACTIVE_HIGH>;
> + input;
> + line-name = "dsi0_int_pin";
Are you sure hogging is what you need here? Aren't those GPIOs only
required to be in a certain state when the connected devices are active?
Konrad
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 03/10] dt-bindings: display: msm: document DSI controller and phy on SA8775P
2025-04-04 11:55 ` [PATCH v3 03/10] dt-bindings: display: msm: document DSI controller and phy on SA8775P Ayushi Makhija
@ 2025-04-05 7:48 ` Krzysztof Kozlowski
0 siblings, 0 replies; 27+ messages in thread
From: Krzysztof Kozlowski @ 2025-04-05 7:48 UTC (permalink / raw)
To: Ayushi Makhija, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel
Cc: robdclark, dmitry.baryshkov, sean, marijn.suijten, andersson,
robh, robh+dt, krzk+dt, konradybcio, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On 04/04/2025 13:55, Ayushi Makhija wrote:
> Document DSI controller and phy on SA8775P platform.
>
> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
> ---
> .../display/msm/qcom,sa8775p-mdss.yaml | 183 +++++++++++++++++-
> 1 file changed, 182 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml
> index 5fac3e266703..1be26137b7b6 100644
> --- a/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml
> +++ b/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml
> @@ -52,12 +52,25 @@ patternProperties:
> items:
> - const: qcom,sa8775p-dp
>
> + "^dsi@[0-9a-f]+$":
> + type: object
> + additionalProperties: true
> + properties:
> + compatible:
> + contains:
> + enum:
huh?
> + - qcom,sa8775p-dsi-ctrl
> + - qcom,mdss-dsi-ctrl
This makes no sense and I am pretty sure it breaks everything and was
not tested.
All previous comments apply.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 02/10] dt-bindings: msm: dsi-controller-main: document the SA8775P DSI CTRL
2025-04-04 11:55 ` [PATCH v3 02/10] dt-bindings: msm: dsi-controller-main: document the SA8775P DSI CTRL Ayushi Makhija
@ 2025-04-06 12:36 ` Krzysztof Kozlowski
0 siblings, 0 replies; 27+ messages in thread
From: Krzysztof Kozlowski @ 2025-04-06 12:36 UTC (permalink / raw)
To: Ayushi Makhija
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
robdclark, dmitry.baryshkov, sean, marijn.suijten, andersson,
robh, robh+dt, krzk+dt, konradybcio, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On Fri, Apr 04, 2025 at 05:25:31PM GMT, Ayushi Makhija wrote:
> Document the DSI CTRL on the SA8775P Platform.
>
> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
> ---
> .../devicetree/bindings/display/msm/dsi-controller-main.yaml | 2 ++
> 1 file changed, 2 insertions(+)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-04 11:55 ` [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes Ayushi Makhija
2025-04-04 22:39 ` Konrad Dybcio
@ 2025-04-06 20:12 ` Dmitry Baryshkov
2025-04-10 5:04 ` Ayushi Makhija
2025-04-10 13:07 ` Ayushi Makhija
1 sibling, 2 replies; 27+ messages in thread
From: Dmitry Baryshkov @ 2025-04-06 20:12 UTC (permalink / raw)
To: Ayushi Makhija
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
robdclark, dmitry.baryshkov, sean, marijn.suijten, andersson,
robh, robh+dt, krzk+dt, konradybcio, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On Fri, Apr 04, 2025 at 05:25:36PM +0530, Ayushi Makhija wrote:
> Add anx7625 DSI to DP bridge device nodes.
>
> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
> ---
> arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 ++++++++++++++++++++-
> 1 file changed, 207 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
> index 175f8b1e3b2d..8e784ccf4138 100644
> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
> @@ -28,6 +28,13 @@ chosen {
> stdout-path = "serial0:115200n8";
> };
>
> + vph_pwr: vph-pwr-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vph_pwr";
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> vreg_conn_1p8: vreg_conn_1p8 {
> compatible = "regulator-fixed";
> regulator-name = "vreg_conn_1p8";
> @@ -128,6 +135,30 @@ dp1_connector_in: endpoint {
> };
> };
> };
> +
> + dp-dsi0-connector {
> + compatible = "dp-connector";
> + label = "DSI0";
> + type = "full-size";
> +
> + port {
> + dp_dsi0_connector_in: endpoint {
> + remote-endpoint = <&dsi2dp_bridge0_out>;
> + };
> + };
> + };
> +
> + dp-dsi1-connector {
> + compatible = "dp-connector";
> + label = "DSI1";
> + type = "full-size";
> +
> + port {
> + dp_dsi1_connector_in: endpoint {
> + remote-endpoint = <&dsi2dp_bridge1_out>;
> + };
> + };
> + };
> };
>
> &apps_rsc {
> @@ -517,9 +548,135 @@ &i2c11 {
>
> &i2c18 {
> clock-frequency = <400000>;
> - pinctrl-0 = <&qup_i2c18_default>;
> + pinctrl-0 = <&qup_i2c18_default>,
> + <&io_expander_intr_active>,
> + <&io_expander_reset_active>;
These pinctrl entries should go to the IO expander itself.
> pinctrl-names = "default";
> +
> status = "okay";
> +
> + io_expander: gpio@74 {
> + compatible = "ti,tca9539";
> + reg = <0x74>;
> + interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> +
> + gpio2-hog {
This needs a huuge explanation in the commit message. Otherwise I'd say
these pins should likely be used by the corresponding anx bridges.
> + gpio-hog;
> + gpios = <2 GPIO_ACTIVE_HIGH>;
> + input;
> + line-name = "dsi0_int_pin";
> + };
> +
> + gpio3-hog {
> + gpio-hog;
> + gpios = <3 GPIO_ACTIVE_LOW>;
> + output-high;
> + line-name = "dsi0_cbl_det_pin";
> + };
> +
> + gpio10-hog {
> + gpio-hog;
> + gpios = <10 GPIO_ACTIVE_HIGH>;
> + input;
> + line-name = "dsi1_int_pin";
> + };
> +
> + gpio11-hog {
> + gpio-hog;
> + gpios = <11 GPIO_ACTIVE_LOW>;
> + output-high;
> + line-name = "dsi1_cbl_det_pin";
> + };
> + };
> +
> + i2c-mux@70 {
> + compatible = "nxp,pca9543";
> + #address-cells = <1>;
> +
> + #size-cells = <0>;
> + reg = <0x70>;
> +
> + i2c@0 {
> + reg = <0>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + bridge@58 {
> + compatible = "analogix,anx7625";
> + reg = <0x58>;
> + interrupts-extended = <&io_expander 2 IRQ_TYPE_EDGE_FALLING>;
> + enable-gpios = <&io_expander 1 GPIO_ACTIVE_HIGH>;
> + reset-gpios = <&io_expander 0 GPIO_ACTIVE_HIGH>;
> + vdd10-supply = <&vph_pwr>;
> + vdd18-supply = <&vph_pwr>;
> + vdd33-supply = <&vph_pwr>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + dsi2dp_bridge0_in: endpoint {
> + remote-endpoint = <&mdss0_dsi0_out>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + dsi2dp_bridge0_out: endpoint {
> + remote-endpoint = <&dp_dsi0_connector_in>;
> + };
> + };
> + };
> + };
> + };
> +
> + i2c@1 {
> + reg = <1>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + bridge@58 {
> + compatible = "analogix,anx7625";
> + reg = <0x58>;
> + interrupts-extended = <&io_expander 10 IRQ_TYPE_EDGE_FALLING>;
> + enable-gpios = <&io_expander 9 GPIO_ACTIVE_HIGH>;
> + reset-gpios = <&io_expander 8 GPIO_ACTIVE_HIGH>;
> + vdd10-supply = <&vph_pwr>;
> + vdd18-supply = <&vph_pwr>;
> + vdd33-supply = <&vph_pwr>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + dsi2dp_bridge1_in: endpoint {
> + remote-endpoint = <&mdss0_dsi1_out>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + dsi2dp_bridge1_out: endpoint {
> + remote-endpoint = <&dp_dsi1_connector_in>;
> + };
> + };
> + };
> + };
> + };
> + };
> +
> };
>
> &mdss0 {
> @@ -566,6 +723,40 @@ &mdss0_dp1_phy {
> status = "okay";
> };
>
> +&mdss0_dsi0 {
> + vdda-supply = <&vreg_l1c>;
> +
> + status = "okay";
> +};
> +
> +&mdss0_dsi0_out {
> + data-lanes = <0 1 2 3>;
> + remote-endpoint = <&dsi2dp_bridge0_in>;
> +};
> +
> +&mdss0_dsi0_phy {
> + vdds-supply = <&vreg_l4a>;
> +
> + status = "okay";
> +};
> +
> +&mdss0_dsi1 {
> + vdda-supply = <&vreg_l1c>;
> +
> + status = "okay";
> +};
> +
> +&mdss0_dsi1_out {
> + data-lanes = <0 1 2 3>;
> + remote-endpoint = <&dsi2dp_bridge1_in>;
> +};
> +
> +&mdss0_dsi1_phy {
> + vdds-supply = <&vreg_l4a>;
> +
> + status = "okay";
> +};
> +
> &pmm8654au_0_gpios {
> gpio-line-names = "DS_EN",
> "POFF_COMPLETE",
> @@ -714,6 +905,21 @@ ethernet0_mdio: ethernet0-mdio-pins {
> };
> };
>
> + io_expander_intr_active: io-expander-intr-active-state {
> + pins = "gpio98";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + io_expander_reset_active: io-expander-reset-active-state {
> + pins = "gpio97";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + output-high;
> + };
> +
> qup_uart10_default: qup-uart10-state {
> pins = "gpio46", "gpio47";
> function = "qup1_se3";
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 09/10] drm/bridge: anx7625: update bridge_ops and sink detect logic
2025-04-04 11:55 ` [PATCH v3 09/10] drm/bridge: anx7625: update bridge_ops and sink detect logic Ayushi Makhija
@ 2025-04-06 20:14 ` Dmitry Baryshkov
0 siblings, 0 replies; 27+ messages in thread
From: Dmitry Baryshkov @ 2025-04-06 20:14 UTC (permalink / raw)
To: Ayushi Makhija
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
robdclark, dmitry.baryshkov, sean, marijn.suijten, andersson,
robh, robh+dt, krzk+dt, konradybcio, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On Fri, Apr 04, 2025 at 05:25:38PM +0530, Ayushi Makhija wrote:
> The anx7625_link_bridge() checks if a device is not a panel
> bridge and add DRM_BRIDGE_OP_HPD and DRM_BRIDGE_OP_DETECT to
> the bridge operations. However, on port 1 of the anx7625
> bridge, any device added is always treated as a panel
> bridge, preventing connector_detect function from being
> called. To resolve this, instead of just checking if it is a
> panel bridge, verify the type of panel bridge
> whether it is a DisplayPort or eDP panel. If the panel
> bridge is not of the eDP type, add DRM_BRIDGE_OP_HPD and
> DRM_BRIDGE_OP_DETECT to the bridge operations.
>
> In the anx7625_sink_detect(), the device is checked to see
> if it is a panel bridge, and it always sends a "connected"
> status to the connector. When adding the DP port on port 1 of the
> anx7625, it incorrectly treats it as a panel bridge and sends an
> always "connected" status. Instead of checking the status on the
> panel bridge, it's better to check the hpd_status for connectors
> like DisplayPort. This way, it verifies the hpd_status variable
> before sending the status to the connector.
This commit message describes two separte changes. Please split it
accordingly.
>
> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> drivers/gpu/drm/bridge/analogix/anx7625.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
> index 99ef3f27ae42..365d1c871028 100644
> --- a/drivers/gpu/drm/bridge/analogix/anx7625.c
> +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
> @@ -1814,9 +1814,6 @@ static enum drm_connector_status anx7625_sink_detect(struct anx7625_data *ctx)
>
> DRM_DEV_DEBUG_DRIVER(dev, "sink detect\n");
>
> - if (ctx->pdata.panel_bridge)
> - return connector_status_connected;
> -
> return ctx->hpd_status ? connector_status_connected :
> connector_status_disconnected;
> }
> @@ -2608,9 +2605,8 @@ static int anx7625_link_bridge(struct drm_dp_aux *aux)
> platform->bridge.of_node = dev->of_node;
> if (!anx7625_of_panel_on_aux_bus(dev))
> platform->bridge.ops |= DRM_BRIDGE_OP_EDID;
> - if (!platform->pdata.panel_bridge)
> - platform->bridge.ops |= DRM_BRIDGE_OP_HPD |
> - DRM_BRIDGE_OP_DETECT;
> + if (!platform->pdata.panel_bridge || !anx7625_of_panel_on_aux_bus(dev))
> + platform->bridge.ops |= DRM_BRIDGE_OP_HPD | DRM_BRIDGE_OP_DETECT;
> platform->bridge.type = platform->pdata.panel_bridge ?
> DRM_MODE_CONNECTOR_eDP :
> DRM_MODE_CONNECTOR_DisplayPort;
> --
> 2.34.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 08/10] drm/bridge: anx7625: enable HPD interrupts
2025-04-04 11:55 ` [PATCH v3 08/10] drm/bridge: anx7625: enable HPD interrupts Ayushi Makhija
@ 2025-04-06 20:26 ` Dmitry Baryshkov
0 siblings, 0 replies; 27+ messages in thread
From: Dmitry Baryshkov @ 2025-04-06 20:26 UTC (permalink / raw)
To: Ayushi Makhija
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
robdclark, dmitry.baryshkov, sean, marijn.suijten, andersson,
robh, robh+dt, krzk+dt, konradybcio, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On Fri, Apr 04, 2025 at 05:25:37PM +0530, Ayushi Makhija wrote:
> When device enters the suspend state, it prevents
> HPD interrupts from occurring. To address this,
> add an additional PM runtime vote in hpd_enable().
> This vote is removed in hpd_disable().
Please re-wrap the commit message according to the recommendations. With
that fixed:
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>
> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
> ---
> drivers/gpu/drm/bridge/analogix/anx7625.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-06 20:12 ` Dmitry Baryshkov
@ 2025-04-10 5:04 ` Ayushi Makhija
2025-04-10 13:07 ` Ayushi Makhija
1 sibling, 0 replies; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-10 5:04 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
robdclark, dmitry.baryshkov, sean, marijn.suijten, andersson,
robh, robh+dt, krzk+dt, konradybcio, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On 4/7/2025 1:42 AM, Dmitry Baryshkov wrote:
> On Fri, Apr 04, 2025 at 05:25:36PM +0530, Ayushi Makhija wrote:
>> Add anx7625 DSI to DP bridge device nodes.
>>
>> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
>> ---
>> arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 ++++++++++++++++++++-
>> 1 file changed, 207 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>> index 175f8b1e3b2d..8e784ccf4138 100644
>> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>> @@ -28,6 +28,13 @@ chosen {
>> stdout-path = "serial0:115200n8";
>> };
>>
>> + vph_pwr: vph-pwr-regulator {
>> + compatible = "regulator-fixed";
>> + regulator-name = "vph_pwr";
>> + regulator-always-on;
>> + regulator-boot-on;
>> + };
>> +
>> vreg_conn_1p8: vreg_conn_1p8 {
>> compatible = "regulator-fixed";
>> regulator-name = "vreg_conn_1p8";
>> @@ -128,6 +135,30 @@ dp1_connector_in: endpoint {
>> };
>> };
>> };
>> +
>> + dp-dsi0-connector {
>> + compatible = "dp-connector";
>> + label = "DSI0";
>> + type = "full-size";
>> +
>> + port {
>> + dp_dsi0_connector_in: endpoint {
>> + remote-endpoint = <&dsi2dp_bridge0_out>;
>> + };
>> + };
>> + };
>> +
>> + dp-dsi1-connector {
>> + compatible = "dp-connector";
>> + label = "DSI1";
>> + type = "full-size";
>> +
>> + port {
>> + dp_dsi1_connector_in: endpoint {
>> + remote-endpoint = <&dsi2dp_bridge1_out>;
>> + };
>> + };
>> + };
>> };
>>
>> &apps_rsc {
>> @@ -517,9 +548,135 @@ &i2c11 {
>>
>> &i2c18 {
>> clock-frequency = <400000>;
>> - pinctrl-0 = <&qup_i2c18_default>;
>> + pinctrl-0 = <&qup_i2c18_default>,
>> + <&io_expander_intr_active>,
>> + <&io_expander_reset_active>;
>
> These pinctrl entries should go to the IO expander itself.
Will move these pinctrl entries in IO expander in next patchset.
Thanks,
Ayushi
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-06 20:12 ` Dmitry Baryshkov
2025-04-10 5:04 ` Ayushi Makhija
@ 2025-04-10 13:07 ` Ayushi Makhija
2025-04-10 20:01 ` Dmitry Baryshkov
1 sibling, 1 reply; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-10 13:07 UTC (permalink / raw)
To: Dmitry Baryshkov, konradybcio
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
robdclark, dmitry.baryshkov, sean, marijn.suijten, andersson,
robh, robh+dt, krzk+dt, konradybcio, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
Hi Dmirity/Konard
On 4/7/2025 1:42 AM, Dmitry Baryshkov wrote:
> On Fri, Apr 04, 2025 at 05:25:36PM +0530, Ayushi Makhija wrote:
>> Add anx7625 DSI to DP bridge device nodes.
>>
>> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
>> ---
>> arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 ++++++++++++++++++++-
>> 1 file changed, 207 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>> index 175f8b1e3b2d..8e784ccf4138 100644
>> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>> @@ -28,6 +28,13 @@ chosen {
>> stdout-path = "serial0:115200n8";
>> };
>>
>> + vph_pwr: vph-pwr-regulator {
>> + compatible = "regulator-fixed";
>> + regulator-name = "vph_pwr";
>> + regulator-always-on;
>> + regulator-boot-on;
>> + };
>> +
>> vreg_conn_1p8: vreg_conn_1p8 {
>> compatible = "regulator-fixed";
>> regulator-name = "vreg_conn_1p8";
>> @@ -128,6 +135,30 @@ dp1_connector_in: endpoint {
>> };
>> };
>> };
>> +
>> + dp-dsi0-connector {
>> + compatible = "dp-connector";
>> + label = "DSI0";
>> + type = "full-size";
>> +
>> + port {
>> + dp_dsi0_connector_in: endpoint {
>> + remote-endpoint = <&dsi2dp_bridge0_out>;
>> + };
>> + };
>> + };
>> +
>> + dp-dsi1-connector {
>> + compatible = "dp-connector";
>> + label = "DSI1";
>> + type = "full-size";
>> +
>> + port {
>> + dp_dsi1_connector_in: endpoint {
>> + remote-endpoint = <&dsi2dp_bridge1_out>;
>> + };
>> + };
>> + };
>> };
>>
>> &apps_rsc {
>> @@ -517,9 +548,135 @@ &i2c11 {
>>
>> &i2c18 {
>> clock-frequency = <400000>;
>> - pinctrl-0 = <&qup_i2c18_default>;
>> + pinctrl-0 = <&qup_i2c18_default>,
>> + <&io_expander_intr_active>,
>> + <&io_expander_reset_active>;
>
> These pinctrl entries should go to the IO expander itself.
>
>> pinctrl-names = "default";
>> +
>> status = "okay";
>> +
>> + io_expander: gpio@74 {
>> + compatible = "ti,tca9539";
>> + reg = <0x74>;
>> + interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
>> + gpio-controller;
>> + #gpio-cells = <2>;
>> + interrupt-controller;
>> + #interrupt-cells = <2>;
>> +
>> + gpio2-hog {
>
> This needs a huuge explanation in the commit message. Otherwise I'd say
> these pins should likely be used by the corresponding anx bridges.
Thanks, for the review.
Previously, I was referring to the downstream DT and misunderstood the use of gpio-hog.
After reading the schematic, I realized that gpio2, gpio3, gpio10, and gpio11 are all input pins
to the IO expander TC9539. We have already configured gpio2 and gpio10 as interrupts in the
ANX7625 bridges, so the gpio-hog is not required. It is working without the gpio-hog configuration.
Thanks,
Ayushi
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-10 13:07 ` Ayushi Makhija
@ 2025-04-10 20:01 ` Dmitry Baryshkov
2025-04-14 9:56 ` Ayushi Makhija
0 siblings, 1 reply; 27+ messages in thread
From: Dmitry Baryshkov @ 2025-04-10 20:01 UTC (permalink / raw)
To: Ayushi Makhija
Cc: konradybcio, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On Thu, Apr 10, 2025 at 06:37:54PM +0530, Ayushi Makhija wrote:
> Hi Dmirity/Konard
>
> On 4/7/2025 1:42 AM, Dmitry Baryshkov wrote:
> > On Fri, Apr 04, 2025 at 05:25:36PM +0530, Ayushi Makhija wrote:
> >> Add anx7625 DSI to DP bridge device nodes.
> >>
> >> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
> >> ---
> >> arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 ++++++++++++++++++++-
> >> 1 file changed, 207 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
> >> index 175f8b1e3b2d..8e784ccf4138 100644
> >> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
> >> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
> >> @@ -28,6 +28,13 @@ chosen {
> >> stdout-path = "serial0:115200n8";
> >> };
> >>
> >> + vph_pwr: vph-pwr-regulator {
> >> + compatible = "regulator-fixed";
> >> + regulator-name = "vph_pwr";
> >> + regulator-always-on;
> >> + regulator-boot-on;
> >> + };
> >> +
> >> vreg_conn_1p8: vreg_conn_1p8 {
> >> compatible = "regulator-fixed";
> >> regulator-name = "vreg_conn_1p8";
> >> @@ -128,6 +135,30 @@ dp1_connector_in: endpoint {
> >> };
> >> };
> >> };
> >> +
> >> + dp-dsi0-connector {
> >> + compatible = "dp-connector";
> >> + label = "DSI0";
> >> + type = "full-size";
> >> +
> >> + port {
> >> + dp_dsi0_connector_in: endpoint {
> >> + remote-endpoint = <&dsi2dp_bridge0_out>;
> >> + };
> >> + };
> >> + };
> >> +
> >> + dp-dsi1-connector {
> >> + compatible = "dp-connector";
> >> + label = "DSI1";
> >> + type = "full-size";
> >> +
> >> + port {
> >> + dp_dsi1_connector_in: endpoint {
> >> + remote-endpoint = <&dsi2dp_bridge1_out>;
> >> + };
> >> + };
> >> + };
> >> };
> >>
> >> &apps_rsc {
> >> @@ -517,9 +548,135 @@ &i2c11 {
> >>
> >> &i2c18 {
> >> clock-frequency = <400000>;
> >> - pinctrl-0 = <&qup_i2c18_default>;
> >> + pinctrl-0 = <&qup_i2c18_default>,
> >> + <&io_expander_intr_active>,
> >> + <&io_expander_reset_active>;
> >
> > These pinctrl entries should go to the IO expander itself.
> >
> >> pinctrl-names = "default";
> >> +
> >> status = "okay";
> >> +
> >> + io_expander: gpio@74 {
> >> + compatible = "ti,tca9539";
> >> + reg = <0x74>;
> >> + interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
> >> + gpio-controller;
> >> + #gpio-cells = <2>;
> >> + interrupt-controller;
> >> + #interrupt-cells = <2>;
> >> +
> >> + gpio2-hog {
> >
> > This needs a huuge explanation in the commit message. Otherwise I'd say
> > these pins should likely be used by the corresponding anx bridges.
>
> Thanks, for the review.
>
> Previously, I was referring to the downstream DT and misunderstood the use of gpio-hog.
> After reading the schematic, I realized that gpio2, gpio3, gpio10, and gpio11 are all input pins
> to the IO expander TC9539. We have already configured gpio2 and gpio10 as interrupts in the
> ANX7625 bridges, so the gpio-hog is not required. It is working without the gpio-hog configuration.
Please make sure that there are pinctrl entries for all pins.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-10 20:01 ` Dmitry Baryshkov
@ 2025-04-14 9:56 ` Ayushi Makhija
2025-04-14 10:05 ` Konrad Dybcio
2025-04-14 10:07 ` Dmitry Baryshkov
0 siblings, 2 replies; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-14 9:56 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: konradybcio, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
Hi Dmitry,
On 4/11/2025 1:31 AM, Dmitry Baryshkov wrote:
> On Thu, Apr 10, 2025 at 06:37:54PM +0530, Ayushi Makhija wrote:
>> Hi Dmirity/Konard
>>
>> On 4/7/2025 1:42 AM, Dmitry Baryshkov wrote:
>>> On Fri, Apr 04, 2025 at 05:25:36PM +0530, Ayushi Makhija wrote:
>>>> Add anx7625 DSI to DP bridge device nodes.
>>>>
>>>> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
>>>> ---
>>>> arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 ++++++++++++++++++++-
>>>> 1 file changed, 207 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>> index 175f8b1e3b2d..8e784ccf4138 100644
>>>> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>> @@ -28,6 +28,13 @@ chosen {
>>>> stdout-path = "serial0:115200n8";
>>>> };
>>>>
>>>> + vph_pwr: vph-pwr-regulator {
>>>> + compatible = "regulator-fixed";
>>>> + regulator-name = "vph_pwr";
>>>> + regulator-always-on;
>>>> + regulator-boot-on;
>>>> + };
>>>> +
>>>> vreg_conn_1p8: vreg_conn_1p8 {
>>>> compatible = "regulator-fixed";
>>>> regulator-name = "vreg_conn_1p8";
>>>> @@ -128,6 +135,30 @@ dp1_connector_in: endpoint {
>>>> };
>>>> };
>>>> };
>>>> +
>>>> + dp-dsi0-connector {
>>>> + compatible = "dp-connector";
>>>> + label = "DSI0";
>>>> + type = "full-size";
>>>> +
>>>> + port {
>>>> + dp_dsi0_connector_in: endpoint {
>>>> + remote-endpoint = <&dsi2dp_bridge0_out>;
>>>> + };
>>>> + };
>>>> + };
>>>> +
>>>> + dp-dsi1-connector {
>>>> + compatible = "dp-connector";
>>>> + label = "DSI1";
>>>> + type = "full-size";
>>>> +
>>>> + port {
>>>> + dp_dsi1_connector_in: endpoint {
>>>> + remote-endpoint = <&dsi2dp_bridge1_out>;
>>>> + };
>>>> + };
>>>> + };
>>>> };
>>>>
>>>> &apps_rsc {
>>>> @@ -517,9 +548,135 @@ &i2c11 {
>>>>
>>>> &i2c18 {
>>>> clock-frequency = <400000>;
>>>> - pinctrl-0 = <&qup_i2c18_default>;
>>>> + pinctrl-0 = <&qup_i2c18_default>,
>>>> + <&io_expander_intr_active>,
>>>> + <&io_expander_reset_active>;
>>>
>>> These pinctrl entries should go to the IO expander itself.
>>>
>>>> pinctrl-names = "default";
>>>> +
>>>> status = "okay";
>>>> +
>>>> + io_expander: gpio@74 {
>>>> + compatible = "ti,tca9539";
>>>> + reg = <0x74>;
>>>> + interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
>>>> + gpio-controller;
>>>> + #gpio-cells = <2>;
>>>> + interrupt-controller;
>>>> + #interrupt-cells = <2>;
>>>> +
>>>> + gpio2-hog {
>>>
>>> This needs a huuge explanation in the commit message. Otherwise I'd say
>>> these pins should likely be used by the corresponding anx bridges.
>>
>> Thanks, for the review.
>>
>> Previously, I was referring to the downstream DT and misunderstood the use of gpio-hog.
>> After reading the schematic, I realized that gpio2, gpio3, gpio10, and gpio11 are all input pins
>> to the IO expander TC9539. We have already configured gpio2 and gpio10 as interrupts in the
>> ANX7625 bridges, so the gpio-hog is not required. It is working without the gpio-hog configuration.
>
> Please make sure that there are pinctrl entries for all pins.
>
Thanks, for the review.
While declaring the pinctrl entries inside the io_expander node, I am getting below error while checking the DTBS check against DT-binding.
Error : /local/mnt/workspace/amakhija/linux_next_11042025/linux/arch/arm64/boot/dts/qcom/sa8775p-ride.dtb: gpio@74: 'dsi0-int-pin-state', 'dsi1-int-pin-state' do not match any of the regexes:
'^(hog-[0-9]+|.+-hog(-[0-9]+)?)$', 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml#
io_expander: gpio@74 {
compatible = "ti,tca9539";
reg = <0x74>;
interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
pinctrl-0 = <&io_expander_intr_active>,
<&io_expander_reset_active>;
pinctrl-names = "default";
dsi0_int_pin: dsi0-int-pin-state {
pins = "gpio2";
input-enable;
bias-disable;
};
dsi1_int_pin: dsi1-int-pin-state {
pins = "gpio10";
input-enable;
bias-disable;
};
};
I couldn't find any devicetree example of tca9539 which is using pinctrl. The gpio-pca95xx.yaml DT binding does not match with any regex of the patterns properties.
Thanks,
Ayushi
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-14 9:56 ` Ayushi Makhija
@ 2025-04-14 10:05 ` Konrad Dybcio
2025-04-14 10:07 ` Dmitry Baryshkov
1 sibling, 0 replies; 27+ messages in thread
From: Konrad Dybcio @ 2025-04-14 10:05 UTC (permalink / raw)
To: Ayushi Makhija, Dmitry Baryshkov, Krzysztof Kozlowski
Cc: konradybcio, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On 4/14/25 11:56 AM, Ayushi Makhija wrote:
> Hi Dmitry,
>
> On 4/11/2025 1:31 AM, Dmitry Baryshkov wrote:
>> On Thu, Apr 10, 2025 at 06:37:54PM +0530, Ayushi Makhija wrote:
>>> Hi Dmirity/Konard
>>>
>>> On 4/7/2025 1:42 AM, Dmitry Baryshkov wrote:
>>>> On Fri, Apr 04, 2025 at 05:25:36PM +0530, Ayushi Makhija wrote:
>>>>> Add anx7625 DSI to DP bridge device nodes.
[...]
>>>>> @@ -517,9 +548,135 @@ &i2c11 {
>>>>>
>>>>> &i2c18 {
>>>>> clock-frequency = <400000>;
>>>>> - pinctrl-0 = <&qup_i2c18_default>;
>>>>> + pinctrl-0 = <&qup_i2c18_default>,
>>>>> + <&io_expander_intr_active>,
>>>>> + <&io_expander_reset_active>;
>>>>
>>>> These pinctrl entries should go to the IO expander itself.
>>>>
>>>>> pinctrl-names = "default";
>>>>> +
>>>>> status = "okay";
>>>>> +
>>>>> + io_expander: gpio@74 {
>>>>> + compatible = "ti,tca9539";
>>>>> + reg = <0x74>;
>>>>> + interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
>>>>> + gpio-controller;
>>>>> + #gpio-cells = <2>;
>>>>> + interrupt-controller;
>>>>> + #interrupt-cells = <2>;
>>>>> +
>>>>> + gpio2-hog {
>>>>
>>>> This needs a huuge explanation in the commit message. Otherwise I'd say
>>>> these pins should likely be used by the corresponding anx bridges.
>>>
>>> Thanks, for the review.
>>>
>>> Previously, I was referring to the downstream DT and misunderstood the use of gpio-hog.
>>> After reading the schematic, I realized that gpio2, gpio3, gpio10, and gpio11 are all input pins
>>> to the IO expander TC9539. We have already configured gpio2 and gpio10 as interrupts in the
>>> ANX7625 bridges, so the gpio-hog is not required. It is working without the gpio-hog configuration.
>>
>> Please make sure that there are pinctrl entries for all pins.
>>
>
> Thanks, for the review.
>
> While declaring the pinctrl entries inside the io_expander node, I am getting below error while checking the DTBS check against DT-binding.
>
> Error : /local/mnt/workspace/amakhija/linux_next_11042025/linux/arch/arm64/boot/dts/qcom/sa8775p-ride.dtb: gpio@74: 'dsi0-int-pin-state', 'dsi1-int-pin-state' do not match any of the regexes:
> '^(hog-[0-9]+|.+-hog(-[0-9]+)?)$', 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml#
>
> io_expander: gpio@74 {
> compatible = "ti,tca9539";
> reg = <0x74>;
> interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
> gpio-controller;
> #gpio-cells = <2>;
> interrupt-controller;
> #interrupt-cells = <2>;
>
> pinctrl-0 = <&io_expander_intr_active>,
> <&io_expander_reset_active>;
> pinctrl-names = "default";
>
> dsi0_int_pin: dsi0-int-pin-state {
> pins = "gpio2";
> input-enable;
> bias-disable;
> };
>
> dsi1_int_pin: dsi1-int-pin-state {
> pins = "gpio10";
> input-enable;
> bias-disable;
> };
>
> };
>
> I couldn't find any devicetree example of tca9539 which is using pinctrl. The gpio-pca95xx.yaml DT binding does not match with any regex of the patterns properties.
It looks like patternProperties should be extended, perhaps with
something that includes pincfg-node.yaml? Krzysztof?
Konrad
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-14 9:56 ` Ayushi Makhija
2025-04-14 10:05 ` Konrad Dybcio
@ 2025-04-14 10:07 ` Dmitry Baryshkov
2025-04-14 13:54 ` Ayushi Makhija
1 sibling, 1 reply; 27+ messages in thread
From: Dmitry Baryshkov @ 2025-04-14 10:07 UTC (permalink / raw)
To: Ayushi Makhija
Cc: konradybcio, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On 14/04/2025 12:56, Ayushi Makhija wrote:
> Hi Dmitry,
>
> On 4/11/2025 1:31 AM, Dmitry Baryshkov wrote:
>> On Thu, Apr 10, 2025 at 06:37:54PM +0530, Ayushi Makhija wrote:
>>> Hi Dmirity/Konard
>>>
>>> On 4/7/2025 1:42 AM, Dmitry Baryshkov wrote:
>>>> On Fri, Apr 04, 2025 at 05:25:36PM +0530, Ayushi Makhija wrote:
>>>>> Add anx7625 DSI to DP bridge device nodes.
>>>>>
>>>>> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
>>>>> ---
>>>>> arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 ++++++++++++++++++++-
>>>>> 1 file changed, 207 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>> index 175f8b1e3b2d..8e784ccf4138 100644
>>>>> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>> @@ -28,6 +28,13 @@ chosen {
>>>>> stdout-path = "serial0:115200n8";
>>>>> };
>>>>>
>>>>> + vph_pwr: vph-pwr-regulator {
>>>>> + compatible = "regulator-fixed";
>>>>> + regulator-name = "vph_pwr";
>>>>> + regulator-always-on;
>>>>> + regulator-boot-on;
>>>>> + };
>>>>> +
>>>>> vreg_conn_1p8: vreg_conn_1p8 {
>>>>> compatible = "regulator-fixed";
>>>>> regulator-name = "vreg_conn_1p8";
>>>>> @@ -128,6 +135,30 @@ dp1_connector_in: endpoint {
>>>>> };
>>>>> };
>>>>> };
>>>>> +
>>>>> + dp-dsi0-connector {
>>>>> + compatible = "dp-connector";
>>>>> + label = "DSI0";
>>>>> + type = "full-size";
>>>>> +
>>>>> + port {
>>>>> + dp_dsi0_connector_in: endpoint {
>>>>> + remote-endpoint = <&dsi2dp_bridge0_out>;
>>>>> + };
>>>>> + };
>>>>> + };
>>>>> +
>>>>> + dp-dsi1-connector {
>>>>> + compatible = "dp-connector";
>>>>> + label = "DSI1";
>>>>> + type = "full-size";
>>>>> +
>>>>> + port {
>>>>> + dp_dsi1_connector_in: endpoint {
>>>>> + remote-endpoint = <&dsi2dp_bridge1_out>;
>>>>> + };
>>>>> + };
>>>>> + };
>>>>> };
>>>>>
>>>>> &apps_rsc {
>>>>> @@ -517,9 +548,135 @@ &i2c11 {
>>>>>
>>>>> &i2c18 {
>>>>> clock-frequency = <400000>;
>>>>> - pinctrl-0 = <&qup_i2c18_default>;
>>>>> + pinctrl-0 = <&qup_i2c18_default>,
>>>>> + <&io_expander_intr_active>,
>>>>> + <&io_expander_reset_active>;
>>>>
>>>> These pinctrl entries should go to the IO expander itself.
>>>>
>>>>> pinctrl-names = "default";
>>>>> +
>>>>> status = "okay";
>>>>> +
>>>>> + io_expander: gpio@74 {
>>>>> + compatible = "ti,tca9539";
>>>>> + reg = <0x74>;
>>>>> + interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
>>>>> + gpio-controller;
>>>>> + #gpio-cells = <2>;
>>>>> + interrupt-controller;
>>>>> + #interrupt-cells = <2>;
>>>>> +
>>>>> + gpio2-hog {
>>>>
>>>> This needs a huuge explanation in the commit message. Otherwise I'd say
>>>> these pins should likely be used by the corresponding anx bridges.
>>>
>>> Thanks, for the review.
>>>
>>> Previously, I was referring to the downstream DT and misunderstood the use of gpio-hog.
>>> After reading the schematic, I realized that gpio2, gpio3, gpio10, and gpio11 are all input pins
>>> to the IO expander TC9539. We have already configured gpio2 and gpio10 as interrupts in the
>>> ANX7625 bridges, so the gpio-hog is not required. It is working without the gpio-hog configuration.
>>
>> Please make sure that there are pinctrl entries for all pins.
>>
>
> Thanks, for the review.
>
> While declaring the pinctrl entries inside the io_expander node, I am getting below error while checking the DTBS check against DT-binding.
>
> Error : /local/mnt/workspace/amakhija/linux_next_11042025/linux/arch/arm64/boot/dts/qcom/sa8775p-ride.dtb: gpio@74: 'dsi0-int-pin-state', 'dsi1-int-pin-state' do not match any of the regexes:
> '^(hog-[0-9]+|.+-hog(-[0-9]+)?)$', 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml#
TCA9539 is a GPIO controller rather than a pinctrl device, so it doesn't
use pinctrl functions. You don't need to describe properties of the pins
that it provides. However, it can use some pins on its own (like
reset-gpios). In such a case corresponding pin should have a pinctrl
configuration under its pinctrl device.
>
> io_expander: gpio@74 {
> compatible = "ti,tca9539";
> reg = <0x74>;
> interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
> gpio-controller;
> #gpio-cells = <2>;
> interrupt-controller;
> #interrupt-cells = <2>;
>
> pinctrl-0 = <&io_expander_intr_active>,
> <&io_expander_reset_active>;
> pinctrl-names = "default";
>
> dsi0_int_pin: dsi0-int-pin-state {
> pins = "gpio2";
> input-enable;
> bias-disable;
> };
>
> dsi1_int_pin: dsi1-int-pin-state {
> pins = "gpio10";
> input-enable;
> bias-disable;
> };
>
> };
>
> I couldn't find any devicetree example of tca9539 which is using pinctrl. The gpio-pca95xx.yaml DT binding does not match with any regex of the patterns properties.
>
> Thanks,
> Ayushi
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-14 10:07 ` Dmitry Baryshkov
@ 2025-04-14 13:54 ` Ayushi Makhija
2025-04-15 9:30 ` Dmitry Baryshkov
0 siblings, 1 reply; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-14 13:54 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: konradybcio, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On 4/14/2025 3:37 PM, Dmitry Baryshkov wrote:
> On 14/04/2025 12:56, Ayushi Makhija wrote:
>> Hi Dmitry,
>>
>> On 4/11/2025 1:31 AM, Dmitry Baryshkov wrote:
>>> On Thu, Apr 10, 2025 at 06:37:54PM +0530, Ayushi Makhija wrote:
>>>> Hi Dmirity/Konard
>>>>
>>>> On 4/7/2025 1:42 AM, Dmitry Baryshkov wrote:
>>>>> On Fri, Apr 04, 2025 at 05:25:36PM +0530, Ayushi Makhija wrote:
>>>>>> Add anx7625 DSI to DP bridge device nodes.
>>>>>>
>>>>>> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
>>>>>> ---
>>>>>> arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 ++++++++++++++++++++-
>>>>>> 1 file changed, 207 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>>> index 175f8b1e3b2d..8e784ccf4138 100644
>>>>>> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>>> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>>> @@ -28,6 +28,13 @@ chosen {
>>>>>> stdout-path = "serial0:115200n8";
>>>>>> };
>>>>>> + vph_pwr: vph-pwr-regulator {
>>>>>> + compatible = "regulator-fixed";
>>>>>> + regulator-name = "vph_pwr";
>>>>>> + regulator-always-on;
>>>>>> + regulator-boot-on;
>>>>>> + };
>>>>>> +
>>>>>> vreg_conn_1p8: vreg_conn_1p8 {
>>>>>> compatible = "regulator-fixed";
>>>>>> regulator-name = "vreg_conn_1p8";
>>>>>> @@ -128,6 +135,30 @@ dp1_connector_in: endpoint {
>>>>>> };
>>>>>> };
>>>>>> };
>>>>>> +
>>>>>> + dp-dsi0-connector {
>>>>>> + compatible = "dp-connector";
>>>>>> + label = "DSI0";
>>>>>> + type = "full-size";
>>>>>> +
>>>>>> + port {
>>>>>> + dp_dsi0_connector_in: endpoint {
>>>>>> + remote-endpoint = <&dsi2dp_bridge0_out>;
>>>>>> + };
>>>>>> + };
>>>>>> + };
>>>>>> +
>>>>>> + dp-dsi1-connector {
>>>>>> + compatible = "dp-connector";
>>>>>> + label = "DSI1";
>>>>>> + type = "full-size";
>>>>>> +
>>>>>> + port {
>>>>>> + dp_dsi1_connector_in: endpoint {
>>>>>> + remote-endpoint = <&dsi2dp_bridge1_out>;
>>>>>> + };
>>>>>> + };
>>>>>> + };
>>>>>> };
>>>>>> &apps_rsc {
>>>>>> @@ -517,9 +548,135 @@ &i2c11 {
>>>>>> &i2c18 {
>>>>>> clock-frequency = <400000>;
>>>>>> - pinctrl-0 = <&qup_i2c18_default>;
>>>>>> + pinctrl-0 = <&qup_i2c18_default>,
>>>>>> + <&io_expander_intr_active>,
>>>>>> + <&io_expander_reset_active>;
>>>>>
>>>>> These pinctrl entries should go to the IO expander itself.
>>>>>
>>>>>> pinctrl-names = "default";
>>>>>> +
>>>>>> status = "okay";
>>>>>> +
>>>>>> + io_expander: gpio@74 {
>>>>>> + compatible = "ti,tca9539";
>>>>>> + reg = <0x74>;
>>>>>> + interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
>>>>>> + gpio-controller;
>>>>>> + #gpio-cells = <2>;
>>>>>> + interrupt-controller;
>>>>>> + #interrupt-cells = <2>;
>>>>>> +
>>>>>> + gpio2-hog {
>>>>>
>>>>> This needs a huuge explanation in the commit message. Otherwise I'd say
>>>>> these pins should likely be used by the corresponding anx bridges.
>>>>
>>>> Thanks, for the review.
>>>>
>>>> Previously, I was referring to the downstream DT and misunderstood the use of gpio-hog.
>>>> After reading the schematic, I realized that gpio2, gpio3, gpio10, and gpio11 are all input pins
>>>> to the IO expander TC9539. We have already configured gpio2 and gpio10 as interrupts in the
>>>> ANX7625 bridges, so the gpio-hog is not required. It is working without the gpio-hog configuration.
>>>
>>> Please make sure that there are pinctrl entries for all pins.
>>>
>>
>> Thanks, for the review.
>>
>> While declaring the pinctrl entries inside the io_expander node, I am getting below error while checking the DTBS check against DT-binding.
>>
>> Error : /local/mnt/workspace/amakhija/linux_next_11042025/linux/arch/arm64/boot/dts/qcom/sa8775p-ride.dtb: gpio@74: 'dsi0-int-pin-state', 'dsi1-int-pin-state' do not match any of the regexes:
>> '^(hog-[0-9]+|.+-hog(-[0-9]+)?)$', 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml#
>
> TCA9539 is a GPIO controller rather than a pinctrl device, so it doesn't use pinctrl functions. You don't need to describe properties of the pins that it provides. However, it can use some pins on its own (like reset-gpios). In such a case corresponding pin should have a pinctrl configuration under its pinctrl device.
>
Hi Dmitry,
Thanks, for the review.
______________ _____________________ ___________________
| | | | | |
| GPIO 98|---ioexp_intr-->| GPIO 0 |------Reset--------->|RESET_N |
| GPIO 97|<--ioexp_reset--| GPIO 1 |----power-enable---->|POWER_EN |
| | | | | |
| SOC | | tca9539 | | anx7625 bridge |
| LeMans | | io_expander | | |
| | | GPIO 2 |<----DSI0_INT_1P8_N--|ALERT_N/INTP |
|______________| |_____________________| |___________________|
Based on the above connection diagram, I have already configured the reset(gpio0), power-enable(gpio1) and interrupt (ALERT_N/INTP) (gpio2) for first instance of anx7625 bridge. Similarly I have configured the reset(gpio8), power-enable(gpio9) and interrupt (gpio10) for the second instance of the anx7625 bridge.
bridge@58 {
compatible = "analogix,anx7625";
reg = <0x58>;
interrupts-extended = <&io_expander 2 IRQ_TYPE_EDGE_FALLING>;
enable-gpios = <&io_expander 1 GPIO_ACTIVE_HIGH>;
reset-gpios = <&io_expander 0 GPIO_ACTIVE_HIGH>;
I think above configuration should be fine, we don't need any pinctrl for io expander's gpios going to anx7625 bridge.
Other two RESET (gpio97) and INTR (gpio98) gpios, which is connecting SOC to io expander (tca9539), I have already declared them under tlmm node.
io_expander_intr_active: io-expander-intr-active-state {
pins = "gpio98";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
io_expander_reset_active: io-expander-reset-active-state {
pins = "gpio97";
function = "gpio";
drive-strength = <2>;
bias-disable;
output-high;
};
Thanks,
Ayushi
>>
>> io_expander: gpio@74 {
>> compatible = "ti,tca9539";
>> reg = <0x74>;
>> interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
>> gpio-controller;
>> #gpio-cells = <2>;
>> interrupt-controller;
>> #interrupt-cells = <2>;
>>
>> pinctrl-0 = <&io_expander_intr_active>,
>> <&io_expander_reset_active>;
>> pinctrl-names = "default";
>>
>> dsi0_int_pin: dsi0-int-pin-state {
>> pins = "gpio2";
>> input-enable;
>> bias-disable;
>> };
>>
>> dsi1_int_pin: dsi1-int-pin-state {
>> pins = "gpio10";
>> input-enable;
>> bias-disable;
>> };
>>
>> };
>>
>> I couldn't find any devicetree example of tca9539 which is using pinctrl. The gpio-pca95xx.yaml DT binding does not match with any regex of the patterns properties.
>>
>> Thanks,
>> Ayushi
>
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-14 13:54 ` Ayushi Makhija
@ 2025-04-15 9:30 ` Dmitry Baryshkov
2025-04-15 9:52 ` Ayushi Makhija
0 siblings, 1 reply; 27+ messages in thread
From: Dmitry Baryshkov @ 2025-04-15 9:30 UTC (permalink / raw)
To: Ayushi Makhija
Cc: konradybcio, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On 14/04/2025 16:54, Ayushi Makhija wrote:
> On 4/14/2025 3:37 PM, Dmitry Baryshkov wrote:
>> On 14/04/2025 12:56, Ayushi Makhija wrote:
>>> Hi Dmitry,
>>>
>>> On 4/11/2025 1:31 AM, Dmitry Baryshkov wrote:
>>>> On Thu, Apr 10, 2025 at 06:37:54PM +0530, Ayushi Makhija wrote:
>>>>> Hi Dmirity/Konard
>>>>>
>>>>> On 4/7/2025 1:42 AM, Dmitry Baryshkov wrote:
>>>>>> On Fri, Apr 04, 2025 at 05:25:36PM +0530, Ayushi Makhija wrote:
>>>>>>> Add anx7625 DSI to DP bridge device nodes.
>>>>>>>
>>>>>>> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
>>>>>>> ---
>>>>>>> arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 ++++++++++++++++++++-
>>>>>>> 1 file changed, 207 insertions(+), 1 deletion(-)
>>>>>>>
>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>>>> index 175f8b1e3b2d..8e784ccf4138 100644
>>>>>>> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>>>> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>>>> @@ -28,6 +28,13 @@ chosen {
>>>>>>> stdout-path = "serial0:115200n8";
>>>>>>> };
>>>>>>> + vph_pwr: vph-pwr-regulator {
>>>>>>> + compatible = "regulator-fixed";
>>>>>>> + regulator-name = "vph_pwr";
>>>>>>> + regulator-always-on;
>>>>>>> + regulator-boot-on;
>>>>>>> + };
>>>>>>> +
>>>>>>> vreg_conn_1p8: vreg_conn_1p8 {
>>>>>>> compatible = "regulator-fixed";
>>>>>>> regulator-name = "vreg_conn_1p8";
>>>>>>> @@ -128,6 +135,30 @@ dp1_connector_in: endpoint {
>>>>>>> };
>>>>>>> };
>>>>>>> };
>>>>>>> +
>>>>>>> + dp-dsi0-connector {
>>>>>>> + compatible = "dp-connector";
>>>>>>> + label = "DSI0";
>>>>>>> + type = "full-size";
>>>>>>> +
>>>>>>> + port {
>>>>>>> + dp_dsi0_connector_in: endpoint {
>>>>>>> + remote-endpoint = <&dsi2dp_bridge0_out>;
>>>>>>> + };
>>>>>>> + };
>>>>>>> + };
>>>>>>> +
>>>>>>> + dp-dsi1-connector {
>>>>>>> + compatible = "dp-connector";
>>>>>>> + label = "DSI1";
>>>>>>> + type = "full-size";
>>>>>>> +
>>>>>>> + port {
>>>>>>> + dp_dsi1_connector_in: endpoint {
>>>>>>> + remote-endpoint = <&dsi2dp_bridge1_out>;
>>>>>>> + };
>>>>>>> + };
>>>>>>> + };
>>>>>>> };
>>>>>>> &apps_rsc {
>>>>>>> @@ -517,9 +548,135 @@ &i2c11 {
>>>>>>> &i2c18 {
>>>>>>> clock-frequency = <400000>;
>>>>>>> - pinctrl-0 = <&qup_i2c18_default>;
>>>>>>> + pinctrl-0 = <&qup_i2c18_default>,
>>>>>>> + <&io_expander_intr_active>,
>>>>>>> + <&io_expander_reset_active>;
>>>>>>
>>>>>> These pinctrl entries should go to the IO expander itself.
>>>>>>
>>>>>>> pinctrl-names = "default";
>>>>>>> +
>>>>>>> status = "okay";
>>>>>>> +
>>>>>>> + io_expander: gpio@74 {
>>>>>>> + compatible = "ti,tca9539";
>>>>>>> + reg = <0x74>;
>>>>>>> + interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
>>>>>>> + gpio-controller;
>>>>>>> + #gpio-cells = <2>;
>>>>>>> + interrupt-controller;
>>>>>>> + #interrupt-cells = <2>;
>>>>>>> +
>>>>>>> + gpio2-hog {
>>>>>>
>>>>>> This needs a huuge explanation in the commit message. Otherwise I'd say
>>>>>> these pins should likely be used by the corresponding anx bridges.
>>>>>
>>>>> Thanks, for the review.
>>>>>
>>>>> Previously, I was referring to the downstream DT and misunderstood the use of gpio-hog.
>>>>> After reading the schematic, I realized that gpio2, gpio3, gpio10, and gpio11 are all input pins
>>>>> to the IO expander TC9539. We have already configured gpio2 and gpio10 as interrupts in the
>>>>> ANX7625 bridges, so the gpio-hog is not required. It is working without the gpio-hog configuration.
>>>>
>>>> Please make sure that there are pinctrl entries for all pins.
>>>>
>>>
>>> Thanks, for the review.
>>>
>>> While declaring the pinctrl entries inside the io_expander node, I am getting below error while checking the DTBS check against DT-binding.
>>>
>>> Error : /local/mnt/workspace/amakhija/linux_next_11042025/linux/arch/arm64/boot/dts/qcom/sa8775p-ride.dtb: gpio@74: 'dsi0-int-pin-state', 'dsi1-int-pin-state' do not match any of the regexes:
>>> '^(hog-[0-9]+|.+-hog(-[0-9]+)?)$', 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml#
>>
>> TCA9539 is a GPIO controller rather than a pinctrl device, so it doesn't use pinctrl functions. You don't need to describe properties of the pins that it provides. However, it can use some pins on its own (like reset-gpios). In such a case corresponding pin should have a pinctrl configuration under its pinctrl device.
>>
>
> Hi Dmitry,
>
> Thanks, for the review.
>
> ______________ _____________________ ___________________
> | | | | | |
> | GPIO 98|---ioexp_intr-->| GPIO 0 |------Reset--------->|RESET_N |
> | GPIO 97|<--ioexp_reset--| GPIO 1 |----power-enable---->|POWER_EN |
> | | | | | |
> | SOC | | tca9539 | | anx7625 bridge |
> | LeMans | | io_expander | | |
> | | | GPIO 2 |<----DSI0_INT_1P8_N--|ALERT_N/INTP |
> |______________| |_____________________| |___________________|
>
>
> Based on the above connection diagram, I have already configured the reset(gpio0), power-enable(gpio1) and interrupt (ALERT_N/INTP) (gpio2) for first instance of anx7625 bridge. Similarly I have configured the reset(gpio8), power-enable(gpio9) and interrupt (gpio10) for the second instance of the anx7625 bridge.
>
> bridge@58 {
> compatible = "analogix,anx7625";
> reg = <0x58>;
> interrupts-extended = <&io_expander 2 IRQ_TYPE_EDGE_FALLING>;
> enable-gpios = <&io_expander 1 GPIO_ACTIVE_HIGH>;
> reset-gpios = <&io_expander 0 GPIO_ACTIVE_HIGH>;
>
>
> I think above configuration should be fine, we don't need any pinctrl for io expander's gpios going to anx7625 bridge.
>
> Other two RESET (gpio97) and INTR (gpio98) gpios, which is connecting SOC to io expander (tca9539), I have already declared them under tlmm node.
>
> io_expander_intr_active: io-expander-intr-active-state {
> pins = "gpio98";
> function = "gpio";
> drive-strength = <2>;
> bias-disable;
> };
>
> io_expander_reset_active: io-expander-reset-active-state {
> pins = "gpio97";
> function = "gpio";
> drive-strength = <2>;
> bias-disable;
> output-high;
Yes, this this was I was looking for, thank you.
> };
>
> Thanks,
> Ayushi
>
>>>
>>> io_expander: gpio@74 {
>>> compatible = "ti,tca9539";
>>> reg = <0x74>;
>>> interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
>>> gpio-controller;
>>> #gpio-cells = <2>;
>>> interrupt-controller;
>>> #interrupt-cells = <2>;
>>>
>>> pinctrl-0 = <&io_expander_intr_active>,
>>> <&io_expander_reset_active>;
>>> pinctrl-names = "default";
>>>
>>> dsi0_int_pin: dsi0-int-pin-state {
>>> pins = "gpio2";
>>> input-enable;
>>> bias-disable;
>>> };
>>>
>>> dsi1_int_pin: dsi1-int-pin-state {
>>> pins = "gpio10";
>>> input-enable;
>>> bias-disable;
>>> };
>>>
>>> };
>>>
>>> I couldn't find any devicetree example of tca9539 which is using pinctrl. The gpio-pca95xx.yaml DT binding does not match with any regex of the patterns properties.
>>>
>>> Thanks,
>>> Ayushi
>>
>>
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes
2025-04-15 9:30 ` Dmitry Baryshkov
@ 2025-04-15 9:52 ` Ayushi Makhija
0 siblings, 0 replies; 27+ messages in thread
From: Ayushi Makhija @ 2025-04-15 9:52 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: konradybcio, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel, robdclark, dmitry.baryshkov, sean, marijn.suijten,
andersson, robh, robh+dt, krzk+dt, conor+dt, andrzej.hajda,
neil.armstrong, rfoss, Laurent.pinchart, jonas, jernej.skrabec,
quic_abhinavk, quic_rajeevny, quic_vproddut, quic_jesszhan
On 4/15/2025 3:00 PM, Dmitry Baryshkov wrote:
> On 14/04/2025 16:54, Ayushi Makhija wrote:
>> On 4/14/2025 3:37 PM, Dmitry Baryshkov wrote:
>>> On 14/04/2025 12:56, Ayushi Makhija wrote:
>>>> Hi Dmitry,
>>>>
>>>> On 4/11/2025 1:31 AM, Dmitry Baryshkov wrote:
>>>>> On Thu, Apr 10, 2025 at 06:37:54PM +0530, Ayushi Makhija wrote:
>>>>>> Hi Dmirity/Konard
>>>>>>
>>>>>> On 4/7/2025 1:42 AM, Dmitry Baryshkov wrote:
>>>>>>> On Fri, Apr 04, 2025 at 05:25:36PM +0530, Ayushi Makhija wrote:
>>>>>>>> Add anx7625 DSI to DP bridge device nodes.
>>>>>>>>
>>>>>>>> Signed-off-by: Ayushi Makhija <quic_amakhija@quicinc.com>
>>>>>>>> ---
>>>>>>>> arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi | 208 ++++++++++++++++++++-
>>>>>>>> 1 file changed, 207 insertions(+), 1 deletion(-)
>>>>>>>>
>>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>>>>> index 175f8b1e3b2d..8e784ccf4138 100644
>>>>>>>> --- a/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>>>>> +++ b/arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi
>>>>>>>> @@ -28,6 +28,13 @@ chosen {
>>>>>>>> stdout-path = "serial0:115200n8";
>>>>>>>> };
>>>>>>>> + vph_pwr: vph-pwr-regulator {
>>>>>>>> + compatible = "regulator-fixed";
>>>>>>>> + regulator-name = "vph_pwr";
>>>>>>>> + regulator-always-on;
>>>>>>>> + regulator-boot-on;
>>>>>>>> + };
>>>>>>>> +
>>>>>>>> vreg_conn_1p8: vreg_conn_1p8 {
>>>>>>>> compatible = "regulator-fixed";
>>>>>>>> regulator-name = "vreg_conn_1p8";
>>>>>>>> @@ -128,6 +135,30 @@ dp1_connector_in: endpoint {
>>>>>>>> };
>>>>>>>> };
>>>>>>>> };
>>>>>>>> +
>>>>>>>> + dp-dsi0-connector {
>>>>>>>> + compatible = "dp-connector";
>>>>>>>> + label = "DSI0";
>>>>>>>> + type = "full-size";
>>>>>>>> +
>>>>>>>> + port {
>>>>>>>> + dp_dsi0_connector_in: endpoint {
>>>>>>>> + remote-endpoint = <&dsi2dp_bridge0_out>;
>>>>>>>> + };
>>>>>>>> + };
>>>>>>>> + };
>>>>>>>> +
>>>>>>>> + dp-dsi1-connector {
>>>>>>>> + compatible = "dp-connector";
>>>>>>>> + label = "DSI1";
>>>>>>>> + type = "full-size";
>>>>>>>> +
>>>>>>>> + port {
>>>>>>>> + dp_dsi1_connector_in: endpoint {
>>>>>>>> + remote-endpoint = <&dsi2dp_bridge1_out>;
>>>>>>>> + };
>>>>>>>> + };
>>>>>>>> + };
>>>>>>>> };
>>>>>>>> &apps_rsc {
>>>>>>>> @@ -517,9 +548,135 @@ &i2c11 {
>>>>>>>> &i2c18 {
>>>>>>>> clock-frequency = <400000>;
>>>>>>>> - pinctrl-0 = <&qup_i2c18_default>;
>>>>>>>> + pinctrl-0 = <&qup_i2c18_default>,
>>>>>>>> + <&io_expander_intr_active>,
>>>>>>>> + <&io_expander_reset_active>;
>>>>>>>
>>>>>>> These pinctrl entries should go to the IO expander itself.
>>>>>>>
>>>>>>>> pinctrl-names = "default";
>>>>>>>> +
>>>>>>>> status = "okay";
>>>>>>>> +
>>>>>>>> + io_expander: gpio@74 {
>>>>>>>> + compatible = "ti,tca9539";
>>>>>>>> + reg = <0x74>;
>>>>>>>> + interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
>>>>>>>> + gpio-controller;
>>>>>>>> + #gpio-cells = <2>;
>>>>>>>> + interrupt-controller;
>>>>>>>> + #interrupt-cells = <2>;
>>>>>>>> +
>>>>>>>> + gpio2-hog {
>>>>>>>
>>>>>>> This needs a huuge explanation in the commit message. Otherwise I'd say
>>>>>>> these pins should likely be used by the corresponding anx bridges.
>>>>>>
>>>>>> Thanks, for the review.
>>>>>>
>>>>>> Previously, I was referring to the downstream DT and misunderstood the use of gpio-hog.
>>>>>> After reading the schematic, I realized that gpio2, gpio3, gpio10, and gpio11 are all input pins
>>>>>> to the IO expander TC9539. We have already configured gpio2 and gpio10 as interrupts in the
>>>>>> ANX7625 bridges, so the gpio-hog is not required. It is working without the gpio-hog configuration.
>>>>>
>>>>> Please make sure that there are pinctrl entries for all pins.
>>>>>
>>>>
>>>> Thanks, for the review.
>>>>
>>>> While declaring the pinctrl entries inside the io_expander node, I am getting below error while checking the DTBS check against DT-binding.
>>>>
>>>> Error : /local/mnt/workspace/amakhija/linux_next_11042025/linux/arch/arm64/boot/dts/qcom/sa8775p-ride.dtb: gpio@74: 'dsi0-int-pin-state', 'dsi1-int-pin-state' do not match any of the regexes:
>>>> '^(hog-[0-9]+|.+-hog(-[0-9]+)?)$', 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml#
>>>
>>> TCA9539 is a GPIO controller rather than a pinctrl device, so it doesn't use pinctrl functions. You don't need to describe properties of the pins that it provides. However, it can use some pins on its own (like reset-gpios). In such a case corresponding pin should have a pinctrl configuration under its pinctrl device.
>>>
>>
>> Hi Dmitry,
>>
>> Thanks, for the review.
>>
>> ______________ _____________________ ___________________
>> | | | | | |
>> | GPIO 98|---ioexp_intr-->| GPIO 0 |------Reset--------->|RESET_N |
>> | GPIO 97|<--ioexp_reset--| GPIO 1 |----power-enable---->|POWER_EN |
>> | | | | | |
>> | SOC | | tca9539 | | anx7625 bridge |
>> | LeMans | | io_expander | | |
>> | | | GPIO 2 |<----DSI0_INT_1P8_N--|ALERT_N/INTP |
>> |______________| |_____________________| |___________________|
>>
>>
>> Based on the above connection diagram, I have already configured the reset(gpio0), power-enable(gpio1) and interrupt (ALERT_N/INTP) (gpio2) for first instance of anx7625 bridge. Similarly I have configured the reset(gpio8), power-enable(gpio9) and interrupt (gpio10) for the second instance of the anx7625 bridge.
>>
>> bridge@58 {
>> compatible = "analogix,anx7625";
>> reg = <0x58>;
>> interrupts-extended = <&io_expander 2 IRQ_TYPE_EDGE_FALLING>;
>> enable-gpios = <&io_expander 1 GPIO_ACTIVE_HIGH>;
>> reset-gpios = <&io_expander 0 GPIO_ACTIVE_HIGH>;
>>
>>
>> I think above configuration should be fine, we don't need any pinctrl for io expander's gpios going to anx7625 bridge.
>>
>> Other two RESET (gpio97) and INTR (gpio98) gpios, which is connecting SOC to io expander (tca9539), I have already declared them under tlmm node.
>>
>> io_expander_intr_active: io-expander-intr-active-state {
>> pins = "gpio98";
>> function = "gpio";
>> drive-strength = <2>;
>> bias-disable;
>> };
>>
>> io_expander_reset_active: io-expander-reset-active-state {
>> pins = "gpio97";
>> function = "gpio";
>> drive-strength = <2>;
>> bias-disable;
>> output-high;
>
> Yes, this this was I was looking for, thank you.
>
Hi Dmitry,
Thanks for the clarification.
Thanks,
Ayushi
>> };
>>
>> Thanks,
>> Ayushi
>>
>>>>
>>>> io_expander: gpio@74 {
>>>> compatible = "ti,tca9539";
>>>> reg = <0x74>;
>>>> interrupts-extended = <&tlmm 98 IRQ_TYPE_EDGE_BOTH>;
>>>> gpio-controller;
>>>> #gpio-cells = <2>;
>>>> interrupt-controller;
>>>> #interrupt-cells = <2>;
>>>>
>>>> pinctrl-0 = <&io_expander_intr_active>,
>>>> <&io_expander_reset_active>;
>>>> pinctrl-names = "default";
>>>>
>>>> dsi0_int_pin: dsi0-int-pin-state {
>>>> pins = "gpio2";
>>>> input-enable;
>>>> bias-disable;
>>>> };
>>>>
>>>> dsi1_int_pin: dsi1-int-pin-state {
>>>> pins = "gpio10";
>>>> input-enable;
>>>> bias-disable;
>>>> };
>>>>
>>>> };
>>>>
>>>> I couldn't find any devicetree example of tca9539 which is using pinctrl. The gpio-pca95xx.yaml DT binding does not match with any regex of the patterns properties.
>>>>
>>>> Thanks,
>>>> Ayushi
>>>
>>>
>>
>
>
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2025-04-15 9:53 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-04 11:55 [PATCH v3 00/10] Add DSI display support for SA8775P target Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 01/10] dt-bindings: display: msm-dsi-phy-7nm: document the SA8775P DSI PHY Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 02/10] dt-bindings: msm: dsi-controller-main: document the SA8775P DSI CTRL Ayushi Makhija
2025-04-06 12:36 ` Krzysztof Kozlowski
2025-04-04 11:55 ` [PATCH v3 03/10] dt-bindings: display: msm: document DSI controller and phy on SA8775P Ayushi Makhija
2025-04-05 7:48 ` Krzysztof Kozlowski
2025-04-04 11:55 ` [PATCH v3 04/10] drm/msm/dsi: add DSI PHY configuration " Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 05/10] drm/msm/dsi: add DSI support for SA8775P Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 06/10] arm64: dts: qcom: sa8775p: add Display Serial Interface device nodes Ayushi Makhija
2025-04-04 22:27 ` Konrad Dybcio
2025-04-04 11:55 ` [PATCH v3 07/10] arm64: dts: qcom: sa8775p-ride: add anx7625 DSI to DP bridge nodes Ayushi Makhija
2025-04-04 22:39 ` Konrad Dybcio
2025-04-06 20:12 ` Dmitry Baryshkov
2025-04-10 5:04 ` Ayushi Makhija
2025-04-10 13:07 ` Ayushi Makhija
2025-04-10 20:01 ` Dmitry Baryshkov
2025-04-14 9:56 ` Ayushi Makhija
2025-04-14 10:05 ` Konrad Dybcio
2025-04-14 10:07 ` Dmitry Baryshkov
2025-04-14 13:54 ` Ayushi Makhija
2025-04-15 9:30 ` Dmitry Baryshkov
2025-04-15 9:52 ` Ayushi Makhija
2025-04-04 11:55 ` [PATCH v3 08/10] drm/bridge: anx7625: enable HPD interrupts Ayushi Makhija
2025-04-06 20:26 ` Dmitry Baryshkov
2025-04-04 11:55 ` [PATCH v3 09/10] drm/bridge: anx7625: update bridge_ops and sink detect logic Ayushi Makhija
2025-04-06 20:14 ` Dmitry Baryshkov
2025-04-04 11:55 ` [PATCH v3 10/10] drm/bridge: anx7625: change the gpiod_set_value API Ayushi Makhija
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox