Re: [PATCH 1/2] dt-bindings: phy: qcom: Add MIPI CSI2 C-PHY/DPHY Combo schema
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Date: 2025-07-14 14:13:57
Also in:
linux-arm-msm, linux-media, linux-phy, lkml
On 7/10/25 19:16, Bryan O'Donoghue wrote:
quoted hunk ↗ jump to hunk
Add a base schema initially compatible with x1e80100 to describe MIPI CSI2 PHY devices. The hardware can support both C-PHY and D-PHY modes. The CSIPHY devices have their own pinouts on the SoC as well as their own individual voltage rails. The need to model voltage rails on a per-PHY basis leads us to define CSIPHY devices as individual nodes. Two nice outcomes in terms of schema and DT arise from this change. 1. The ability to define on a per-PHY basis voltage rails. 2. The ability to require those voltage. We have had a complete bodge upstream for this where a single set of voltage rail for all CSIPHYs has been buried inside of CAMSS. Much like the I2C bus which is dedicated to Camera sensors - the CCI bus in CAMSS parlance, the CSIPHY devices should be individually modelled. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> --- .../phy/qcom,x1e80100-mipi-csi2-combo-phy.yaml | 95 ++++++++++++++++++++++ 1 file changed, 95 insertions(+)diff --git a/Documentation/devicetree/bindings/phy/qcom,x1e80100-mipi-csi2-combo-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,x1e80100-mipi-csi2-combo-phy.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e0976f012516452ae3632ff4732620b5c5402d3b --- /dev/null +++ b/Documentation/devicetree/bindings/phy/qcom,x1e80100-mipi-csi2-combo-phy.yaml@@ -0,0 +1,95 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/qcom,x1e80100-mipi-csi2-combo-phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm MIPI CSI2 Combo PHY + +maintainers: + - Bryan O'Donoghue <bod@kernel.org> + +description: + Qualcomm MIPI CSI2 C-PHY/D-PHY combination PHY. Connects MIPI CSI2 sensors + to Qualcomm's Camera CSI Decoder. The PHY supports both C-PHY and D-PHY + modes. + +properties: + compatible: + const: qcom,x1e80100-mipi-csi2-combo-phy + + reg: + maxItems: 1 + + "#phy-cells": + const: 0 + + clocks: + maxItems: 4 + + clock-names: + items: + - const: camnoc_axi + - const: cpas_ahb + - const: csiphy + - const: csiphy_timer + + interrupts: + maxItems: 1 + + power-domains: + maxItems: 1 + + vdda-0p8-supply: + description: Phandle to a 0.8V regulator supply to a PHY. + + vdda-1p2-supply: + description: Phandle to 1.2V regulator supply to a PHY. + + phy-type: + description: D-PHY or C-PHY mode + enum: [ 10, 11 ] + $ref: /schemas/types.yaml#/definitions/uint32 + +required: + - compatible + - reg + - "#phy-cells" + - clocks + - clock-names + - vdda-0p8-supply + - vdda-1p2-supply + - phy-type + +additionalProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/clock/qcom,x1e80100-camcc.h> + #include <dt-bindings/clock/qcom,x1e80100-gcc.h> + #include <dt-bindings/phy/phy.h> + + csiphy0: csiphy@ace4000 { + compatible = "qcom,x1e80100-mipi-csi2-combo-phy"; + reg = <0x0ace4000 0x2000>; + #phy-cells = <0>; + + clocks = <&camcc CAM_CC_CAMNOC_AXI_RT_CLK>, + <&camcc CAM_CC_CPAS_AHB_CLK>, + <&camcc CAM_CC_CSIPHY0_CLK>, + <&camcc CAM_CC_CSI0PHYTIMER_CLK>; + clock-names = "camnoc_axi", + "cpas_ahb", + "csiphy", + "csiphy_timer"; + + interrupts = <GIC_SPI 477 IRQ_TYPE_EDGE_RISING>; + + power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>; + + vdda-0p8-supply = <&vreg_l2c_0p8>; + vdda-1p2-supply = <&vreg_l1c_1p2>; + + phy-type = <PHY_TYPE_DPHY>; + };
There is no ports at all, which makes the device tree node unusable, since you can not provide a way to connect any sensors to the phy. -- Best wishes, Vladimir