From: Rob Herring <robh@kernel.org>
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Cc: Vinod Koul <vkoul@kernel.org>,
Kishon Vijay Abraham I <kishon@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Bryan O'Donoghue <bod@kernel.org>,
Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] dt-bindings: phy: qcom: Add MIPI CSI2 C-PHY/DPHY Combo schema
Date: Thu, 10 Jul 2025 18:08:46 -0500 [thread overview]
Message-ID: <20250710230846.GA44483-robh@kernel.org> (raw)
In-Reply-To: <20250710-x1e-csi2-phy-v1-1-74acbb5b162b@linaro.org>
On Thu, Jul 10, 2025 at 05:16:47PM +0100, Bryan O'Donoghue wrote:
> 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
Kind of long. CSI2 implies MIPI and is there a non-combo phy for the
SoC? Could drop either or both mipi and combo...
> +
> + reg:
> + maxItems: 1
> +
> + "#phy-cells":
> + const: 0
> +
> + clocks:
> + maxItems: 4
> +
> + clock-names:
> + items:
> + - const: camnoc_axi
> + - const: cpas_ahb
These look like the source is included in the name. Is there more than 1
AXI and AHB bus for this device?
> + - const: csiphy
> + - const: csiphy_timer
Module clocks should probably come first.
> +
> + 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
Perhaps putting this in phy cells would be better because the consumer
decides on the mode.
> +
> +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 {
Drop unused labels.
> + 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>;
> + };
>
> --
> 2.49.0
>
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Cc: Vinod Koul <vkoul@kernel.org>,
Kishon Vijay Abraham I <kishon@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Bryan O'Donoghue <bod@kernel.org>,
Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] dt-bindings: phy: qcom: Add MIPI CSI2 C-PHY/DPHY Combo schema
Date: Thu, 10 Jul 2025 18:08:46 -0500 [thread overview]
Message-ID: <20250710230846.GA44483-robh@kernel.org> (raw)
In-Reply-To: <20250710-x1e-csi2-phy-v1-1-74acbb5b162b@linaro.org>
On Thu, Jul 10, 2025 at 05:16:47PM +0100, Bryan O'Donoghue wrote:
> 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
Kind of long. CSI2 implies MIPI and is there a non-combo phy for the
SoC? Could drop either or both mipi and combo...
> +
> + reg:
> + maxItems: 1
> +
> + "#phy-cells":
> + const: 0
> +
> + clocks:
> + maxItems: 4
> +
> + clock-names:
> + items:
> + - const: camnoc_axi
> + - const: cpas_ahb
These look like the source is included in the name. Is there more than 1
AXI and AHB bus for this device?
> + - const: csiphy
> + - const: csiphy_timer
Module clocks should probably come first.
> +
> + 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
Perhaps putting this in phy cells would be better because the consumer
decides on the mode.
> +
> +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 {
Drop unused labels.
> + 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>;
> + };
>
> --
> 2.49.0
>
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
next prev parent reply other threads:[~2025-07-10 23:08 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-10 16:16 [PATCH 0/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver Bryan O'Donoghue
2025-07-10 16:16 ` Bryan O'Donoghue
2025-07-10 16:16 ` [PATCH 1/2] dt-bindings: phy: qcom: Add MIPI CSI2 C-PHY/DPHY Combo schema Bryan O'Donoghue
2025-07-10 16:16 ` Bryan O'Donoghue
2025-07-10 23:08 ` Rob Herring [this message]
2025-07-10 23:08 ` Rob Herring
2025-07-14 14:13 ` Vladimir Zapolskiy
2025-07-14 14:13 ` Vladimir Zapolskiy
2025-07-14 14:42 ` Bryan O'Donoghue
2025-07-14 14:42 ` Bryan O'Donoghue
2025-07-15 6:40 ` Vladimir Zapolskiy
2025-07-15 6:40 ` Vladimir Zapolskiy
2025-07-15 8:52 ` Bryan O'Donoghue
2025-07-15 8:52 ` Bryan O'Donoghue
2025-07-10 16:16 ` [PATCH 2/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI D-PHY driver Bryan O'Donoghue
2025-07-10 16:16 ` Bryan O'Donoghue
2025-07-10 17:08 ` Konrad Dybcio
2025-07-10 17:08 ` Konrad Dybcio
2025-07-11 9:14 ` Bryan O'Donoghue
2025-07-11 9:14 ` Bryan O'Donoghue
2025-07-11 11:29 ` Konrad Dybcio
2025-07-11 11:29 ` Konrad Dybcio
2025-07-14 14:16 ` Vladimir Zapolskiy
2025-07-14 14:16 ` Vladimir Zapolskiy
2025-07-14 14:43 ` Bryan O'Donoghue
2025-07-14 14:43 ` Bryan O'Donoghue
2025-07-14 14:58 ` Vladimir Zapolskiy
2025-07-14 14:58 ` Vladimir Zapolskiy
2025-07-14 15:17 ` Bryan O'Donoghue
2025-07-14 15:17 ` Bryan O'Donoghue
2025-07-14 15:26 ` Konrad Dybcio
2025-07-14 15:26 ` Konrad Dybcio
2025-07-14 15:30 ` Vladimir Zapolskiy
2025-07-14 15:30 ` Vladimir Zapolskiy
2025-07-15 0:13 ` Bryan O'Donoghue
2025-07-15 0:13 ` Bryan O'Donoghue
2025-07-15 6:35 ` Vladimir Zapolskiy
2025-07-15 6:35 ` Vladimir Zapolskiy
2025-07-15 9:01 ` Konrad Dybcio
2025-07-15 9:01 ` Konrad Dybcio
2025-07-15 9:20 ` Vladimir Zapolskiy
2025-07-15 9:20 ` Vladimir Zapolskiy
2025-07-15 9:33 ` Konrad Dybcio
2025-07-15 9:33 ` Konrad Dybcio
2025-07-21 15:46 ` neil.armstrong
2025-07-21 15:46 ` neil.armstrong
2025-07-21 16:16 ` Bryan O'Donoghue
2025-07-21 16:16 ` Bryan O'Donoghue
2025-07-21 16:22 ` Bryan O'Donoghue
2025-07-21 16:22 ` Bryan O'Donoghue
2025-07-21 16:29 ` Bryan O'Donoghue
2025-07-21 16:29 ` Bryan O'Donoghue
2025-07-22 8:32 ` Neil Armstrong
2025-07-22 8:32 ` Neil Armstrong
2025-07-22 9:08 ` Bryan O'Donoghue
2025-07-22 9:08 ` Bryan O'Donoghue
2025-07-22 9:59 ` Neil Armstrong
2025-07-22 9:59 ` Neil Armstrong
2025-07-22 10:37 ` Bryan O'Donoghue
2025-07-22 10:37 ` Bryan O'Donoghue
2025-08-12 13:39 ` neil.armstrong
2025-08-12 13:39 ` neil.armstrong
2025-08-12 15:05 ` Bryan O'Donoghue
2025-08-12 15:05 ` Bryan O'Donoghue
2025-08-12 16:08 ` Neil Armstrong
2025-08-12 16:08 ` Neil Armstrong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250710230846.GA44483-robh@kernel.org \
--to=robh@kernel.org \
--cc=bod@kernel.org \
--cc=bryan.odonoghue@linaro.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=kishon@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=vkoul@kernel.org \
--cc=vladimir.zapolskiy@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.