devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/6] Rx mode support for Cadence DPHY
@ 2021-09-02 18:55 Pratyush Yadav
  2021-09-02 18:55 ` [PATCH v5 3/6] phy: dt-bindings: Convert Cadence DPHY binding to YAML Pratyush Yadav
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Pratyush Yadav @ 2021-09-02 18:55 UTC (permalink / raw)
  To: Vinod Koul
  Cc: Vignesh Raghavendra, Tomi Valkeinen, Laurent Pinchart,
	Nikhil Devshatwar, Paul Kocialkowski, Chunfeng Yun,
	Kishon Vijay Abraham I, Pratyush Yadav, Rob Herring, devicetree,
	linux-kernel, linux-phy

Hi,

This series adds support for Rx mode on Cadence DPHY driver. It has been
split off from [0] to facilitate easier merging. I have still kept the
version number to maintain continuity with the previous patches. This
series also includes conversion to YAML binding.

Tested on TI's J721E with OV5640 sensor.

[0] https://patchwork.linuxtv.org/project/linux-media/list/?series=5526&state=%2A&archive=both

Changes in v5:
- Based on Laurent's suggestion, add cdns_dphy_info which contains the
  phy_ops and cdns_dphy_tx_ops (renamed from cdns_dphy_ops). This lets us
  get rid of the phy ops wrappers.
- Move probe() and remove() into cdns_dphy_common_ops() since they can
  be used by both modes. Drop the check in power_on().
- Get the clocks in the tx ops probe to make sure they are mandatory for
  Tx mode but not for Rx mode.
- Use the new cdns_dphy_info to specify PHY ops.
- Re-order include in alphabetical order.
- Make bands const.
- Drop num_bands.
- Make i, lanes unsigned.
- Drop the maximum check in cdns_dphy_rx_get_band_ctrl(). Let the loop
  complete and return -EOPNOTSUPP when we reach the end.
- Drop the "rate < bands[i].min_rate" check since the bands are in
  ascending order.
- Move data_lane_ctrl to start of function and make it static const.
- Make clocks a required property based on the compatible.
- Use enum instead.

Changes in v4:
- Instead of having both Rx and Tx modes in the same driver data, keep
  them separate since the op selection is based on compatible now. For
  that reason, the cdns_dphy_driver_data struct is no longer needed.
- Rename ref_dphy_ops to tx_ref_dphy_ops to clarify their purpose.
- Drop submode checks in validate() hook.
- Drop the submode parts. Use a different compatible for the Rx ops.
- Make bands and num_bands static.
- Drop the submode patches. Use a different compatible for Rx mode DPHY
instead.

Changes in v3:
- Use a table to select the band.
- Use a table to poll the data lane ready bits.
- Multiply the DPHY HS clock rate by 2 to get the bit rate since the
  clock is DDR.
- Add Rob's R-by.

Changes in v2:
- Drop reg description.
- Add a description for each DPHY clock.
- Rename dphy@... to phy@... in example.
- Add Laurent's R-by.
- Re-order subject prefixes.
- Re-order subject prefixes.
- Add power-domain to the example.
- Add Laurent's R-by.
- Re-order subject prefixes.

Pratyush Yadav (6):
  phy: cdns-dphy: Prepare for Rx support
  phy: cdns-dphy: Add Rx support
  phy: dt-bindings: Convert Cadence DPHY binding to YAML
  phy: dt-bindings: cdns,dphy: make clocks optional for Rx mode
  phy: dt-bindings: cdns,dphy: add power-domains property
  phy: dt-bindings: cdns,dphy: add Rx DPHY compatible

 .../devicetree/bindings/phy/cdns,dphy.txt     |  20 -
 .../devicetree/bindings/phy/cdns,dphy.yaml    |  66 ++++
 drivers/phy/cadence/cdns-dphy.c               | 351 +++++++++++++++---
 3 files changed, 356 insertions(+), 81 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/phy/cdns,dphy.txt
 create mode 100644 Documentation/devicetree/bindings/phy/cdns,dphy.yaml

-- 
2.33.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v5 3/6] phy: dt-bindings: Convert Cadence DPHY binding to YAML
  2021-09-02 18:55 [PATCH v5 0/6] Rx mode support for Cadence DPHY Pratyush Yadav
@ 2021-09-02 18:55 ` Pratyush Yadav
  2021-09-02 18:55 ` [PATCH v5 4/6] phy: dt-bindings: cdns,dphy: make clocks optional for Rx mode Pratyush Yadav
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Pratyush Yadav @ 2021-09-02 18:55 UTC (permalink / raw)
  To: Vinod Koul
  Cc: Vignesh Raghavendra, Tomi Valkeinen, Laurent Pinchart,
	Nikhil Devshatwar, Paul Kocialkowski, Pratyush Yadav,
	Kishon Vijay Abraham I, Rob Herring, devicetree, linux-kernel,
	linux-phy

Convert Cadence DPHY binding to YAML.

Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Rob Herring <robh@kernel.org>

---

(no changes since v3)

Changes in v3:
- Add Rob's R-by.

Changes in v2:
- Drop reg description.
- Add a description for each DPHY clock.
- Rename dphy@... to phy@... in example.
- Add Laurent's R-by.
- Re-order subject prefixes.

 .../devicetree/bindings/phy/cdns,dphy.txt     | 20 --------
 .../devicetree/bindings/phy/cdns,dphy.yaml    | 51 +++++++++++++++++++
 2 files changed, 51 insertions(+), 20 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/phy/cdns,dphy.txt
 create mode 100644 Documentation/devicetree/bindings/phy/cdns,dphy.yaml

diff --git a/Documentation/devicetree/bindings/phy/cdns,dphy.txt b/Documentation/devicetree/bindings/phy/cdns,dphy.txt
deleted file mode 100644
index 1095bc4e72d9..000000000000
--- a/Documentation/devicetree/bindings/phy/cdns,dphy.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Cadence DPHY
-============
-
-Cadence DPHY block.
-
-Required properties:
-- compatible: should be set to "cdns,dphy".
-- reg: physical base address and length of the DPHY registers.
-- clocks: DPHY reference clocks.
-- clock-names: must contain "psm" and "pll_ref".
-- #phy-cells: must be set to 0.
-
-Example:
-	dphy0: dphy@fd0e0000{
-		compatible = "cdns,dphy";
-		reg = <0x0 0xfd0e0000 0x0 0x1000>;
-		clocks = <&psm_clk>, <&pll_ref_clk>;
-		clock-names = "psm", "pll_ref";
-		#phy-cells = <0>;
-	};
diff --git a/Documentation/devicetree/bindings/phy/cdns,dphy.yaml b/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
new file mode 100644
index 000000000000..b90a58773bf2
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/cdns,dphy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cadence DPHY Device Tree Bindings
+
+maintainers:
+  - Pratyush Yadav <p.yadav@ti.com>
+
+properties:
+  compatible:
+    items:
+      - const: cdns,dphy
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: PMA state machine clock
+      - description: PLL reference clock
+
+  clock-names:
+    items:
+      - const: psm
+      - const: pll_ref
+
+  "#phy-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - "#phy-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+
+    dphy0: phy@fd0e0000{
+        compatible = "cdns,dphy";
+        reg = <0xfd0e0000 0x1000>;
+        clocks = <&psm_clk>, <&pll_ref_clk>;
+        clock-names = "psm", "pll_ref";
+        #phy-cells = <0>;
+    };
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v5 4/6] phy: dt-bindings: cdns,dphy: make clocks optional for Rx mode
  2021-09-02 18:55 [PATCH v5 0/6] Rx mode support for Cadence DPHY Pratyush Yadav
  2021-09-02 18:55 ` [PATCH v5 3/6] phy: dt-bindings: Convert Cadence DPHY binding to YAML Pratyush Yadav
@ 2021-09-02 18:55 ` Pratyush Yadav
  2021-09-07 19:02   ` Rob Herring
  2021-10-06 23:57   ` Laurent Pinchart
  2021-09-02 18:55 ` [PATCH v5 5/6] phy: dt-bindings: cdns,dphy: add power-domains property Pratyush Yadav
  2021-09-02 18:55 ` [PATCH v5 6/6] phy: dt-bindings: cdns,dphy: add Rx DPHY compatible Pratyush Yadav
  3 siblings, 2 replies; 8+ messages in thread
From: Pratyush Yadav @ 2021-09-02 18:55 UTC (permalink / raw)
  To: Vinod Koul
  Cc: Vignesh Raghavendra, Tomi Valkeinen, Laurent Pinchart,
	Nikhil Devshatwar, Paul Kocialkowski, Pratyush Yadav,
	Kishon Vijay Abraham I, Rob Herring, devicetree, linux-kernel,
	linux-phy

The clocks are not used by the DPHY when used in Rx mode so make them
optional for it by using a conditional based on compatible.

Signed-off-by: Pratyush Yadav <p.yadav@ti.com>

---

Changes in v5:
- Make clocks a required property based on the compatible.

Changes in v3:
- Add Rob's Ack.

Changes in v2:
- Re-order subject prefixes.

 .../devicetree/bindings/phy/cdns,dphy.yaml          | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/phy/cdns,dphy.yaml b/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
index b90a58773bf2..558f110fda9e 100644
--- a/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
+++ b/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
@@ -33,10 +33,19 @@ properties:
 required:
   - compatible
   - reg
-  - clocks
-  - clock-names
   - "#phy-cells"
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: cdns,dphy
+    then:
+      required:
+        - clocks
+        - clock-names
+
 additionalProperties: false
 
 examples:
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v5 5/6] phy: dt-bindings: cdns,dphy: add power-domains property
  2021-09-02 18:55 [PATCH v5 0/6] Rx mode support for Cadence DPHY Pratyush Yadav
  2021-09-02 18:55 ` [PATCH v5 3/6] phy: dt-bindings: Convert Cadence DPHY binding to YAML Pratyush Yadav
  2021-09-02 18:55 ` [PATCH v5 4/6] phy: dt-bindings: cdns,dphy: make clocks optional for Rx mode Pratyush Yadav
@ 2021-09-02 18:55 ` Pratyush Yadav
  2021-09-02 18:55 ` [PATCH v5 6/6] phy: dt-bindings: cdns,dphy: add Rx DPHY compatible Pratyush Yadav
  3 siblings, 0 replies; 8+ messages in thread
From: Pratyush Yadav @ 2021-09-02 18:55 UTC (permalink / raw)
  To: Vinod Koul
  Cc: Vignesh Raghavendra, Tomi Valkeinen, Laurent Pinchart,
	Nikhil Devshatwar, Paul Kocialkowski, Pratyush Yadav,
	Kishon Vijay Abraham I, Rob Herring, devicetree, linux-kernel,
	linux-phy

This property is needed on TI platforms to enable the PD of the DPHY
before it can be used.

Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Rob Herring <robh@kernel.org>

---

(no changes since v3)

Changes in v3:
- Add Rob's Ack.

Changes in v2:
- Add power-domain to the example.
- Add Laurent's R-by.
- Re-order subject prefixes.

 Documentation/devicetree/bindings/phy/cdns,dphy.yaml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/phy/cdns,dphy.yaml b/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
index 558f110fda9e..5293c2771b7f 100644
--- a/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
+++ b/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
@@ -30,6 +30,9 @@ properties:
   "#phy-cells":
     const: 0
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
@@ -50,11 +53,13 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/soc/ti,sci_pm_domain.h>
 
     dphy0: phy@fd0e0000{
         compatible = "cdns,dphy";
         reg = <0xfd0e0000 0x1000>;
         clocks = <&psm_clk>, <&pll_ref_clk>;
         clock-names = "psm", "pll_ref";
+        power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
         #phy-cells = <0>;
     };
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v5 6/6] phy: dt-bindings: cdns,dphy: add Rx DPHY compatible
  2021-09-02 18:55 [PATCH v5 0/6] Rx mode support for Cadence DPHY Pratyush Yadav
                   ` (2 preceding siblings ...)
  2021-09-02 18:55 ` [PATCH v5 5/6] phy: dt-bindings: cdns,dphy: add power-domains property Pratyush Yadav
@ 2021-09-02 18:55 ` Pratyush Yadav
  2021-09-07 19:03   ` Rob Herring
  3 siblings, 1 reply; 8+ messages in thread
From: Pratyush Yadav @ 2021-09-02 18:55 UTC (permalink / raw)
  To: Vinod Koul
  Cc: Vignesh Raghavendra, Tomi Valkeinen, Laurent Pinchart,
	Nikhil Devshatwar, Paul Kocialkowski, Pratyush Yadav,
	Kishon Vijay Abraham I, Rob Herring, devicetree, linux-kernel,
	linux-phy

The DPHY is treated to be in Tx mode by default. Add a new compatible
for Rx mode DPHYs.

Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

---

Changes in v5:
- Use enum instead.
- Add Laurent's R-by.

Changes in v4:
- New in v4.

 Documentation/devicetree/bindings/phy/cdns,dphy.yaml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/phy/cdns,dphy.yaml b/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
index 5293c2771b7f..2d86d9e860ba 100644
--- a/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
+++ b/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
@@ -11,8 +11,9 @@ maintainers:
 
 properties:
   compatible:
-    items:
-      - const: cdns,dphy
+    enum:
+      - cdns,dphy
+      - cdns,dphy-rx
 
   reg:
     maxItems: 1
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v5 4/6] phy: dt-bindings: cdns,dphy: make clocks optional for Rx mode
  2021-09-02 18:55 ` [PATCH v5 4/6] phy: dt-bindings: cdns,dphy: make clocks optional for Rx mode Pratyush Yadav
@ 2021-09-07 19:02   ` Rob Herring
  2021-10-06 23:57   ` Laurent Pinchart
  1 sibling, 0 replies; 8+ messages in thread
From: Rob Herring @ 2021-09-07 19:02 UTC (permalink / raw)
  To: Pratyush Yadav
  Cc: Laurent Pinchart, Nikhil Devshatwar, Vignesh Raghavendra,
	Rob Herring, devicetree, Vinod Koul, Paul Kocialkowski,
	Tomi Valkeinen, linux-kernel, linux-phy, Kishon Vijay Abraham I

On Fri, 03 Sep 2021 00:25:41 +0530, Pratyush Yadav wrote:
> The clocks are not used by the DPHY when used in Rx mode so make them
> optional for it by using a conditional based on compatible.
> 
> Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
> 
> ---
> 
> Changes in v5:
> - Make clocks a required property based on the compatible.
> 
> Changes in v3:
> - Add Rob's Ack.
> 
> Changes in v2:
> - Re-order subject prefixes.
> 
>  .../devicetree/bindings/phy/cdns,dphy.yaml          | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 

Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v5 6/6] phy: dt-bindings: cdns,dphy: add Rx DPHY compatible
  2021-09-02 18:55 ` [PATCH v5 6/6] phy: dt-bindings: cdns,dphy: add Rx DPHY compatible Pratyush Yadav
@ 2021-09-07 19:03   ` Rob Herring
  0 siblings, 0 replies; 8+ messages in thread
From: Rob Herring @ 2021-09-07 19:03 UTC (permalink / raw)
  To: Pratyush Yadav
  Cc: devicetree, linux-phy, Tomi Valkeinen, Nikhil Devshatwar,
	Paul Kocialkowski, Rob Herring, Kishon Vijay Abraham I,
	linux-kernel, Vinod Koul, Vignesh Raghavendra, Laurent Pinchart

On Fri, 03 Sep 2021 00:25:43 +0530, Pratyush Yadav wrote:
> The DPHY is treated to be in Tx mode by default. Add a new compatible
> for Rx mode DPHYs.
> 
> Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> 
> ---
> 
> Changes in v5:
> - Use enum instead.
> - Add Laurent's R-by.
> 
> Changes in v4:
> - New in v4.
> 
>  Documentation/devicetree/bindings/phy/cdns,dphy.yaml | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v5 4/6] phy: dt-bindings: cdns,dphy: make clocks optional for Rx mode
  2021-09-02 18:55 ` [PATCH v5 4/6] phy: dt-bindings: cdns,dphy: make clocks optional for Rx mode Pratyush Yadav
  2021-09-07 19:02   ` Rob Herring
@ 2021-10-06 23:57   ` Laurent Pinchart
  1 sibling, 0 replies; 8+ messages in thread
From: Laurent Pinchart @ 2021-10-06 23:57 UTC (permalink / raw)
  To: Pratyush Yadav
  Cc: Vinod Koul, Vignesh Raghavendra, Tomi Valkeinen,
	Nikhil Devshatwar, Paul Kocialkowski, Kishon Vijay Abraham I,
	Rob Herring, devicetree, linux-kernel, linux-phy

Hi Pratyush,

Thank you for the patch.

On Fri, Sep 03, 2021 at 12:25:41AM +0530, Pratyush Yadav wrote:
> The clocks are not used by the DPHY when used in Rx mode so make them
> optional for it by using a conditional based on compatible.
> 
> Signed-off-by: Pratyush Yadav <p.yadav@ti.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
> 
> Changes in v5:
> - Make clocks a required property based on the compatible.
> 
> Changes in v3:
> - Add Rob's Ack.
> 
> Changes in v2:
> - Re-order subject prefixes.
> 
>  .../devicetree/bindings/phy/cdns,dphy.yaml          | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/phy/cdns,dphy.yaml b/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
> index b90a58773bf2..558f110fda9e 100644
> --- a/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
> +++ b/Documentation/devicetree/bindings/phy/cdns,dphy.yaml
> @@ -33,10 +33,19 @@ properties:
>  required:
>    - compatible
>    - reg
> -  - clocks
> -  - clock-names
>    - "#phy-cells"
>  
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: cdns,dphy
> +    then:
> +      required:
> +        - clocks
> +        - clock-names
> +
>  additionalProperties: false
>  
>  examples:

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-10-06 23:57 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-09-02 18:55 [PATCH v5 0/6] Rx mode support for Cadence DPHY Pratyush Yadav
2021-09-02 18:55 ` [PATCH v5 3/6] phy: dt-bindings: Convert Cadence DPHY binding to YAML Pratyush Yadav
2021-09-02 18:55 ` [PATCH v5 4/6] phy: dt-bindings: cdns,dphy: make clocks optional for Rx mode Pratyush Yadav
2021-09-07 19:02   ` Rob Herring
2021-10-06 23:57   ` Laurent Pinchart
2021-09-02 18:55 ` [PATCH v5 5/6] phy: dt-bindings: cdns,dphy: add power-domains property Pratyush Yadav
2021-09-02 18:55 ` [PATCH v5 6/6] phy: dt-bindings: cdns,dphy: add Rx DPHY compatible Pratyush Yadav
2021-09-07 19:03   ` Rob Herring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).