* [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).