* [PATCH v5 0/5] RK3568 PCIe V3 support
@ 2022-08-25 19:38 ` Frank Wunderlich
0 siblings, 0 replies; 76+ messages in thread
From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw)
To: linux-rockchip
Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring,
Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao,
Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin,
linux-phy, devicetree, linux-arm-kernel, linux-kernel
From: Frank Wunderlich <frank-w@public-files.de>
This series adds Rockchip PCIe V3 support found on rk3568 SOC.
Compared to PCIeV2 which uses the Naneng combphy, PCIe v3 uses a dedicated
PCI-phy.
Frank Wunderlich (4):
dt-bindings: phy: rockchip: add PCIe v3 phy
dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf
arm64: dts: rockchip: rk3568: Add PCIe v3 nodes
arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro
Shawn Lin (1):
phy: rockchip: Support PCIe v3
.../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++
.../devicetree/bindings/soc/rockchip/grf.yaml | 3 +
.../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 +++++++
arch/arm64/boot/dts/rockchip/rk3568.dtsi | 122 +++++++
drivers/phy/rockchip/Kconfig | 9 +
drivers/phy/rockchip/Makefile | 1 +
.../phy/rockchip/phy-rockchip-snps-pcie3.c | 319 ++++++++++++++++++
include/linux/phy/pcie.h | 12 +
8 files changed, 663 insertions(+)
create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml
create mode 100644 drivers/phy/rockchip/phy-rockchip-snps-pcie3.c
create mode 100644 include/linux/phy/pcie.h
--
2.34.1
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 76+ messages in thread* [PATCH v5 0/5] RK3568 PCIe V3 support @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Frank Wunderlich <frank-w@public-files.de> This series adds Rockchip PCIe V3 support found on rk3568 SOC. Compared to PCIeV2 which uses the Naneng combphy, PCIe v3 uses a dedicated PCI-phy. Frank Wunderlich (4): dt-bindings: phy: rockchip: add PCIe v3 phy dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf arm64: dts: rockchip: rk3568: Add PCIe v3 nodes arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro Shawn Lin (1): phy: rockchip: Support PCIe v3 .../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++ .../devicetree/bindings/soc/rockchip/grf.yaml | 3 + .../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 +++++++ arch/arm64/boot/dts/rockchip/rk3568.dtsi | 122 +++++++ drivers/phy/rockchip/Kconfig | 9 + drivers/phy/rockchip/Makefile | 1 + .../phy/rockchip/phy-rockchip-snps-pcie3.c | 319 ++++++++++++++++++ include/linux/phy/pcie.h | 12 + 8 files changed, 663 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml create mode 100644 drivers/phy/rockchip/phy-rockchip-snps-pcie3.c create mode 100644 include/linux/phy/pcie.h -- 2.34.1 ^ permalink raw reply [flat|nested] 76+ messages in thread
* [PATCH v5 0/5] RK3568 PCIe V3 support @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Frank Wunderlich <frank-w@public-files.de> This series adds Rockchip PCIe V3 support found on rk3568 SOC. Compared to PCIeV2 which uses the Naneng combphy, PCIe v3 uses a dedicated PCI-phy. Frank Wunderlich (4): dt-bindings: phy: rockchip: add PCIe v3 phy dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf arm64: dts: rockchip: rk3568: Add PCIe v3 nodes arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro Shawn Lin (1): phy: rockchip: Support PCIe v3 .../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++ .../devicetree/bindings/soc/rockchip/grf.yaml | 3 + .../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 +++++++ arch/arm64/boot/dts/rockchip/rk3568.dtsi | 122 +++++++ drivers/phy/rockchip/Kconfig | 9 + drivers/phy/rockchip/Makefile | 1 + .../phy/rockchip/phy-rockchip-snps-pcie3.c | 319 ++++++++++++++++++ include/linux/phy/pcie.h | 12 + 8 files changed, 663 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml create mode 100644 drivers/phy/rockchip/phy-rockchip-snps-pcie3.c create mode 100644 include/linux/phy/pcie.h -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* [PATCH v5 0/5] RK3568 PCIe V3 support @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Frank Wunderlich <frank-w@public-files.de> This series adds Rockchip PCIe V3 support found on rk3568 SOC. Compared to PCIeV2 which uses the Naneng combphy, PCIe v3 uses a dedicated PCI-phy. Frank Wunderlich (4): dt-bindings: phy: rockchip: add PCIe v3 phy dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf arm64: dts: rockchip: rk3568: Add PCIe v3 nodes arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro Shawn Lin (1): phy: rockchip: Support PCIe v3 .../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++ .../devicetree/bindings/soc/rockchip/grf.yaml | 3 + .../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 +++++++ arch/arm64/boot/dts/rockchip/rk3568.dtsi | 122 +++++++ drivers/phy/rockchip/Kconfig | 9 + drivers/phy/rockchip/Makefile | 1 + .../phy/rockchip/phy-rockchip-snps-pcie3.c | 319 ++++++++++++++++++ include/linux/phy/pcie.h | 12 + 8 files changed, 663 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml create mode 100644 drivers/phy/rockchip/phy-rockchip-snps-pcie3.c create mode 100644 include/linux/phy/pcie.h -- 2.34.1 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy 2022-08-25 19:38 ` Frank Wunderlich (?) (?) @ 2022-08-25 19:38 ` Frank Wunderlich -1 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski From: Frank Wunderlich <frank-w@public-files.de> Add a new binding file for Rockchip PCIe v3 phy driver. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- v4: - add reviewed-by - remove minitems for clock-names as i have static list to fix error - fix reg error by using 32-bit adressing in binding example - change lane-map to u32 data-lanes - tried to move data-lanes to phy-provider https://github.com/frank-w/dt-schema/blob/main/dtschema/schemas/phy/phy-provider.yaml#L17 cloned and installed via pip install -e <local path> verified with pip show, but phy-privider seems not to be applied v3: - drop quotes - drop rk3588 - make clockcount fixed to 3 - full path for binding header file - drop phy-mode and its header and add lane-map v2: dt-bindings: rename yaml for PCIe v3 rockchip-pcie3-phy.yaml => rockchip,pcie3-phy.yaml changes in pcie3 phy yaml - change clock names to ordered const list - extend pcie30-phymode description - add phy-cells to required properties - drop unevaluatedProperties - example with 1 clock each line - use default property instead of text describing it - update license --- .../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml diff --git a/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml new file mode 100644 index 000000000000..9f2d8d2cc7a5 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/rockchip,pcie3-phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Rockchip PCIe v3 phy + +maintainers: + - Heiko Stuebner <heiko@sntech.de> + +properties: + compatible: + enum: + - rockchip,rk3568-pcie3-phy + + reg: + maxItems: 1 + + clocks: + minItems: 3 + maxItems: 3 + + clock-names: + items: + - const: refclk_m + - const: refclk_n + - const: pclk + + data-lanes: + description: which lanes (by position) should be mapped to which + controller (value). 0 means lane disabled, higher value means used. + (controller-number +1 ) + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 2 + maxItems: 16 + items: + minimum: 0 + maximum: 16 + + "#phy-cells": + const: 0 + + resets: + maxItems: 1 + + reset-names: + const: phy + + rockchip,phy-grf: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to the syscon managing the phy "general register files" + + rockchip,pipe-grf: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to the syscon managing the pipe "general register files" + +required: + - compatible + - reg + - rockchip,phy-grf + - "#phy-cells" + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/rk3568-cru.h> + pcie30phy: phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0xfe8c0000 0x20000>; + #phy-cells = <0>; + clocks = <&pmucru CLK_PCIE30PHY_REF_M>, + <&pmucru CLK_PCIE30PHY_REF_N>, + <&cru PCLK_PCIE30PHY>; + clock-names = "refclk_m", "refclk_n", "pclk"; + resets = <&cru SRST_PCIE30PHY>; + reset-names = "phy"; + rockchip,phy-grf = <&pcie30_phy_grf>; + }; -- 2.34.1 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski From: Frank Wunderlich <frank-w@public-files.de> Add a new binding file for Rockchip PCIe v3 phy driver. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- v4: - add reviewed-by - remove minitems for clock-names as i have static list to fix error - fix reg error by using 32-bit adressing in binding example - change lane-map to u32 data-lanes - tried to move data-lanes to phy-provider https://github.com/frank-w/dt-schema/blob/main/dtschema/schemas/phy/phy-provider.yaml#L17 cloned and installed via pip install -e <local path> verified with pip show, but phy-privider seems not to be applied v3: - drop quotes - drop rk3588 - make clockcount fixed to 3 - full path for binding header file - drop phy-mode and its header and add lane-map v2: dt-bindings: rename yaml for PCIe v3 rockchip-pcie3-phy.yaml => rockchip,pcie3-phy.yaml changes in pcie3 phy yaml - change clock names to ordered const list - extend pcie30-phymode description - add phy-cells to required properties - drop unevaluatedProperties - example with 1 clock each line - use default property instead of text describing it - update license --- .../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml diff --git a/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml new file mode 100644 index 000000000000..9f2d8d2cc7a5 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/rockchip,pcie3-phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Rockchip PCIe v3 phy + +maintainers: + - Heiko Stuebner <heiko@sntech.de> + +properties: + compatible: + enum: + - rockchip,rk3568-pcie3-phy + + reg: + maxItems: 1 + + clocks: + minItems: 3 + maxItems: 3 + + clock-names: + items: + - const: refclk_m + - const: refclk_n + - const: pclk + + data-lanes: + description: which lanes (by position) should be mapped to which + controller (value). 0 means lane disabled, higher value means used. + (controller-number +1 ) + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 2 + maxItems: 16 + items: + minimum: 0 + maximum: 16 + + "#phy-cells": + const: 0 + + resets: + maxItems: 1 + + reset-names: + const: phy + + rockchip,phy-grf: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to the syscon managing the phy "general register files" + + rockchip,pipe-grf: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to the syscon managing the pipe "general register files" + +required: + - compatible + - reg + - rockchip,phy-grf + - "#phy-cells" + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/rk3568-cru.h> + pcie30phy: phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0xfe8c0000 0x20000>; + #phy-cells = <0>; + clocks = <&pmucru CLK_PCIE30PHY_REF_M>, + <&pmucru CLK_PCIE30PHY_REF_N>, + <&cru PCLK_PCIE30PHY>; + clock-names = "refclk_m", "refclk_n", "pclk"; + resets = <&cru SRST_PCIE30PHY>; + reset-names = "phy"; + rockchip,phy-grf = <&pcie30_phy_grf>; + }; -- 2.34.1 ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski From: Frank Wunderlich <frank-w@public-files.de> Add a new binding file for Rockchip PCIe v3 phy driver. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- v4: - add reviewed-by - remove minitems for clock-names as i have static list to fix error - fix reg error by using 32-bit adressing in binding example - change lane-map to u32 data-lanes - tried to move data-lanes to phy-provider https://github.com/frank-w/dt-schema/blob/main/dtschema/schemas/phy/phy-provider.yaml#L17 cloned and installed via pip install -e <local path> verified with pip show, but phy-privider seems not to be applied v3: - drop quotes - drop rk3588 - make clockcount fixed to 3 - full path for binding header file - drop phy-mode and its header and add lane-map v2: dt-bindings: rename yaml for PCIe v3 rockchip-pcie3-phy.yaml => rockchip,pcie3-phy.yaml changes in pcie3 phy yaml - change clock names to ordered const list - extend pcie30-phymode description - add phy-cells to required properties - drop unevaluatedProperties - example with 1 clock each line - use default property instead of text describing it - update license --- .../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml diff --git a/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml new file mode 100644 index 000000000000..9f2d8d2cc7a5 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/rockchip,pcie3-phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Rockchip PCIe v3 phy + +maintainers: + - Heiko Stuebner <heiko@sntech.de> + +properties: + compatible: + enum: + - rockchip,rk3568-pcie3-phy + + reg: + maxItems: 1 + + clocks: + minItems: 3 + maxItems: 3 + + clock-names: + items: + - const: refclk_m + - const: refclk_n + - const: pclk + + data-lanes: + description: which lanes (by position) should be mapped to which + controller (value). 0 means lane disabled, higher value means used. + (controller-number +1 ) + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 2 + maxItems: 16 + items: + minimum: 0 + maximum: 16 + + "#phy-cells": + const: 0 + + resets: + maxItems: 1 + + reset-names: + const: phy + + rockchip,phy-grf: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to the syscon managing the phy "general register files" + + rockchip,pipe-grf: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to the syscon managing the pipe "general register files" + +required: + - compatible + - reg + - rockchip,phy-grf + - "#phy-cells" + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/rk3568-cru.h> + pcie30phy: phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0xfe8c0000 0x20000>; + #phy-cells = <0>; + clocks = <&pmucru CLK_PCIE30PHY_REF_M>, + <&pmucru CLK_PCIE30PHY_REF_N>, + <&cru PCLK_PCIE30PHY>; + clock-names = "refclk_m", "refclk_n", "pclk"; + resets = <&cru SRST_PCIE30PHY>; + reset-names = "phy"; + rockchip,phy-grf = <&pcie30_phy_grf>; + }; -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski From: Frank Wunderlich <frank-w@public-files.de> Add a new binding file for Rockchip PCIe v3 phy driver. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- v4: - add reviewed-by - remove minitems for clock-names as i have static list to fix error - fix reg error by using 32-bit adressing in binding example - change lane-map to u32 data-lanes - tried to move data-lanes to phy-provider https://github.com/frank-w/dt-schema/blob/main/dtschema/schemas/phy/phy-provider.yaml#L17 cloned and installed via pip install -e <local path> verified with pip show, but phy-privider seems not to be applied v3: - drop quotes - drop rk3588 - make clockcount fixed to 3 - full path for binding header file - drop phy-mode and its header and add lane-map v2: dt-bindings: rename yaml for PCIe v3 rockchip-pcie3-phy.yaml => rockchip,pcie3-phy.yaml changes in pcie3 phy yaml - change clock names to ordered const list - extend pcie30-phymode description - add phy-cells to required properties - drop unevaluatedProperties - example with 1 clock each line - use default property instead of text describing it - update license --- .../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml diff --git a/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml new file mode 100644 index 000000000000..9f2d8d2cc7a5 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/rockchip,pcie3-phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Rockchip PCIe v3 phy + +maintainers: + - Heiko Stuebner <heiko@sntech.de> + +properties: + compatible: + enum: + - rockchip,rk3568-pcie3-phy + + reg: + maxItems: 1 + + clocks: + minItems: 3 + maxItems: 3 + + clock-names: + items: + - const: refclk_m + - const: refclk_n + - const: pclk + + data-lanes: + description: which lanes (by position) should be mapped to which + controller (value). 0 means lane disabled, higher value means used. + (controller-number +1 ) + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 2 + maxItems: 16 + items: + minimum: 0 + maximum: 16 + + "#phy-cells": + const: 0 + + resets: + maxItems: 1 + + reset-names: + const: phy + + rockchip,phy-grf: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to the syscon managing the phy "general register files" + + rockchip,pipe-grf: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to the syscon managing the pipe "general register files" + +required: + - compatible + - reg + - rockchip,phy-grf + - "#phy-cells" + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/rk3568-cru.h> + pcie30phy: phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0xfe8c0000 0x20000>; + #phy-cells = <0>; + clocks = <&pmucru CLK_PCIE30PHY_REF_M>, + <&pmucru CLK_PCIE30PHY_REF_N>, + <&cru PCLK_PCIE30PHY>; + clock-names = "refclk_m", "refclk_n", "pclk"; + resets = <&cru SRST_PCIE30PHY>; + reset-names = "phy"; + rockchip,phy-grf = <&pcie30_phy_grf>; + }; -- 2.34.1 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply related [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy 2022-08-25 19:38 ` Frank Wunderlich (?) (?) @ 2022-09-04 15:06 ` Vinod Koul -1 siblings, 0 replies; 76+ messages in thread From: Vinod Koul @ 2022-09-04 15:06 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On 25-08-22, 21:38, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add a new binding file for Rockchip PCIe v3 phy driver. Applied, thanks -- ~Vinod -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-09-04 15:06 ` Vinod Koul 0 siblings, 0 replies; 76+ messages in thread From: Vinod Koul @ 2022-09-04 15:06 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On 25-08-22, 21:38, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add a new binding file for Rockchip PCIe v3 phy driver. Applied, thanks -- ~Vinod ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-09-04 15:06 ` Vinod Koul 0 siblings, 0 replies; 76+ messages in thread From: Vinod Koul @ 2022-09-04 15:06 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On 25-08-22, 21:38, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add a new binding file for Rockchip PCIe v3 phy driver. Applied, thanks -- ~Vinod _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-09-04 15:06 ` Vinod Koul 0 siblings, 0 replies; 76+ messages in thread From: Vinod Koul @ 2022-09-04 15:06 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On 25-08-22, 21:38, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add a new binding file for Rockchip PCIe v3 phy driver. Applied, thanks -- ~Vinod _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy 2022-08-25 19:38 ` Frank Wunderlich (?) (?) @ 2022-10-04 15:09 ` Rob Herring -1 siblings, 0 replies; 76+ messages in thread From: Rob Herring @ 2022-10-04 15:09 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add a new binding file for Rockchip PCIe v3 phy driver. > > Signed-off-by: Frank Wunderlich <frank-w@public-files.de> > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > --- > v4: > - add reviewed-by > - remove minitems for clock-names as i have static list to fix error > - fix reg error by using 32-bit adressing in binding example > - change lane-map to u32 data-lanes > - tried to move data-lanes to phy-provider > https://github.com/frank-w/dt-schema/blob/main/dtschema/schemas/phy/phy-provider.yaml#L17 > cloned and installed via pip install -e <local path> > verified with pip show, but phy-privider seems not to be applied > > v3: > - drop quotes > - drop rk3588 > - make clockcount fixed to 3 > - full path for binding header file > - drop phy-mode and its header and add lane-map > > v2: > dt-bindings: rename yaml for PCIe v3 > rockchip-pcie3-phy.yaml => rockchip,pcie3-phy.yaml > > changes in pcie3 phy yaml > - change clock names to ordered const list > - extend pcie30-phymode description > - add phy-cells to required properties > - drop unevaluatedProperties > - example with 1 clock each line > - use default property instead of text describing it > - update license > --- > .../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++++++++++++++++ > 1 file changed, 80 insertions(+) > create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > > diff --git a/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > new file mode 100644 > index 000000000000..9f2d8d2cc7a5 > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/phy/rockchip,pcie3-phy.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Rockchip PCIe v3 phy > + > +maintainers: > + - Heiko Stuebner <heiko@sntech.de> > + > +properties: > + compatible: > + enum: > + - rockchip,rk3568-pcie3-phy The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix adding it here or removing from the driver. Are they not compatible with each other? Rob -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-04 15:09 ` Rob Herring 0 siblings, 0 replies; 76+ messages in thread From: Rob Herring @ 2022-10-04 15:09 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add a new binding file for Rockchip PCIe v3 phy driver. > > Signed-off-by: Frank Wunderlich <frank-w@public-files.de> > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > --- > v4: > - add reviewed-by > - remove minitems for clock-names as i have static list to fix error > - fix reg error by using 32-bit adressing in binding example > - change lane-map to u32 data-lanes > - tried to move data-lanes to phy-provider > https://github.com/frank-w/dt-schema/blob/main/dtschema/schemas/phy/phy-provider.yaml#L17 > cloned and installed via pip install -e <local path> > verified with pip show, but phy-privider seems not to be applied > > v3: > - drop quotes > - drop rk3588 > - make clockcount fixed to 3 > - full path for binding header file > - drop phy-mode and its header and add lane-map > > v2: > dt-bindings: rename yaml for PCIe v3 > rockchip-pcie3-phy.yaml => rockchip,pcie3-phy.yaml > > changes in pcie3 phy yaml > - change clock names to ordered const list > - extend pcie30-phymode description > - add phy-cells to required properties > - drop unevaluatedProperties > - example with 1 clock each line > - use default property instead of text describing it > - update license > --- > .../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++++++++++++++++ > 1 file changed, 80 insertions(+) > create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > > diff --git a/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > new file mode 100644 > index 000000000000..9f2d8d2cc7a5 > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/phy/rockchip,pcie3-phy.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Rockchip PCIe v3 phy > + > +maintainers: > + - Heiko Stuebner <heiko@sntech.de> > + > +properties: > + compatible: > + enum: > + - rockchip,rk3568-pcie3-phy The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix adding it here or removing from the driver. Are they not compatible with each other? Rob ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-04 15:09 ` Rob Herring 0 siblings, 0 replies; 76+ messages in thread From: Rob Herring @ 2022-10-04 15:09 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add a new binding file for Rockchip PCIe v3 phy driver. > > Signed-off-by: Frank Wunderlich <frank-w@public-files.de> > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > --- > v4: > - add reviewed-by > - remove minitems for clock-names as i have static list to fix error > - fix reg error by using 32-bit adressing in binding example > - change lane-map to u32 data-lanes > - tried to move data-lanes to phy-provider > https://github.com/frank-w/dt-schema/blob/main/dtschema/schemas/phy/phy-provider.yaml#L17 > cloned and installed via pip install -e <local path> > verified with pip show, but phy-privider seems not to be applied > > v3: > - drop quotes > - drop rk3588 > - make clockcount fixed to 3 > - full path for binding header file > - drop phy-mode and its header and add lane-map > > v2: > dt-bindings: rename yaml for PCIe v3 > rockchip-pcie3-phy.yaml => rockchip,pcie3-phy.yaml > > changes in pcie3 phy yaml > - change clock names to ordered const list > - extend pcie30-phymode description > - add phy-cells to required properties > - drop unevaluatedProperties > - example with 1 clock each line > - use default property instead of text describing it > - update license > --- > .../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++++++++++++++++ > 1 file changed, 80 insertions(+) > create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > > diff --git a/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > new file mode 100644 > index 000000000000..9f2d8d2cc7a5 > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/phy/rockchip,pcie3-phy.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Rockchip PCIe v3 phy > + > +maintainers: > + - Heiko Stuebner <heiko@sntech.de> > + > +properties: > + compatible: > + enum: > + - rockchip,rk3568-pcie3-phy The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix adding it here or removing from the driver. Are they not compatible with each other? Rob _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-04 15:09 ` Rob Herring 0 siblings, 0 replies; 76+ messages in thread From: Rob Herring @ 2022-10-04 15:09 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add a new binding file for Rockchip PCIe v3 phy driver. > > Signed-off-by: Frank Wunderlich <frank-w@public-files.de> > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > --- > v4: > - add reviewed-by > - remove minitems for clock-names as i have static list to fix error > - fix reg error by using 32-bit adressing in binding example > - change lane-map to u32 data-lanes > - tried to move data-lanes to phy-provider > https://github.com/frank-w/dt-schema/blob/main/dtschema/schemas/phy/phy-provider.yaml#L17 > cloned and installed via pip install -e <local path> > verified with pip show, but phy-privider seems not to be applied > > v3: > - drop quotes > - drop rk3588 > - make clockcount fixed to 3 > - full path for binding header file > - drop phy-mode and its header and add lane-map > > v2: > dt-bindings: rename yaml for PCIe v3 > rockchip-pcie3-phy.yaml => rockchip,pcie3-phy.yaml > > changes in pcie3 phy yaml > - change clock names to ordered const list > - extend pcie30-phymode description > - add phy-cells to required properties > - drop unevaluatedProperties > - example with 1 clock each line > - use default property instead of text describing it > - update license > --- > .../bindings/phy/rockchip,pcie3-phy.yaml | 80 +++++++++++++++++++ > 1 file changed, 80 insertions(+) > create mode 100644 Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > > diff --git a/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > new file mode 100644 > index 000000000000..9f2d8d2cc7a5 > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/rockchip,pcie3-phy.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/phy/rockchip,pcie3-phy.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Rockchip PCIe v3 phy > + > +maintainers: > + - Heiko Stuebner <heiko@sntech.de> > + > +properties: > + compatible: > + enum: > + - rockchip,rk3568-pcie3-phy The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix adding it here or removing from the driver. Are they not compatible with each other? Rob _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy 2022-10-04 15:09 ` Rob Herring (?) (?) @ 2022-10-04 15:19 ` Frank Wunderlich -1 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-10-04 15:19 UTC (permalink / raw) To: Rob Herring Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: >On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: >> From: Frank Wunderlich <frank-w@public-files.de> >> +properties: >> + compatible: >> + enum: >> + - rockchip,rk3568-pcie3-phy > >The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix >adding it here or removing from the driver. Are they not compatible with >each other? Hi, Right, original driver has rk3588 support,but we can't test it. Initialization and lane-mapping (bifurcation) was bit different. So we wanted to upstream rk3568 first (but have not removed this part from driver). I see that someone added rk3588 basic support and if he can test rk3588 i can send compatible for it. regards Frank -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-04 15:19 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-10-04 15:19 UTC (permalink / raw) To: Rob Herring Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: >On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: >> From: Frank Wunderlich <frank-w@public-files.de> >> +properties: >> + compatible: >> + enum: >> + - rockchip,rk3568-pcie3-phy > >The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix >adding it here or removing from the driver. Are they not compatible with >each other? Hi, Right, original driver has rk3588 support,but we can't test it. Initialization and lane-mapping (bifurcation) was bit different. So we wanted to upstream rk3568 first (but have not removed this part from driver). I see that someone added rk3588 basic support and if he can test rk3588 i can send compatible for it. regards Frank ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-04 15:19 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-10-04 15:19 UTC (permalink / raw) To: Rob Herring Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: >On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: >> From: Frank Wunderlich <frank-w@public-files.de> >> +properties: >> + compatible: >> + enum: >> + - rockchip,rk3568-pcie3-phy > >The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix >adding it here or removing from the driver. Are they not compatible with >each other? Hi, Right, original driver has rk3588 support,but we can't test it. Initialization and lane-mapping (bifurcation) was bit different. So we wanted to upstream rk3568 first (but have not removed this part from driver). I see that someone added rk3588 basic support and if he can test rk3588 i can send compatible for it. regards Frank _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-04 15:19 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-10-04 15:19 UTC (permalink / raw) To: Rob Herring Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: >On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: >> From: Frank Wunderlich <frank-w@public-files.de> >> +properties: >> + compatible: >> + enum: >> + - rockchip,rk3568-pcie3-phy > >The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix >adding it here or removing from the driver. Are they not compatible with >each other? Hi, Right, original driver has rk3588 support,but we can't test it. Initialization and lane-mapping (bifurcation) was bit different. So we wanted to upstream rk3568 first (but have not removed this part from driver). I see that someone added rk3588 basic support and if he can test rk3588 i can send compatible for it. regards Frank _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy 2022-10-04 15:19 ` Frank Wunderlich (?) (?) @ 2022-10-04 20:57 ` Sebastian Reichel -1 siblings, 0 replies; 76+ messages in thread From: Sebastian Reichel @ 2022-10-04 20:57 UTC (permalink / raw) To: Frank Wunderlich Cc: Rob Herring, linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski [-- Attachment #1.1: Type: text/plain, Size: 1140 bytes --] Hi, On Tue, Oct 04, 2022 at 05:19:11PM +0200, Frank Wunderlich wrote: > Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: > >On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: > >> From: Frank Wunderlich <frank-w@public-files.de> > > >> +properties: > >> + compatible: > >> + enum: > >> + - rockchip,rk3568-pcie3-phy > > > >The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix > >adding it here or removing from the driver. Are they not compatible with > >each other? > > Right, original driver has rk3588 support,but we can't test it. > Initialization and lane-mapping (bifurcation) was bit different. > So we wanted to upstream rk3568 first (but have not removed this > part from driver). > > I see that someone added rk3588 basic support and if he can test > rk3588 i can send compatible for it. Basic rk3588 support is still WIP. At the moment patches for the CRU are still pending as well as base DT. I hope to land them for v6.2 (so next merge window). At the same time I don't think PCIe support is realistic before v6.3. -- Sebastian [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] [-- Attachment #2: Type: text/plain, Size: 112 bytes --] -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-04 20:57 ` Sebastian Reichel 0 siblings, 0 replies; 76+ messages in thread From: Sebastian Reichel @ 2022-10-04 20:57 UTC (permalink / raw) To: Frank Wunderlich Cc: Rob Herring, linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski [-- Attachment #1: Type: text/plain, Size: 1140 bytes --] Hi, On Tue, Oct 04, 2022 at 05:19:11PM +0200, Frank Wunderlich wrote: > Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: > >On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: > >> From: Frank Wunderlich <frank-w@public-files.de> > > >> +properties: > >> + compatible: > >> + enum: > >> + - rockchip,rk3568-pcie3-phy > > > >The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix > >adding it here or removing from the driver. Are they not compatible with > >each other? > > Right, original driver has rk3588 support,but we can't test it. > Initialization and lane-mapping (bifurcation) was bit different. > So we wanted to upstream rk3568 first (but have not removed this > part from driver). > > I see that someone added rk3588 basic support and if he can test > rk3588 i can send compatible for it. Basic rk3588 support is still WIP. At the moment patches for the CRU are still pending as well as base DT. I hope to land them for v6.2 (so next merge window). At the same time I don't think PCIe support is realistic before v6.3. -- Sebastian [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-04 20:57 ` Sebastian Reichel 0 siblings, 0 replies; 76+ messages in thread From: Sebastian Reichel @ 2022-10-04 20:57 UTC (permalink / raw) To: Frank Wunderlich Cc: Rob Herring, linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski [-- Attachment #1.1: Type: text/plain, Size: 1140 bytes --] Hi, On Tue, Oct 04, 2022 at 05:19:11PM +0200, Frank Wunderlich wrote: > Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: > >On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: > >> From: Frank Wunderlich <frank-w@public-files.de> > > >> +properties: > >> + compatible: > >> + enum: > >> + - rockchip,rk3568-pcie3-phy > > > >The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix > >adding it here or removing from the driver. Are they not compatible with > >each other? > > Right, original driver has rk3588 support,but we can't test it. > Initialization and lane-mapping (bifurcation) was bit different. > So we wanted to upstream rk3568 first (but have not removed this > part from driver). > > I see that someone added rk3588 basic support and if he can test > rk3588 i can send compatible for it. Basic rk3588 support is still WIP. At the moment patches for the CRU are still pending as well as base DT. I hope to land them for v6.2 (so next merge window). At the same time I don't think PCIe support is realistic before v6.3. -- Sebastian [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] [-- Attachment #2: Type: text/plain, Size: 176 bytes --] _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-04 20:57 ` Sebastian Reichel 0 siblings, 0 replies; 76+ messages in thread From: Sebastian Reichel @ 2022-10-04 20:57 UTC (permalink / raw) To: Frank Wunderlich Cc: Rob Herring, linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski [-- Attachment #1.1: Type: text/plain, Size: 1140 bytes --] Hi, On Tue, Oct 04, 2022 at 05:19:11PM +0200, Frank Wunderlich wrote: > Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: > >On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: > >> From: Frank Wunderlich <frank-w@public-files.de> > > >> +properties: > >> + compatible: > >> + enum: > >> + - rockchip,rk3568-pcie3-phy > > > >The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix > >adding it here or removing from the driver. Are they not compatible with > >each other? > > Right, original driver has rk3588 support,but we can't test it. > Initialization and lane-mapping (bifurcation) was bit different. > So we wanted to upstream rk3568 first (but have not removed this > part from driver). > > I see that someone added rk3588 basic support and if he can test > rk3588 i can send compatible for it. Basic rk3588 support is still WIP. At the moment patches for the CRU are still pending as well as base DT. I hope to land them for v6.2 (so next merge window). At the same time I don't think PCIe support is realistic before v6.3. -- Sebastian [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] [-- Attachment #2: Type: text/plain, Size: 170 bytes --] _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy 2022-10-04 20:57 ` Sebastian Reichel (?) (?) @ 2022-10-11 4:41 ` Andrew Powers-Holmes -1 siblings, 0 replies; 76+ messages in thread From: Andrew Powers-Holmes @ 2022-10-11 4:41 UTC (permalink / raw) To: Sebastian Reichel, Frank Wunderlich Cc: Rob Herring, linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On 5/10/2022 7:57 am, Sebastian Reichel wrote: > Hi, > > On Tue, Oct 04, 2022 at 05:19:11PM +0200, Frank Wunderlich wrote: >> Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: >>> On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: >>>> From: Frank Wunderlich <frank-w@public-files.de> >> >>>> +properties: >>>> + compatible: >>>> + enum: >>>> + - rockchip,rk3568-pcie3-phy >>> >>> The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix >>> adding it here or removing from the driver. Are they not compatible with >>> each other? >> >> Right, original driver has rk3588 support,but we can't test it. >> Initialization and lane-mapping (bifurcation) was bit different. >> So we wanted to upstream rk3568 first (but have not removed this >> part from driver). >> >> I see that someone added rk3588 basic support and if he can test >> rk3588 i can send compatible for it. > > Basic rk3588 support is still WIP. At the moment patches for the CRU > are still pending as well as base DT. I hope to land them for v6.2 > (so next merge window). At the same time I don't think PCIe support > is realistic before v6.3. Hi all, I can confirm this patchset successfully brings up the PCIe 3.0 controller/PHY on an RK3588 - I'm using a Pine64 QuartzPro64, which is very similar to the Rockchip RK3588-EVB1 board. Runs fine at x1, x2, x4 lane widths and full 8GT/s lane throughput. The PCIe 2.0 lanes (which use the same PCIe controller driver) need some changes to the rockchip-naneng-combphy driver that I've not quite gotten to a working state, but that's unrelated to this series. I have a (very messy) tree based on v6.0 (on GitHub at [0]) with Sebastian's other RK3588 support patches dropped in, along with this series and a few other tweaks. Works quite well :) So insofar as RK3588 support is concerned, Tested-By: Andrew Powers-Holmes <aholmes@omnom.net> [0] https://github.com/neggles/linux-quartz64/tree/qp64-pcie Cheers, A -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-11 4:41 ` Andrew Powers-Holmes 0 siblings, 0 replies; 76+ messages in thread From: Andrew Powers-Holmes @ 2022-10-11 4:41 UTC (permalink / raw) To: Sebastian Reichel, Frank Wunderlich Cc: Rob Herring, linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On 5/10/2022 7:57 am, Sebastian Reichel wrote: > Hi, > > On Tue, Oct 04, 2022 at 05:19:11PM +0200, Frank Wunderlich wrote: >> Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: >>> On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: >>>> From: Frank Wunderlich <frank-w@public-files.de> >> >>>> +properties: >>>> + compatible: >>>> + enum: >>>> + - rockchip,rk3568-pcie3-phy >>> >>> The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix >>> adding it here or removing from the driver. Are they not compatible with >>> each other? >> >> Right, original driver has rk3588 support,but we can't test it. >> Initialization and lane-mapping (bifurcation) was bit different. >> So we wanted to upstream rk3568 first (but have not removed this >> part from driver). >> >> I see that someone added rk3588 basic support and if he can test >> rk3588 i can send compatible for it. > > Basic rk3588 support is still WIP. At the moment patches for the CRU > are still pending as well as base DT. I hope to land them for v6.2 > (so next merge window). At the same time I don't think PCIe support > is realistic before v6.3. Hi all, I can confirm this patchset successfully brings up the PCIe 3.0 controller/PHY on an RK3588 - I'm using a Pine64 QuartzPro64, which is very similar to the Rockchip RK3588-EVB1 board. Runs fine at x1, x2, x4 lane widths and full 8GT/s lane throughput. The PCIe 2.0 lanes (which use the same PCIe controller driver) need some changes to the rockchip-naneng-combphy driver that I've not quite gotten to a working state, but that's unrelated to this series. I have a (very messy) tree based on v6.0 (on GitHub at [0]) with Sebastian's other RK3588 support patches dropped in, along with this series and a few other tweaks. Works quite well :) So insofar as RK3588 support is concerned, Tested-By: Andrew Powers-Holmes <aholmes@omnom.net> [0] https://github.com/neggles/linux-quartz64/tree/qp64-pcie Cheers, A ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-11 4:41 ` Andrew Powers-Holmes 0 siblings, 0 replies; 76+ messages in thread From: Andrew Powers-Holmes @ 2022-10-11 4:41 UTC (permalink / raw) To: Sebastian Reichel, Frank Wunderlich Cc: Rob Herring, linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On 5/10/2022 7:57 am, Sebastian Reichel wrote: > Hi, > > On Tue, Oct 04, 2022 at 05:19:11PM +0200, Frank Wunderlich wrote: >> Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: >>> On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: >>>> From: Frank Wunderlich <frank-w@public-files.de> >> >>>> +properties: >>>> + compatible: >>>> + enum: >>>> + - rockchip,rk3568-pcie3-phy >>> >>> The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix >>> adding it here or removing from the driver. Are they not compatible with >>> each other? >> >> Right, original driver has rk3588 support,but we can't test it. >> Initialization and lane-mapping (bifurcation) was bit different. >> So we wanted to upstream rk3568 first (but have not removed this >> part from driver). >> >> I see that someone added rk3588 basic support and if he can test >> rk3588 i can send compatible for it. > > Basic rk3588 support is still WIP. At the moment patches for the CRU > are still pending as well as base DT. I hope to land them for v6.2 > (so next merge window). At the same time I don't think PCIe support > is realistic before v6.3. Hi all, I can confirm this patchset successfully brings up the PCIe 3.0 controller/PHY on an RK3588 - I'm using a Pine64 QuartzPro64, which is very similar to the Rockchip RK3588-EVB1 board. Runs fine at x1, x2, x4 lane widths and full 8GT/s lane throughput. The PCIe 2.0 lanes (which use the same PCIe controller driver) need some changes to the rockchip-naneng-combphy driver that I've not quite gotten to a working state, but that's unrelated to this series. I have a (very messy) tree based on v6.0 (on GitHub at [0]) with Sebastian's other RK3588 support patches dropped in, along with this series and a few other tweaks. Works quite well :) So insofar as RK3588 support is concerned, Tested-By: Andrew Powers-Holmes <aholmes@omnom.net> [0] https://github.com/neggles/linux-quartz64/tree/qp64-pcie Cheers, A _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy @ 2022-10-11 4:41 ` Andrew Powers-Holmes 0 siblings, 0 replies; 76+ messages in thread From: Andrew Powers-Holmes @ 2022-10-11 4:41 UTC (permalink / raw) To: Sebastian Reichel, Frank Wunderlich Cc: Rob Herring, linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski On 5/10/2022 7:57 am, Sebastian Reichel wrote: > Hi, > > On Tue, Oct 04, 2022 at 05:19:11PM +0200, Frank Wunderlich wrote: >> Am 4. Oktober 2022 17:09:29 MESZ schrieb Rob Herring <robh@kernel.org>: >>> On Thu, Aug 25, 2022 at 09:38:32PM +0200, Frank Wunderlich wrote: >>>> From: Frank Wunderlich <frank-w@public-files.de> >> >>>> +properties: >>>> + compatible: >>>> + enum: >>>> + - rockchip,rk3568-pcie3-phy >>> >>> The driver also has 'rockchip,rk3588-pcie3-phy'. Please send a fix >>> adding it here or removing from the driver. Are they not compatible with >>> each other? >> >> Right, original driver has rk3588 support,but we can't test it. >> Initialization and lane-mapping (bifurcation) was bit different. >> So we wanted to upstream rk3568 first (but have not removed this >> part from driver). >> >> I see that someone added rk3588 basic support and if he can test >> rk3588 i can send compatible for it. > > Basic rk3588 support is still WIP. At the moment patches for the CRU > are still pending as well as base DT. I hope to land them for v6.2 > (so next merge window). At the same time I don't think PCIe support > is realistic before v6.3. Hi all, I can confirm this patchset successfully brings up the PCIe 3.0 controller/PHY on an RK3588 - I'm using a Pine64 QuartzPro64, which is very similar to the Rockchip RK3588-EVB1 board. Runs fine at x1, x2, x4 lane widths and full 8GT/s lane throughput. The PCIe 2.0 lanes (which use the same PCIe controller driver) need some changes to the rockchip-naneng-combphy driver that I've not quite gotten to a working state, but that's unrelated to this series. I have a (very messy) tree based on v6.0 (on GitHub at [0]) with Sebastian's other RK3588 support patches dropped in, along with this series and a few other tweaks. Works quite well :) So insofar as RK3588 support is concerned, Tested-By: Andrew Powers-Holmes <aholmes@omnom.net> [0] https://github.com/neggles/linux-quartz64/tree/qp64-pcie Cheers, A _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* [PATCH v5 2/5] dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf 2022-08-25 19:38 ` Frank Wunderlich (?) (?) @ 2022-08-25 19:38 ` Frank Wunderlich -1 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski From: Frank Wunderlich <frank-w@public-files.de> Add compatibles for PCIe v3 General Register Files. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- v4: - rebase on 5.19-rc1 - add acked-by v3: - fix order of grf-bindings v2: - add soc-part to pcie3-phy-grf --- Documentation/devicetree/bindings/soc/rockchip/grf.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml index 75a2b8bb25fb..97301c470173 100644 --- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml @@ -16,9 +16,12 @@ properties: - enum: - rockchip,rk3288-sgrf - rockchip,rk3566-pipe-grf + - rockchip,rk3568-pcie3-phy-grf - rockchip,rk3568-pipe-grf - rockchip,rk3568-pipe-phy-grf - rockchip,rk3568-usb2phy-grf + - rockchip,rk3588-pcie3-phy-grf + - rockchip,rk3588-pcie3-pipe-grf - rockchip,rv1108-usbgrf - const: syscon - items: -- 2.34.1 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 2/5] dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski From: Frank Wunderlich <frank-w@public-files.de> Add compatibles for PCIe v3 General Register Files. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- v4: - rebase on 5.19-rc1 - add acked-by v3: - fix order of grf-bindings v2: - add soc-part to pcie3-phy-grf --- Documentation/devicetree/bindings/soc/rockchip/grf.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml index 75a2b8bb25fb..97301c470173 100644 --- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml @@ -16,9 +16,12 @@ properties: - enum: - rockchip,rk3288-sgrf - rockchip,rk3566-pipe-grf + - rockchip,rk3568-pcie3-phy-grf - rockchip,rk3568-pipe-grf - rockchip,rk3568-pipe-phy-grf - rockchip,rk3568-usb2phy-grf + - rockchip,rk3588-pcie3-phy-grf + - rockchip,rk3588-pcie3-pipe-grf - rockchip,rv1108-usbgrf - const: syscon - items: -- 2.34.1 ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 2/5] dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski From: Frank Wunderlich <frank-w@public-files.de> Add compatibles for PCIe v3 General Register Files. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- v4: - rebase on 5.19-rc1 - add acked-by v3: - fix order of grf-bindings v2: - add soc-part to pcie3-phy-grf --- Documentation/devicetree/bindings/soc/rockchip/grf.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml index 75a2b8bb25fb..97301c470173 100644 --- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml @@ -16,9 +16,12 @@ properties: - enum: - rockchip,rk3288-sgrf - rockchip,rk3566-pipe-grf + - rockchip,rk3568-pcie3-phy-grf - rockchip,rk3568-pipe-grf - rockchip,rk3568-pipe-phy-grf - rockchip,rk3568-usb2phy-grf + - rockchip,rk3588-pcie3-phy-grf + - rockchip,rk3588-pcie3-pipe-grf - rockchip,rv1108-usbgrf - const: syscon - items: -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 2/5] dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel, Krzysztof Kozlowski From: Frank Wunderlich <frank-w@public-files.de> Add compatibles for PCIe v3 General Register Files. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- v4: - rebase on 5.19-rc1 - add acked-by v3: - fix order of grf-bindings v2: - add soc-part to pcie3-phy-grf --- Documentation/devicetree/bindings/soc/rockchip/grf.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml index 75a2b8bb25fb..97301c470173 100644 --- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml @@ -16,9 +16,12 @@ properties: - enum: - rockchip,rk3288-sgrf - rockchip,rk3566-pipe-grf + - rockchip,rk3568-pcie3-phy-grf - rockchip,rk3568-pipe-grf - rockchip,rk3568-pipe-phy-grf - rockchip,rk3568-usb2phy-grf + - rockchip,rk3588-pcie3-phy-grf + - rockchip,rk3588-pcie3-pipe-grf - rockchip,rv1108-usbgrf - const: syscon - items: -- 2.34.1 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 3/5] phy: rockchip: Support PCIe v3 2022-08-25 19:38 ` Frank Wunderlich (?) (?) @ 2022-08-25 19:38 ` Frank Wunderlich -1 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Shawn Lin <shawn.lin@rock-chips.com> RK3568 supports PCIe v3 using not Combphy like PCIe v2 on rk3566. It use a dedicated PCIe-phy. Add support for this. Initial support by Shawn Lin, modifications by Peter Geis and Frank Wunderlich. Add data-lanes property for splitting pcie-lanes across controllers. The data-lanes is an array where x=0 means lane is disabled and x > 0 means controller x is assigned to phy lane. Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Suggested-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v5: - change pr_* to dev_*, update copyright-years - add naming of magic constants v4: - change u8 lane-map to u32 data-lanes v3: - change dt-binding include - change reset to devm_reset_control_get_optional_exclusive exit on error and lower severity of message if unset - fix from peter: disable reg-write for phy-mode in rockchip_p3phy_probe - move bifurcation/lane-map support from PCIe to phy driver v2: - move dt-bindings header into separate patch - use BIT-macro - make constants better readable - use dev_err instead of pr_* - change dt-binding include due to renaming (phy-snps-pcie3.h => phy-rockchip-pcie3.h) - use exclusive variant of devm_reset_control_get{,_exclusive} - fix semicolon.cocci warnings reported by kernel test robot <lkp@intel.com> --- driver was taken from linux 5.10 based on in https://github.com/JeffyCN/mirrors which now has disappeared Update phy-rockchip-snps-pcie3.c Fix messages for data-lanes Update phy-rockchip-snps-pcie3.c Fix comment for data-lanes --- drivers/phy/rockchip/Kconfig | 9 + drivers/phy/rockchip/Makefile | 1 + .../phy/rockchip/phy-rockchip-snps-pcie3.c | 319 ++++++++++++++++++ include/linux/phy/pcie.h | 12 + 4 files changed, 341 insertions(+) create mode 100644 drivers/phy/rockchip/phy-rockchip-snps-pcie3.c create mode 100644 include/linux/phy/pcie.h diff --git a/drivers/phy/rockchip/Kconfig b/drivers/phy/rockchip/Kconfig index 9022e395c056..94360fc96a6f 100644 --- a/drivers/phy/rockchip/Kconfig +++ b/drivers/phy/rockchip/Kconfig @@ -83,6 +83,15 @@ config PHY_ROCKCHIP_PCIE help Enable this to support the Rockchip PCIe PHY. +config PHY_ROCKCHIP_SNPS_PCIE3 + tristate "Rockchip Snps PCIe3 PHY Driver" + depends on (ARCH_ROCKCHIP && OF) || COMPILE_TEST + depends on HAS_IOMEM + select GENERIC_PHY + select MFD_SYSCON + help + Enable this to support the Rockchip snps PCIe3 PHY. + config PHY_ROCKCHIP_TYPEC tristate "Rockchip TYPEC PHY Driver" depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST) diff --git a/drivers/phy/rockchip/Makefile b/drivers/phy/rockchip/Makefile index a5041efb5b8f..7eab129230d1 100644 --- a/drivers/phy/rockchip/Makefile +++ b/drivers/phy/rockchip/Makefile @@ -8,5 +8,6 @@ obj-$(CONFIG_PHY_ROCKCHIP_INNO_HDMI) += phy-rockchip-inno-hdmi.o obj-$(CONFIG_PHY_ROCKCHIP_INNO_USB2) += phy-rockchip-inno-usb2.o obj-$(CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY) += phy-rockchip-naneng-combphy.o obj-$(CONFIG_PHY_ROCKCHIP_PCIE) += phy-rockchip-pcie.o +obj-$(CONFIG_PHY_ROCKCHIP_SNPS_PCIE3) += phy-rockchip-snps-pcie3.o obj-$(CONFIG_PHY_ROCKCHIP_TYPEC) += phy-rockchip-typec.o obj-$(CONFIG_PHY_ROCKCHIP_USB) += phy-rockchip-usb.o diff --git a/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c new file mode 100644 index 000000000000..1917edda6b47 --- /dev/null +++ b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c @@ -0,0 +1,319 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Rockchip PCIE3.0 phy driver + * + * Copyright (C) 2022 Rockchip Electronics Co., Ltd. + */ + +#include <linux/clk.h> +#include <linux/delay.h> +#include <linux/io.h> +#include <linux/iopoll.h> +#include <linux/kernel.h> +#include <linux/mfd/syscon.h> +#include <linux/module.h> +#include <linux/of_device.h> +#include <linux/phy/pcie.h> +#include <linux/phy/phy.h> +#include <linux/regmap.h> +#include <linux/reset.h> + +/* Register for RK3568 */ +#define GRF_PCIE30PHY_CON1 0x4 +#define GRF_PCIE30PHY_CON6 0x18 +#define GRF_PCIE30PHY_CON9 0x24 +#define GRF_PCIE30PHY_DA_OCM (BIT(15) | BIT(31)) +#define GRF_PCIE30PHY_STATUS0 0x80 +#define GRF_PCIE30PHY_WR_EN (0xf << 16) +#define SRAM_INIT_DONE(reg) (reg & BIT(14)) + +#define RK3568_BIFURCATION_LANE_0_1 BIT(0) + +/* Register for RK3588 */ +#define PHP_GRF_PCIESEL_CON 0x100 +#define RK3588_PCIE3PHY_GRF_CMN_CON0 0x0 +#define RK3588_PCIE3PHY_GRF_PHY0_STATUS1 0x904 +#define RK3588_PCIE3PHY_GRF_PHY1_STATUS1 0xa04 +#define RK3588_SRAM_INIT_DONE(reg) (reg & BIT(0)) + +#define RK3588_BIFURCATION_LANE_0_1 BIT(0) +#define RK3588_BIFURCATION_LANE_2_3 BIT(1) +#define RK3588_LANE_AGGREGATION BIT(2) + +struct rockchip_p3phy_ops; + +struct rockchip_p3phy_priv { + const struct rockchip_p3phy_ops *ops; + void __iomem *mmio; + /* mode: RC, EP */ + int mode; + /* pcie30_phymode: Aggregation, Bifurcation */ + int pcie30_phymode; + struct regmap *phy_grf; + struct regmap *pipe_grf; + struct reset_control *p30phy; + struct phy *phy; + struct clk_bulk_data *clks; + int num_clks; + int num_lanes; + u32 lanes[4]; +}; + +struct rockchip_p3phy_ops { + int (*phy_init)(struct rockchip_p3phy_priv *priv); +}; + +static int rockchip_p3phy_set_mode(struct phy *phy, enum phy_mode mode, int submode) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + + /* Actually We don't care EP/RC mode, but just record it */ + switch (submode) { + case PHY_MODE_PCIE_RC: + priv->mode = PHY_MODE_PCIE_RC; + break; + case PHY_MODE_PCIE_EP: + priv->mode = PHY_MODE_PCIE_EP; + break; + default: + dev_err(&phy->dev, "%s, invalid mode\n", __func__); + return -EINVAL; + } + + return 0; +} + +static int rockchip_p3phy_rk3568_init(struct rockchip_p3phy_priv *priv) +{ + struct phy *phy = priv->phy; + bool bifurcation = false; + int ret; + u32 reg; + + /* Deassert PCIe PMA output clamp mode */ + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON9, GRF_PCIE30PHY_DA_OCM); + + for (int i = 0; i < priv->num_lanes; i++) { + dev_info(&phy->dev, "lane number %d, val %d\n", i, priv->lanes[i]); + if (priv->lanes[i] > 1) + bifurcation = true; + } + + /* Set bifurcation if needed, and it doesn't care RC/EP */ + if (bifurcation) { + dev_info(&phy->dev, "bifurcation enabled\n"); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON6, + GRF_PCIE30PHY_WR_EN | RK3568_BIFURCATION_LANE_0_1); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON1, + GRF_PCIE30PHY_DA_OCM); + } else { + dev_dbg(&phy->dev, "bifurcation disabled\n"); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON6, + GRF_PCIE30PHY_WR_EN & ~RK3568_BIFURCATION_LANE_0_1); + } + + reset_control_deassert(priv->p30phy); + + ret = regmap_read_poll_timeout(priv->phy_grf, + GRF_PCIE30PHY_STATUS0, + reg, SRAM_INIT_DONE(reg), + 0, 500); + if (ret) + dev_err(&priv->phy->dev, "%s: lock failed 0x%x, check input refclk and power supply\n", + __func__, reg); + return ret; +} + +static const struct rockchip_p3phy_ops rk3568_ops = { + .phy_init = rockchip_p3phy_rk3568_init, +}; + +static int rockchip_p3phy_rk3588_init(struct rockchip_p3phy_priv *priv) +{ + u32 reg = 0; + u8 mode = 0; + int ret; + + /* Deassert PCIe PMA output clamp mode */ + regmap_write(priv->phy_grf, RK3588_PCIE3PHY_GRF_CMN_CON0, BIT(8) | BIT(24)); + + /* Set bifurcation if needed */ + for (int i = 0; i < priv->num_lanes; i++) { + if (!priv->lanes[i]) + mode |= (BIT(i) << 3); + + if (priv->lanes[i] > 1) + mode |= (BIT(i) >> 1); + } + + if (!mode) + reg = RK3588_LANE_AGGREGATION; + else { + if (mode & (BIT(0) | BIT(1))) + reg |= RK3588_BIFURCATION_LANE_0_1; + + if (mode & (BIT(2) | BIT(3))) + reg |= RK3588_BIFURCATION_LANE_2_3; + } + + regmap_write(priv->phy_grf, RK3588_PCIE3PHY_GRF_CMN_CON0, (0x7<<16) | reg); + + /* Set pcie1ln_sel in PHP_GRF_PCIESEL_CON */ + if (!IS_ERR(priv->pipe_grf)) { + reg = (mode & (BIT(6) | BIT(7))) >> 6; + if (reg) + regmap_write(priv->pipe_grf, PHP_GRF_PCIESEL_CON, + (reg << 16) | reg); + } + + reset_control_deassert(priv->p30phy); + + ret = regmap_read_poll_timeout(priv->phy_grf, + RK3588_PCIE3PHY_GRF_PHY0_STATUS1, + reg, RK3588_SRAM_INIT_DONE(reg), + 0, 500); + ret |= regmap_read_poll_timeout(priv->phy_grf, + RK3588_PCIE3PHY_GRF_PHY1_STATUS1, + reg, RK3588_SRAM_INIT_DONE(reg), + 0, 500); + if (ret) + dev_err(&priv->phy->dev, "lock failed 0x%x, check input refclk and power supply\n", + reg); + return ret; +} + +static const struct rockchip_p3phy_ops rk3588_ops = { + .phy_init = rockchip_p3phy_rk3588_init, +}; + +static int rochchip_p3phy_init(struct phy *phy) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + int ret; + + ret = clk_bulk_prepare_enable(priv->num_clks, priv->clks); + if (ret) { + dev_err(&priv->phy->dev, "failed to enable PCIe bulk clks %d\n", ret); + return ret; + } + + reset_control_assert(priv->p30phy); + udelay(1); + + if (priv->ops->phy_init) { + ret = priv->ops->phy_init(priv); + if (ret) + clk_bulk_disable_unprepare(priv->num_clks, priv->clks); + } + + return ret; +} + +static int rochchip_p3phy_exit(struct phy *phy) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + + clk_bulk_disable_unprepare(priv->num_clks, priv->clks); + reset_control_assert(priv->p30phy); + return 0; +} + +static const struct phy_ops rochchip_p3phy_ops = { + .init = rochchip_p3phy_init, + .exit = rochchip_p3phy_exit, + .set_mode = rockchip_p3phy_set_mode, + .owner = THIS_MODULE, +}; + +static int rockchip_p3phy_probe(struct platform_device *pdev) +{ + struct phy_provider *phy_provider; + struct device *dev = &pdev->dev; + struct rockchip_p3phy_priv *priv; + struct device_node *np = dev->of_node; + struct resource *res; + int ret; + + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + priv->mmio = devm_ioremap_resource(dev, res); + if (IS_ERR(priv->mmio)) { + ret = PTR_ERR(priv->mmio); + return ret; + } + + priv->ops = of_device_get_match_data(&pdev->dev); + if (!priv->ops) { + dev_err(dev, "no of match data provided\n"); + return -EINVAL; + } + + priv->phy_grf = syscon_regmap_lookup_by_phandle(np, "rockchip,phy-grf"); + if (IS_ERR(priv->phy_grf)) { + dev_err(dev, "failed to find rockchip,phy_grf regmap\n"); + return PTR_ERR(priv->phy_grf); + } + + priv->pipe_grf = syscon_regmap_lookup_by_phandle(dev->of_node, + "rockchip,pipe-grf"); + if (IS_ERR(priv->pipe_grf)) + dev_info(dev, "failed to find rockchip,pipe_grf regmap\n"); + + priv->num_lanes = of_property_read_variable_u32_array(dev->of_node, "data-lanes", + priv->lanes, 2, + ARRAY_SIZE(priv->lanes)); + + /* if no data-lanes assume aggregation */ + if (priv->num_lanes == -EINVAL) { + dev_dbg(dev, "no data-lanes property found\n"); + priv->num_lanes = 1; + priv->lanes[0] = 1; + } else if (priv->num_lanes < 0) { + dev_err(dev, "failed to read data-lanes property %d\n", priv->num_lanes); + return priv->num_lanes; + } + + priv->phy = devm_phy_create(dev, NULL, &rochchip_p3phy_ops); + if (IS_ERR(priv->phy)) { + dev_err(dev, "failed to create combphy\n"); + return PTR_ERR(priv->phy); + } + + priv->p30phy = devm_reset_control_get_optional_exclusive(dev, "phy"); + if (IS_ERR(priv->p30phy)) { + return dev_err_probe(dev, PTR_ERR(priv->p30phy), + "failed to get phy reset control\n"); + } + if (!priv->p30phy) + dev_info(dev, "no phy reset control specified\n"); + + priv->num_clks = devm_clk_bulk_get_all(dev, &priv->clks); + if (priv->num_clks < 1) + return -ENODEV; + + dev_set_drvdata(dev, priv); + phy_set_drvdata(priv->phy, priv); + phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); + return PTR_ERR_OR_ZERO(phy_provider); +} + +static const struct of_device_id rockchip_p3phy_of_match[] = { + { .compatible = "rockchip,rk3568-pcie3-phy", .data = &rk3568_ops }, + { .compatible = "rockchip,rk3588-pcie3-phy", .data = &rk3588_ops }, + { }, +}; +MODULE_DEVICE_TABLE(of, rockchip_p3phy_of_match); + +static struct platform_driver rockchip_p3phy_driver = { + .probe = rockchip_p3phy_probe, + .driver = { + .name = "rockchip-snps-pcie3-phy", + .of_match_table = rockchip_p3phy_of_match, + }, +}; +module_platform_driver(rockchip_p3phy_driver); +MODULE_DESCRIPTION("Rockchip Synopsys PCIe 3.0 PHY driver"); +MODULE_LICENSE("GPL"); diff --git a/include/linux/phy/pcie.h b/include/linux/phy/pcie.h new file mode 100644 index 000000000000..e7ac81764576 --- /dev/null +++ b/include/linux/phy/pcie.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2022 Rockchip Electronics Co., Ltd. + */ +#ifndef __PHY_PCIE_H +#define __PHY_PCIE_H + +#define PHY_MODE_PCIE_RC 20 +#define PHY_MODE_PCIE_EP 21 +#define PHY_MODE_PCIE_BIFURCATION 22 + +#endif -- 2.34.1 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 3/5] phy: rockchip: Support PCIe v3 @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Shawn Lin <shawn.lin@rock-chips.com> RK3568 supports PCIe v3 using not Combphy like PCIe v2 on rk3566. It use a dedicated PCIe-phy. Add support for this. Initial support by Shawn Lin, modifications by Peter Geis and Frank Wunderlich. Add data-lanes property for splitting pcie-lanes across controllers. The data-lanes is an array where x=0 means lane is disabled and x > 0 means controller x is assigned to phy lane. Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Suggested-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v5: - change pr_* to dev_*, update copyright-years - add naming of magic constants v4: - change u8 lane-map to u32 data-lanes v3: - change dt-binding include - change reset to devm_reset_control_get_optional_exclusive exit on error and lower severity of message if unset - fix from peter: disable reg-write for phy-mode in rockchip_p3phy_probe - move bifurcation/lane-map support from PCIe to phy driver v2: - move dt-bindings header into separate patch - use BIT-macro - make constants better readable - use dev_err instead of pr_* - change dt-binding include due to renaming (phy-snps-pcie3.h => phy-rockchip-pcie3.h) - use exclusive variant of devm_reset_control_get{,_exclusive} - fix semicolon.cocci warnings reported by kernel test robot <lkp@intel.com> --- driver was taken from linux 5.10 based on in https://github.com/JeffyCN/mirrors which now has disappeared Update phy-rockchip-snps-pcie3.c Fix messages for data-lanes Update phy-rockchip-snps-pcie3.c Fix comment for data-lanes --- drivers/phy/rockchip/Kconfig | 9 + drivers/phy/rockchip/Makefile | 1 + .../phy/rockchip/phy-rockchip-snps-pcie3.c | 319 ++++++++++++++++++ include/linux/phy/pcie.h | 12 + 4 files changed, 341 insertions(+) create mode 100644 drivers/phy/rockchip/phy-rockchip-snps-pcie3.c create mode 100644 include/linux/phy/pcie.h diff --git a/drivers/phy/rockchip/Kconfig b/drivers/phy/rockchip/Kconfig index 9022e395c056..94360fc96a6f 100644 --- a/drivers/phy/rockchip/Kconfig +++ b/drivers/phy/rockchip/Kconfig @@ -83,6 +83,15 @@ config PHY_ROCKCHIP_PCIE help Enable this to support the Rockchip PCIe PHY. +config PHY_ROCKCHIP_SNPS_PCIE3 + tristate "Rockchip Snps PCIe3 PHY Driver" + depends on (ARCH_ROCKCHIP && OF) || COMPILE_TEST + depends on HAS_IOMEM + select GENERIC_PHY + select MFD_SYSCON + help + Enable this to support the Rockchip snps PCIe3 PHY. + config PHY_ROCKCHIP_TYPEC tristate "Rockchip TYPEC PHY Driver" depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST) diff --git a/drivers/phy/rockchip/Makefile b/drivers/phy/rockchip/Makefile index a5041efb5b8f..7eab129230d1 100644 --- a/drivers/phy/rockchip/Makefile +++ b/drivers/phy/rockchip/Makefile @@ -8,5 +8,6 @@ obj-$(CONFIG_PHY_ROCKCHIP_INNO_HDMI) += phy-rockchip-inno-hdmi.o obj-$(CONFIG_PHY_ROCKCHIP_INNO_USB2) += phy-rockchip-inno-usb2.o obj-$(CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY) += phy-rockchip-naneng-combphy.o obj-$(CONFIG_PHY_ROCKCHIP_PCIE) += phy-rockchip-pcie.o +obj-$(CONFIG_PHY_ROCKCHIP_SNPS_PCIE3) += phy-rockchip-snps-pcie3.o obj-$(CONFIG_PHY_ROCKCHIP_TYPEC) += phy-rockchip-typec.o obj-$(CONFIG_PHY_ROCKCHIP_USB) += phy-rockchip-usb.o diff --git a/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c new file mode 100644 index 000000000000..1917edda6b47 --- /dev/null +++ b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c @@ -0,0 +1,319 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Rockchip PCIE3.0 phy driver + * + * Copyright (C) 2022 Rockchip Electronics Co., Ltd. + */ + +#include <linux/clk.h> +#include <linux/delay.h> +#include <linux/io.h> +#include <linux/iopoll.h> +#include <linux/kernel.h> +#include <linux/mfd/syscon.h> +#include <linux/module.h> +#include <linux/of_device.h> +#include <linux/phy/pcie.h> +#include <linux/phy/phy.h> +#include <linux/regmap.h> +#include <linux/reset.h> + +/* Register for RK3568 */ +#define GRF_PCIE30PHY_CON1 0x4 +#define GRF_PCIE30PHY_CON6 0x18 +#define GRF_PCIE30PHY_CON9 0x24 +#define GRF_PCIE30PHY_DA_OCM (BIT(15) | BIT(31)) +#define GRF_PCIE30PHY_STATUS0 0x80 +#define GRF_PCIE30PHY_WR_EN (0xf << 16) +#define SRAM_INIT_DONE(reg) (reg & BIT(14)) + +#define RK3568_BIFURCATION_LANE_0_1 BIT(0) + +/* Register for RK3588 */ +#define PHP_GRF_PCIESEL_CON 0x100 +#define RK3588_PCIE3PHY_GRF_CMN_CON0 0x0 +#define RK3588_PCIE3PHY_GRF_PHY0_STATUS1 0x904 +#define RK3588_PCIE3PHY_GRF_PHY1_STATUS1 0xa04 +#define RK3588_SRAM_INIT_DONE(reg) (reg & BIT(0)) + +#define RK3588_BIFURCATION_LANE_0_1 BIT(0) +#define RK3588_BIFURCATION_LANE_2_3 BIT(1) +#define RK3588_LANE_AGGREGATION BIT(2) + +struct rockchip_p3phy_ops; + +struct rockchip_p3phy_priv { + const struct rockchip_p3phy_ops *ops; + void __iomem *mmio; + /* mode: RC, EP */ + int mode; + /* pcie30_phymode: Aggregation, Bifurcation */ + int pcie30_phymode; + struct regmap *phy_grf; + struct regmap *pipe_grf; + struct reset_control *p30phy; + struct phy *phy; + struct clk_bulk_data *clks; + int num_clks; + int num_lanes; + u32 lanes[4]; +}; + +struct rockchip_p3phy_ops { + int (*phy_init)(struct rockchip_p3phy_priv *priv); +}; + +static int rockchip_p3phy_set_mode(struct phy *phy, enum phy_mode mode, int submode) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + + /* Actually We don't care EP/RC mode, but just record it */ + switch (submode) { + case PHY_MODE_PCIE_RC: + priv->mode = PHY_MODE_PCIE_RC; + break; + case PHY_MODE_PCIE_EP: + priv->mode = PHY_MODE_PCIE_EP; + break; + default: + dev_err(&phy->dev, "%s, invalid mode\n", __func__); + return -EINVAL; + } + + return 0; +} + +static int rockchip_p3phy_rk3568_init(struct rockchip_p3phy_priv *priv) +{ + struct phy *phy = priv->phy; + bool bifurcation = false; + int ret; + u32 reg; + + /* Deassert PCIe PMA output clamp mode */ + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON9, GRF_PCIE30PHY_DA_OCM); + + for (int i = 0; i < priv->num_lanes; i++) { + dev_info(&phy->dev, "lane number %d, val %d\n", i, priv->lanes[i]); + if (priv->lanes[i] > 1) + bifurcation = true; + } + + /* Set bifurcation if needed, and it doesn't care RC/EP */ + if (bifurcation) { + dev_info(&phy->dev, "bifurcation enabled\n"); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON6, + GRF_PCIE30PHY_WR_EN | RK3568_BIFURCATION_LANE_0_1); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON1, + GRF_PCIE30PHY_DA_OCM); + } else { + dev_dbg(&phy->dev, "bifurcation disabled\n"); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON6, + GRF_PCIE30PHY_WR_EN & ~RK3568_BIFURCATION_LANE_0_1); + } + + reset_control_deassert(priv->p30phy); + + ret = regmap_read_poll_timeout(priv->phy_grf, + GRF_PCIE30PHY_STATUS0, + reg, SRAM_INIT_DONE(reg), + 0, 500); + if (ret) + dev_err(&priv->phy->dev, "%s: lock failed 0x%x, check input refclk and power supply\n", + __func__, reg); + return ret; +} + +static const struct rockchip_p3phy_ops rk3568_ops = { + .phy_init = rockchip_p3phy_rk3568_init, +}; + +static int rockchip_p3phy_rk3588_init(struct rockchip_p3phy_priv *priv) +{ + u32 reg = 0; + u8 mode = 0; + int ret; + + /* Deassert PCIe PMA output clamp mode */ + regmap_write(priv->phy_grf, RK3588_PCIE3PHY_GRF_CMN_CON0, BIT(8) | BIT(24)); + + /* Set bifurcation if needed */ + for (int i = 0; i < priv->num_lanes; i++) { + if (!priv->lanes[i]) + mode |= (BIT(i) << 3); + + if (priv->lanes[i] > 1) + mode |= (BIT(i) >> 1); + } + + if (!mode) + reg = RK3588_LANE_AGGREGATION; + else { + if (mode & (BIT(0) | BIT(1))) + reg |= RK3588_BIFURCATION_LANE_0_1; + + if (mode & (BIT(2) | BIT(3))) + reg |= RK3588_BIFURCATION_LANE_2_3; + } + + regmap_write(priv->phy_grf, RK3588_PCIE3PHY_GRF_CMN_CON0, (0x7<<16) | reg); + + /* Set pcie1ln_sel in PHP_GRF_PCIESEL_CON */ + if (!IS_ERR(priv->pipe_grf)) { + reg = (mode & (BIT(6) | BIT(7))) >> 6; + if (reg) + regmap_write(priv->pipe_grf, PHP_GRF_PCIESEL_CON, + (reg << 16) | reg); + } + + reset_control_deassert(priv->p30phy); + + ret = regmap_read_poll_timeout(priv->phy_grf, + RK3588_PCIE3PHY_GRF_PHY0_STATUS1, + reg, RK3588_SRAM_INIT_DONE(reg), + 0, 500); + ret |= regmap_read_poll_timeout(priv->phy_grf, + RK3588_PCIE3PHY_GRF_PHY1_STATUS1, + reg, RK3588_SRAM_INIT_DONE(reg), + 0, 500); + if (ret) + dev_err(&priv->phy->dev, "lock failed 0x%x, check input refclk and power supply\n", + reg); + return ret; +} + +static const struct rockchip_p3phy_ops rk3588_ops = { + .phy_init = rockchip_p3phy_rk3588_init, +}; + +static int rochchip_p3phy_init(struct phy *phy) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + int ret; + + ret = clk_bulk_prepare_enable(priv->num_clks, priv->clks); + if (ret) { + dev_err(&priv->phy->dev, "failed to enable PCIe bulk clks %d\n", ret); + return ret; + } + + reset_control_assert(priv->p30phy); + udelay(1); + + if (priv->ops->phy_init) { + ret = priv->ops->phy_init(priv); + if (ret) + clk_bulk_disable_unprepare(priv->num_clks, priv->clks); + } + + return ret; +} + +static int rochchip_p3phy_exit(struct phy *phy) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + + clk_bulk_disable_unprepare(priv->num_clks, priv->clks); + reset_control_assert(priv->p30phy); + return 0; +} + +static const struct phy_ops rochchip_p3phy_ops = { + .init = rochchip_p3phy_init, + .exit = rochchip_p3phy_exit, + .set_mode = rockchip_p3phy_set_mode, + .owner = THIS_MODULE, +}; + +static int rockchip_p3phy_probe(struct platform_device *pdev) +{ + struct phy_provider *phy_provider; + struct device *dev = &pdev->dev; + struct rockchip_p3phy_priv *priv; + struct device_node *np = dev->of_node; + struct resource *res; + int ret; + + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + priv->mmio = devm_ioremap_resource(dev, res); + if (IS_ERR(priv->mmio)) { + ret = PTR_ERR(priv->mmio); + return ret; + } + + priv->ops = of_device_get_match_data(&pdev->dev); + if (!priv->ops) { + dev_err(dev, "no of match data provided\n"); + return -EINVAL; + } + + priv->phy_grf = syscon_regmap_lookup_by_phandle(np, "rockchip,phy-grf"); + if (IS_ERR(priv->phy_grf)) { + dev_err(dev, "failed to find rockchip,phy_grf regmap\n"); + return PTR_ERR(priv->phy_grf); + } + + priv->pipe_grf = syscon_regmap_lookup_by_phandle(dev->of_node, + "rockchip,pipe-grf"); + if (IS_ERR(priv->pipe_grf)) + dev_info(dev, "failed to find rockchip,pipe_grf regmap\n"); + + priv->num_lanes = of_property_read_variable_u32_array(dev->of_node, "data-lanes", + priv->lanes, 2, + ARRAY_SIZE(priv->lanes)); + + /* if no data-lanes assume aggregation */ + if (priv->num_lanes == -EINVAL) { + dev_dbg(dev, "no data-lanes property found\n"); + priv->num_lanes = 1; + priv->lanes[0] = 1; + } else if (priv->num_lanes < 0) { + dev_err(dev, "failed to read data-lanes property %d\n", priv->num_lanes); + return priv->num_lanes; + } + + priv->phy = devm_phy_create(dev, NULL, &rochchip_p3phy_ops); + if (IS_ERR(priv->phy)) { + dev_err(dev, "failed to create combphy\n"); + return PTR_ERR(priv->phy); + } + + priv->p30phy = devm_reset_control_get_optional_exclusive(dev, "phy"); + if (IS_ERR(priv->p30phy)) { + return dev_err_probe(dev, PTR_ERR(priv->p30phy), + "failed to get phy reset control\n"); + } + if (!priv->p30phy) + dev_info(dev, "no phy reset control specified\n"); + + priv->num_clks = devm_clk_bulk_get_all(dev, &priv->clks); + if (priv->num_clks < 1) + return -ENODEV; + + dev_set_drvdata(dev, priv); + phy_set_drvdata(priv->phy, priv); + phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); + return PTR_ERR_OR_ZERO(phy_provider); +} + +static const struct of_device_id rockchip_p3phy_of_match[] = { + { .compatible = "rockchip,rk3568-pcie3-phy", .data = &rk3568_ops }, + { .compatible = "rockchip,rk3588-pcie3-phy", .data = &rk3588_ops }, + { }, +}; +MODULE_DEVICE_TABLE(of, rockchip_p3phy_of_match); + +static struct platform_driver rockchip_p3phy_driver = { + .probe = rockchip_p3phy_probe, + .driver = { + .name = "rockchip-snps-pcie3-phy", + .of_match_table = rockchip_p3phy_of_match, + }, +}; +module_platform_driver(rockchip_p3phy_driver); +MODULE_DESCRIPTION("Rockchip Synopsys PCIe 3.0 PHY driver"); +MODULE_LICENSE("GPL"); diff --git a/include/linux/phy/pcie.h b/include/linux/phy/pcie.h new file mode 100644 index 000000000000..e7ac81764576 --- /dev/null +++ b/include/linux/phy/pcie.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2022 Rockchip Electronics Co., Ltd. + */ +#ifndef __PHY_PCIE_H +#define __PHY_PCIE_H + +#define PHY_MODE_PCIE_RC 20 +#define PHY_MODE_PCIE_EP 21 +#define PHY_MODE_PCIE_BIFURCATION 22 + +#endif -- 2.34.1 ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 3/5] phy: rockchip: Support PCIe v3 @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Shawn Lin <shawn.lin@rock-chips.com> RK3568 supports PCIe v3 using not Combphy like PCIe v2 on rk3566. It use a dedicated PCIe-phy. Add support for this. Initial support by Shawn Lin, modifications by Peter Geis and Frank Wunderlich. Add data-lanes property for splitting pcie-lanes across controllers. The data-lanes is an array where x=0 means lane is disabled and x > 0 means controller x is assigned to phy lane. Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Suggested-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v5: - change pr_* to dev_*, update copyright-years - add naming of magic constants v4: - change u8 lane-map to u32 data-lanes v3: - change dt-binding include - change reset to devm_reset_control_get_optional_exclusive exit on error and lower severity of message if unset - fix from peter: disable reg-write for phy-mode in rockchip_p3phy_probe - move bifurcation/lane-map support from PCIe to phy driver v2: - move dt-bindings header into separate patch - use BIT-macro - make constants better readable - use dev_err instead of pr_* - change dt-binding include due to renaming (phy-snps-pcie3.h => phy-rockchip-pcie3.h) - use exclusive variant of devm_reset_control_get{,_exclusive} - fix semicolon.cocci warnings reported by kernel test robot <lkp@intel.com> --- driver was taken from linux 5.10 based on in https://github.com/JeffyCN/mirrors which now has disappeared Update phy-rockchip-snps-pcie3.c Fix messages for data-lanes Update phy-rockchip-snps-pcie3.c Fix comment for data-lanes --- drivers/phy/rockchip/Kconfig | 9 + drivers/phy/rockchip/Makefile | 1 + .../phy/rockchip/phy-rockchip-snps-pcie3.c | 319 ++++++++++++++++++ include/linux/phy/pcie.h | 12 + 4 files changed, 341 insertions(+) create mode 100644 drivers/phy/rockchip/phy-rockchip-snps-pcie3.c create mode 100644 include/linux/phy/pcie.h diff --git a/drivers/phy/rockchip/Kconfig b/drivers/phy/rockchip/Kconfig index 9022e395c056..94360fc96a6f 100644 --- a/drivers/phy/rockchip/Kconfig +++ b/drivers/phy/rockchip/Kconfig @@ -83,6 +83,15 @@ config PHY_ROCKCHIP_PCIE help Enable this to support the Rockchip PCIe PHY. +config PHY_ROCKCHIP_SNPS_PCIE3 + tristate "Rockchip Snps PCIe3 PHY Driver" + depends on (ARCH_ROCKCHIP && OF) || COMPILE_TEST + depends on HAS_IOMEM + select GENERIC_PHY + select MFD_SYSCON + help + Enable this to support the Rockchip snps PCIe3 PHY. + config PHY_ROCKCHIP_TYPEC tristate "Rockchip TYPEC PHY Driver" depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST) diff --git a/drivers/phy/rockchip/Makefile b/drivers/phy/rockchip/Makefile index a5041efb5b8f..7eab129230d1 100644 --- a/drivers/phy/rockchip/Makefile +++ b/drivers/phy/rockchip/Makefile @@ -8,5 +8,6 @@ obj-$(CONFIG_PHY_ROCKCHIP_INNO_HDMI) += phy-rockchip-inno-hdmi.o obj-$(CONFIG_PHY_ROCKCHIP_INNO_USB2) += phy-rockchip-inno-usb2.o obj-$(CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY) += phy-rockchip-naneng-combphy.o obj-$(CONFIG_PHY_ROCKCHIP_PCIE) += phy-rockchip-pcie.o +obj-$(CONFIG_PHY_ROCKCHIP_SNPS_PCIE3) += phy-rockchip-snps-pcie3.o obj-$(CONFIG_PHY_ROCKCHIP_TYPEC) += phy-rockchip-typec.o obj-$(CONFIG_PHY_ROCKCHIP_USB) += phy-rockchip-usb.o diff --git a/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c new file mode 100644 index 000000000000..1917edda6b47 --- /dev/null +++ b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c @@ -0,0 +1,319 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Rockchip PCIE3.0 phy driver + * + * Copyright (C) 2022 Rockchip Electronics Co., Ltd. + */ + +#include <linux/clk.h> +#include <linux/delay.h> +#include <linux/io.h> +#include <linux/iopoll.h> +#include <linux/kernel.h> +#include <linux/mfd/syscon.h> +#include <linux/module.h> +#include <linux/of_device.h> +#include <linux/phy/pcie.h> +#include <linux/phy/phy.h> +#include <linux/regmap.h> +#include <linux/reset.h> + +/* Register for RK3568 */ +#define GRF_PCIE30PHY_CON1 0x4 +#define GRF_PCIE30PHY_CON6 0x18 +#define GRF_PCIE30PHY_CON9 0x24 +#define GRF_PCIE30PHY_DA_OCM (BIT(15) | BIT(31)) +#define GRF_PCIE30PHY_STATUS0 0x80 +#define GRF_PCIE30PHY_WR_EN (0xf << 16) +#define SRAM_INIT_DONE(reg) (reg & BIT(14)) + +#define RK3568_BIFURCATION_LANE_0_1 BIT(0) + +/* Register for RK3588 */ +#define PHP_GRF_PCIESEL_CON 0x100 +#define RK3588_PCIE3PHY_GRF_CMN_CON0 0x0 +#define RK3588_PCIE3PHY_GRF_PHY0_STATUS1 0x904 +#define RK3588_PCIE3PHY_GRF_PHY1_STATUS1 0xa04 +#define RK3588_SRAM_INIT_DONE(reg) (reg & BIT(0)) + +#define RK3588_BIFURCATION_LANE_0_1 BIT(0) +#define RK3588_BIFURCATION_LANE_2_3 BIT(1) +#define RK3588_LANE_AGGREGATION BIT(2) + +struct rockchip_p3phy_ops; + +struct rockchip_p3phy_priv { + const struct rockchip_p3phy_ops *ops; + void __iomem *mmio; + /* mode: RC, EP */ + int mode; + /* pcie30_phymode: Aggregation, Bifurcation */ + int pcie30_phymode; + struct regmap *phy_grf; + struct regmap *pipe_grf; + struct reset_control *p30phy; + struct phy *phy; + struct clk_bulk_data *clks; + int num_clks; + int num_lanes; + u32 lanes[4]; +}; + +struct rockchip_p3phy_ops { + int (*phy_init)(struct rockchip_p3phy_priv *priv); +}; + +static int rockchip_p3phy_set_mode(struct phy *phy, enum phy_mode mode, int submode) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + + /* Actually We don't care EP/RC mode, but just record it */ + switch (submode) { + case PHY_MODE_PCIE_RC: + priv->mode = PHY_MODE_PCIE_RC; + break; + case PHY_MODE_PCIE_EP: + priv->mode = PHY_MODE_PCIE_EP; + break; + default: + dev_err(&phy->dev, "%s, invalid mode\n", __func__); + return -EINVAL; + } + + return 0; +} + +static int rockchip_p3phy_rk3568_init(struct rockchip_p3phy_priv *priv) +{ + struct phy *phy = priv->phy; + bool bifurcation = false; + int ret; + u32 reg; + + /* Deassert PCIe PMA output clamp mode */ + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON9, GRF_PCIE30PHY_DA_OCM); + + for (int i = 0; i < priv->num_lanes; i++) { + dev_info(&phy->dev, "lane number %d, val %d\n", i, priv->lanes[i]); + if (priv->lanes[i] > 1) + bifurcation = true; + } + + /* Set bifurcation if needed, and it doesn't care RC/EP */ + if (bifurcation) { + dev_info(&phy->dev, "bifurcation enabled\n"); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON6, + GRF_PCIE30PHY_WR_EN | RK3568_BIFURCATION_LANE_0_1); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON1, + GRF_PCIE30PHY_DA_OCM); + } else { + dev_dbg(&phy->dev, "bifurcation disabled\n"); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON6, + GRF_PCIE30PHY_WR_EN & ~RK3568_BIFURCATION_LANE_0_1); + } + + reset_control_deassert(priv->p30phy); + + ret = regmap_read_poll_timeout(priv->phy_grf, + GRF_PCIE30PHY_STATUS0, + reg, SRAM_INIT_DONE(reg), + 0, 500); + if (ret) + dev_err(&priv->phy->dev, "%s: lock failed 0x%x, check input refclk and power supply\n", + __func__, reg); + return ret; +} + +static const struct rockchip_p3phy_ops rk3568_ops = { + .phy_init = rockchip_p3phy_rk3568_init, +}; + +static int rockchip_p3phy_rk3588_init(struct rockchip_p3phy_priv *priv) +{ + u32 reg = 0; + u8 mode = 0; + int ret; + + /* Deassert PCIe PMA output clamp mode */ + regmap_write(priv->phy_grf, RK3588_PCIE3PHY_GRF_CMN_CON0, BIT(8) | BIT(24)); + + /* Set bifurcation if needed */ + for (int i = 0; i < priv->num_lanes; i++) { + if (!priv->lanes[i]) + mode |= (BIT(i) << 3); + + if (priv->lanes[i] > 1) + mode |= (BIT(i) >> 1); + } + + if (!mode) + reg = RK3588_LANE_AGGREGATION; + else { + if (mode & (BIT(0) | BIT(1))) + reg |= RK3588_BIFURCATION_LANE_0_1; + + if (mode & (BIT(2) | BIT(3))) + reg |= RK3588_BIFURCATION_LANE_2_3; + } + + regmap_write(priv->phy_grf, RK3588_PCIE3PHY_GRF_CMN_CON0, (0x7<<16) | reg); + + /* Set pcie1ln_sel in PHP_GRF_PCIESEL_CON */ + if (!IS_ERR(priv->pipe_grf)) { + reg = (mode & (BIT(6) | BIT(7))) >> 6; + if (reg) + regmap_write(priv->pipe_grf, PHP_GRF_PCIESEL_CON, + (reg << 16) | reg); + } + + reset_control_deassert(priv->p30phy); + + ret = regmap_read_poll_timeout(priv->phy_grf, + RK3588_PCIE3PHY_GRF_PHY0_STATUS1, + reg, RK3588_SRAM_INIT_DONE(reg), + 0, 500); + ret |= regmap_read_poll_timeout(priv->phy_grf, + RK3588_PCIE3PHY_GRF_PHY1_STATUS1, + reg, RK3588_SRAM_INIT_DONE(reg), + 0, 500); + if (ret) + dev_err(&priv->phy->dev, "lock failed 0x%x, check input refclk and power supply\n", + reg); + return ret; +} + +static const struct rockchip_p3phy_ops rk3588_ops = { + .phy_init = rockchip_p3phy_rk3588_init, +}; + +static int rochchip_p3phy_init(struct phy *phy) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + int ret; + + ret = clk_bulk_prepare_enable(priv->num_clks, priv->clks); + if (ret) { + dev_err(&priv->phy->dev, "failed to enable PCIe bulk clks %d\n", ret); + return ret; + } + + reset_control_assert(priv->p30phy); + udelay(1); + + if (priv->ops->phy_init) { + ret = priv->ops->phy_init(priv); + if (ret) + clk_bulk_disable_unprepare(priv->num_clks, priv->clks); + } + + return ret; +} + +static int rochchip_p3phy_exit(struct phy *phy) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + + clk_bulk_disable_unprepare(priv->num_clks, priv->clks); + reset_control_assert(priv->p30phy); + return 0; +} + +static const struct phy_ops rochchip_p3phy_ops = { + .init = rochchip_p3phy_init, + .exit = rochchip_p3phy_exit, + .set_mode = rockchip_p3phy_set_mode, + .owner = THIS_MODULE, +}; + +static int rockchip_p3phy_probe(struct platform_device *pdev) +{ + struct phy_provider *phy_provider; + struct device *dev = &pdev->dev; + struct rockchip_p3phy_priv *priv; + struct device_node *np = dev->of_node; + struct resource *res; + int ret; + + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + priv->mmio = devm_ioremap_resource(dev, res); + if (IS_ERR(priv->mmio)) { + ret = PTR_ERR(priv->mmio); + return ret; + } + + priv->ops = of_device_get_match_data(&pdev->dev); + if (!priv->ops) { + dev_err(dev, "no of match data provided\n"); + return -EINVAL; + } + + priv->phy_grf = syscon_regmap_lookup_by_phandle(np, "rockchip,phy-grf"); + if (IS_ERR(priv->phy_grf)) { + dev_err(dev, "failed to find rockchip,phy_grf regmap\n"); + return PTR_ERR(priv->phy_grf); + } + + priv->pipe_grf = syscon_regmap_lookup_by_phandle(dev->of_node, + "rockchip,pipe-grf"); + if (IS_ERR(priv->pipe_grf)) + dev_info(dev, "failed to find rockchip,pipe_grf regmap\n"); + + priv->num_lanes = of_property_read_variable_u32_array(dev->of_node, "data-lanes", + priv->lanes, 2, + ARRAY_SIZE(priv->lanes)); + + /* if no data-lanes assume aggregation */ + if (priv->num_lanes == -EINVAL) { + dev_dbg(dev, "no data-lanes property found\n"); + priv->num_lanes = 1; + priv->lanes[0] = 1; + } else if (priv->num_lanes < 0) { + dev_err(dev, "failed to read data-lanes property %d\n", priv->num_lanes); + return priv->num_lanes; + } + + priv->phy = devm_phy_create(dev, NULL, &rochchip_p3phy_ops); + if (IS_ERR(priv->phy)) { + dev_err(dev, "failed to create combphy\n"); + return PTR_ERR(priv->phy); + } + + priv->p30phy = devm_reset_control_get_optional_exclusive(dev, "phy"); + if (IS_ERR(priv->p30phy)) { + return dev_err_probe(dev, PTR_ERR(priv->p30phy), + "failed to get phy reset control\n"); + } + if (!priv->p30phy) + dev_info(dev, "no phy reset control specified\n"); + + priv->num_clks = devm_clk_bulk_get_all(dev, &priv->clks); + if (priv->num_clks < 1) + return -ENODEV; + + dev_set_drvdata(dev, priv); + phy_set_drvdata(priv->phy, priv); + phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); + return PTR_ERR_OR_ZERO(phy_provider); +} + +static const struct of_device_id rockchip_p3phy_of_match[] = { + { .compatible = "rockchip,rk3568-pcie3-phy", .data = &rk3568_ops }, + { .compatible = "rockchip,rk3588-pcie3-phy", .data = &rk3588_ops }, + { }, +}; +MODULE_DEVICE_TABLE(of, rockchip_p3phy_of_match); + +static struct platform_driver rockchip_p3phy_driver = { + .probe = rockchip_p3phy_probe, + .driver = { + .name = "rockchip-snps-pcie3-phy", + .of_match_table = rockchip_p3phy_of_match, + }, +}; +module_platform_driver(rockchip_p3phy_driver); +MODULE_DESCRIPTION("Rockchip Synopsys PCIe 3.0 PHY driver"); +MODULE_LICENSE("GPL"); diff --git a/include/linux/phy/pcie.h b/include/linux/phy/pcie.h new file mode 100644 index 000000000000..e7ac81764576 --- /dev/null +++ b/include/linux/phy/pcie.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2022 Rockchip Electronics Co., Ltd. + */ +#ifndef __PHY_PCIE_H +#define __PHY_PCIE_H + +#define PHY_MODE_PCIE_RC 20 +#define PHY_MODE_PCIE_EP 21 +#define PHY_MODE_PCIE_BIFURCATION 22 + +#endif -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 3/5] phy: rockchip: Support PCIe v3 @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Shawn Lin <shawn.lin@rock-chips.com> RK3568 supports PCIe v3 using not Combphy like PCIe v2 on rk3566. It use a dedicated PCIe-phy. Add support for this. Initial support by Shawn Lin, modifications by Peter Geis and Frank Wunderlich. Add data-lanes property for splitting pcie-lanes across controllers. The data-lanes is an array where x=0 means lane is disabled and x > 0 means controller x is assigned to phy lane. Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Suggested-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v5: - change pr_* to dev_*, update copyright-years - add naming of magic constants v4: - change u8 lane-map to u32 data-lanes v3: - change dt-binding include - change reset to devm_reset_control_get_optional_exclusive exit on error and lower severity of message if unset - fix from peter: disable reg-write for phy-mode in rockchip_p3phy_probe - move bifurcation/lane-map support from PCIe to phy driver v2: - move dt-bindings header into separate patch - use BIT-macro - make constants better readable - use dev_err instead of pr_* - change dt-binding include due to renaming (phy-snps-pcie3.h => phy-rockchip-pcie3.h) - use exclusive variant of devm_reset_control_get{,_exclusive} - fix semicolon.cocci warnings reported by kernel test robot <lkp@intel.com> --- driver was taken from linux 5.10 based on in https://github.com/JeffyCN/mirrors which now has disappeared Update phy-rockchip-snps-pcie3.c Fix messages for data-lanes Update phy-rockchip-snps-pcie3.c Fix comment for data-lanes --- drivers/phy/rockchip/Kconfig | 9 + drivers/phy/rockchip/Makefile | 1 + .../phy/rockchip/phy-rockchip-snps-pcie3.c | 319 ++++++++++++++++++ include/linux/phy/pcie.h | 12 + 4 files changed, 341 insertions(+) create mode 100644 drivers/phy/rockchip/phy-rockchip-snps-pcie3.c create mode 100644 include/linux/phy/pcie.h diff --git a/drivers/phy/rockchip/Kconfig b/drivers/phy/rockchip/Kconfig index 9022e395c056..94360fc96a6f 100644 --- a/drivers/phy/rockchip/Kconfig +++ b/drivers/phy/rockchip/Kconfig @@ -83,6 +83,15 @@ config PHY_ROCKCHIP_PCIE help Enable this to support the Rockchip PCIe PHY. +config PHY_ROCKCHIP_SNPS_PCIE3 + tristate "Rockchip Snps PCIe3 PHY Driver" + depends on (ARCH_ROCKCHIP && OF) || COMPILE_TEST + depends on HAS_IOMEM + select GENERIC_PHY + select MFD_SYSCON + help + Enable this to support the Rockchip snps PCIe3 PHY. + config PHY_ROCKCHIP_TYPEC tristate "Rockchip TYPEC PHY Driver" depends on OF && (ARCH_ROCKCHIP || COMPILE_TEST) diff --git a/drivers/phy/rockchip/Makefile b/drivers/phy/rockchip/Makefile index a5041efb5b8f..7eab129230d1 100644 --- a/drivers/phy/rockchip/Makefile +++ b/drivers/phy/rockchip/Makefile @@ -8,5 +8,6 @@ obj-$(CONFIG_PHY_ROCKCHIP_INNO_HDMI) += phy-rockchip-inno-hdmi.o obj-$(CONFIG_PHY_ROCKCHIP_INNO_USB2) += phy-rockchip-inno-usb2.o obj-$(CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY) += phy-rockchip-naneng-combphy.o obj-$(CONFIG_PHY_ROCKCHIP_PCIE) += phy-rockchip-pcie.o +obj-$(CONFIG_PHY_ROCKCHIP_SNPS_PCIE3) += phy-rockchip-snps-pcie3.o obj-$(CONFIG_PHY_ROCKCHIP_TYPEC) += phy-rockchip-typec.o obj-$(CONFIG_PHY_ROCKCHIP_USB) += phy-rockchip-usb.o diff --git a/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c new file mode 100644 index 000000000000..1917edda6b47 --- /dev/null +++ b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c @@ -0,0 +1,319 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Rockchip PCIE3.0 phy driver + * + * Copyright (C) 2022 Rockchip Electronics Co., Ltd. + */ + +#include <linux/clk.h> +#include <linux/delay.h> +#include <linux/io.h> +#include <linux/iopoll.h> +#include <linux/kernel.h> +#include <linux/mfd/syscon.h> +#include <linux/module.h> +#include <linux/of_device.h> +#include <linux/phy/pcie.h> +#include <linux/phy/phy.h> +#include <linux/regmap.h> +#include <linux/reset.h> + +/* Register for RK3568 */ +#define GRF_PCIE30PHY_CON1 0x4 +#define GRF_PCIE30PHY_CON6 0x18 +#define GRF_PCIE30PHY_CON9 0x24 +#define GRF_PCIE30PHY_DA_OCM (BIT(15) | BIT(31)) +#define GRF_PCIE30PHY_STATUS0 0x80 +#define GRF_PCIE30PHY_WR_EN (0xf << 16) +#define SRAM_INIT_DONE(reg) (reg & BIT(14)) + +#define RK3568_BIFURCATION_LANE_0_1 BIT(0) + +/* Register for RK3588 */ +#define PHP_GRF_PCIESEL_CON 0x100 +#define RK3588_PCIE3PHY_GRF_CMN_CON0 0x0 +#define RK3588_PCIE3PHY_GRF_PHY0_STATUS1 0x904 +#define RK3588_PCIE3PHY_GRF_PHY1_STATUS1 0xa04 +#define RK3588_SRAM_INIT_DONE(reg) (reg & BIT(0)) + +#define RK3588_BIFURCATION_LANE_0_1 BIT(0) +#define RK3588_BIFURCATION_LANE_2_3 BIT(1) +#define RK3588_LANE_AGGREGATION BIT(2) + +struct rockchip_p3phy_ops; + +struct rockchip_p3phy_priv { + const struct rockchip_p3phy_ops *ops; + void __iomem *mmio; + /* mode: RC, EP */ + int mode; + /* pcie30_phymode: Aggregation, Bifurcation */ + int pcie30_phymode; + struct regmap *phy_grf; + struct regmap *pipe_grf; + struct reset_control *p30phy; + struct phy *phy; + struct clk_bulk_data *clks; + int num_clks; + int num_lanes; + u32 lanes[4]; +}; + +struct rockchip_p3phy_ops { + int (*phy_init)(struct rockchip_p3phy_priv *priv); +}; + +static int rockchip_p3phy_set_mode(struct phy *phy, enum phy_mode mode, int submode) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + + /* Actually We don't care EP/RC mode, but just record it */ + switch (submode) { + case PHY_MODE_PCIE_RC: + priv->mode = PHY_MODE_PCIE_RC; + break; + case PHY_MODE_PCIE_EP: + priv->mode = PHY_MODE_PCIE_EP; + break; + default: + dev_err(&phy->dev, "%s, invalid mode\n", __func__); + return -EINVAL; + } + + return 0; +} + +static int rockchip_p3phy_rk3568_init(struct rockchip_p3phy_priv *priv) +{ + struct phy *phy = priv->phy; + bool bifurcation = false; + int ret; + u32 reg; + + /* Deassert PCIe PMA output clamp mode */ + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON9, GRF_PCIE30PHY_DA_OCM); + + for (int i = 0; i < priv->num_lanes; i++) { + dev_info(&phy->dev, "lane number %d, val %d\n", i, priv->lanes[i]); + if (priv->lanes[i] > 1) + bifurcation = true; + } + + /* Set bifurcation if needed, and it doesn't care RC/EP */ + if (bifurcation) { + dev_info(&phy->dev, "bifurcation enabled\n"); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON6, + GRF_PCIE30PHY_WR_EN | RK3568_BIFURCATION_LANE_0_1); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON1, + GRF_PCIE30PHY_DA_OCM); + } else { + dev_dbg(&phy->dev, "bifurcation disabled\n"); + regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON6, + GRF_PCIE30PHY_WR_EN & ~RK3568_BIFURCATION_LANE_0_1); + } + + reset_control_deassert(priv->p30phy); + + ret = regmap_read_poll_timeout(priv->phy_grf, + GRF_PCIE30PHY_STATUS0, + reg, SRAM_INIT_DONE(reg), + 0, 500); + if (ret) + dev_err(&priv->phy->dev, "%s: lock failed 0x%x, check input refclk and power supply\n", + __func__, reg); + return ret; +} + +static const struct rockchip_p3phy_ops rk3568_ops = { + .phy_init = rockchip_p3phy_rk3568_init, +}; + +static int rockchip_p3phy_rk3588_init(struct rockchip_p3phy_priv *priv) +{ + u32 reg = 0; + u8 mode = 0; + int ret; + + /* Deassert PCIe PMA output clamp mode */ + regmap_write(priv->phy_grf, RK3588_PCIE3PHY_GRF_CMN_CON0, BIT(8) | BIT(24)); + + /* Set bifurcation if needed */ + for (int i = 0; i < priv->num_lanes; i++) { + if (!priv->lanes[i]) + mode |= (BIT(i) << 3); + + if (priv->lanes[i] > 1) + mode |= (BIT(i) >> 1); + } + + if (!mode) + reg = RK3588_LANE_AGGREGATION; + else { + if (mode & (BIT(0) | BIT(1))) + reg |= RK3588_BIFURCATION_LANE_0_1; + + if (mode & (BIT(2) | BIT(3))) + reg |= RK3588_BIFURCATION_LANE_2_3; + } + + regmap_write(priv->phy_grf, RK3588_PCIE3PHY_GRF_CMN_CON0, (0x7<<16) | reg); + + /* Set pcie1ln_sel in PHP_GRF_PCIESEL_CON */ + if (!IS_ERR(priv->pipe_grf)) { + reg = (mode & (BIT(6) | BIT(7))) >> 6; + if (reg) + regmap_write(priv->pipe_grf, PHP_GRF_PCIESEL_CON, + (reg << 16) | reg); + } + + reset_control_deassert(priv->p30phy); + + ret = regmap_read_poll_timeout(priv->phy_grf, + RK3588_PCIE3PHY_GRF_PHY0_STATUS1, + reg, RK3588_SRAM_INIT_DONE(reg), + 0, 500); + ret |= regmap_read_poll_timeout(priv->phy_grf, + RK3588_PCIE3PHY_GRF_PHY1_STATUS1, + reg, RK3588_SRAM_INIT_DONE(reg), + 0, 500); + if (ret) + dev_err(&priv->phy->dev, "lock failed 0x%x, check input refclk and power supply\n", + reg); + return ret; +} + +static const struct rockchip_p3phy_ops rk3588_ops = { + .phy_init = rockchip_p3phy_rk3588_init, +}; + +static int rochchip_p3phy_init(struct phy *phy) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + int ret; + + ret = clk_bulk_prepare_enable(priv->num_clks, priv->clks); + if (ret) { + dev_err(&priv->phy->dev, "failed to enable PCIe bulk clks %d\n", ret); + return ret; + } + + reset_control_assert(priv->p30phy); + udelay(1); + + if (priv->ops->phy_init) { + ret = priv->ops->phy_init(priv); + if (ret) + clk_bulk_disable_unprepare(priv->num_clks, priv->clks); + } + + return ret; +} + +static int rochchip_p3phy_exit(struct phy *phy) +{ + struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy); + + clk_bulk_disable_unprepare(priv->num_clks, priv->clks); + reset_control_assert(priv->p30phy); + return 0; +} + +static const struct phy_ops rochchip_p3phy_ops = { + .init = rochchip_p3phy_init, + .exit = rochchip_p3phy_exit, + .set_mode = rockchip_p3phy_set_mode, + .owner = THIS_MODULE, +}; + +static int rockchip_p3phy_probe(struct platform_device *pdev) +{ + struct phy_provider *phy_provider; + struct device *dev = &pdev->dev; + struct rockchip_p3phy_priv *priv; + struct device_node *np = dev->of_node; + struct resource *res; + int ret; + + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + priv->mmio = devm_ioremap_resource(dev, res); + if (IS_ERR(priv->mmio)) { + ret = PTR_ERR(priv->mmio); + return ret; + } + + priv->ops = of_device_get_match_data(&pdev->dev); + if (!priv->ops) { + dev_err(dev, "no of match data provided\n"); + return -EINVAL; + } + + priv->phy_grf = syscon_regmap_lookup_by_phandle(np, "rockchip,phy-grf"); + if (IS_ERR(priv->phy_grf)) { + dev_err(dev, "failed to find rockchip,phy_grf regmap\n"); + return PTR_ERR(priv->phy_grf); + } + + priv->pipe_grf = syscon_regmap_lookup_by_phandle(dev->of_node, + "rockchip,pipe-grf"); + if (IS_ERR(priv->pipe_grf)) + dev_info(dev, "failed to find rockchip,pipe_grf regmap\n"); + + priv->num_lanes = of_property_read_variable_u32_array(dev->of_node, "data-lanes", + priv->lanes, 2, + ARRAY_SIZE(priv->lanes)); + + /* if no data-lanes assume aggregation */ + if (priv->num_lanes == -EINVAL) { + dev_dbg(dev, "no data-lanes property found\n"); + priv->num_lanes = 1; + priv->lanes[0] = 1; + } else if (priv->num_lanes < 0) { + dev_err(dev, "failed to read data-lanes property %d\n", priv->num_lanes); + return priv->num_lanes; + } + + priv->phy = devm_phy_create(dev, NULL, &rochchip_p3phy_ops); + if (IS_ERR(priv->phy)) { + dev_err(dev, "failed to create combphy\n"); + return PTR_ERR(priv->phy); + } + + priv->p30phy = devm_reset_control_get_optional_exclusive(dev, "phy"); + if (IS_ERR(priv->p30phy)) { + return dev_err_probe(dev, PTR_ERR(priv->p30phy), + "failed to get phy reset control\n"); + } + if (!priv->p30phy) + dev_info(dev, "no phy reset control specified\n"); + + priv->num_clks = devm_clk_bulk_get_all(dev, &priv->clks); + if (priv->num_clks < 1) + return -ENODEV; + + dev_set_drvdata(dev, priv); + phy_set_drvdata(priv->phy, priv); + phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); + return PTR_ERR_OR_ZERO(phy_provider); +} + +static const struct of_device_id rockchip_p3phy_of_match[] = { + { .compatible = "rockchip,rk3568-pcie3-phy", .data = &rk3568_ops }, + { .compatible = "rockchip,rk3588-pcie3-phy", .data = &rk3588_ops }, + { }, +}; +MODULE_DEVICE_TABLE(of, rockchip_p3phy_of_match); + +static struct platform_driver rockchip_p3phy_driver = { + .probe = rockchip_p3phy_probe, + .driver = { + .name = "rockchip-snps-pcie3-phy", + .of_match_table = rockchip_p3phy_of_match, + }, +}; +module_platform_driver(rockchip_p3phy_driver); +MODULE_DESCRIPTION("Rockchip Synopsys PCIe 3.0 PHY driver"); +MODULE_LICENSE("GPL"); diff --git a/include/linux/phy/pcie.h b/include/linux/phy/pcie.h new file mode 100644 index 000000000000..e7ac81764576 --- /dev/null +++ b/include/linux/phy/pcie.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2022 Rockchip Electronics Co., Ltd. + */ +#ifndef __PHY_PCIE_H +#define __PHY_PCIE_H + +#define PHY_MODE_PCIE_RC 20 +#define PHY_MODE_PCIE_EP 21 +#define PHY_MODE_PCIE_BIFURCATION 22 + +#endif -- 2.34.1 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply related [flat|nested] 76+ messages in thread
* Re: [PATCH v5 3/5] phy: rockchip: Support PCIe v3 2022-08-25 19:38 ` Frank Wunderlich (?) (?) @ 2022-09-04 15:06 ` Vinod Koul -1 siblings, 0 replies; 76+ messages in thread From: Vinod Koul @ 2022-09-04 15:06 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 25-08-22, 21:38, Frank Wunderlich wrote: > From: Shawn Lin <shawn.lin@rock-chips.com> > > RK3568 supports PCIe v3 using not Combphy like PCIe v2 on rk3566. > It use a dedicated PCIe-phy. Add support for this. > > Initial support by Shawn Lin, modifications by Peter Geis and Frank > Wunderlich. > > Add data-lanes property for splitting pcie-lanes across controllers. > > The data-lanes is an array where x=0 means lane is disabled and x > 0 > means controller x is assigned to phy lane. Applied, thanks -- ~Vinod -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 3/5] phy: rockchip: Support PCIe v3 @ 2022-09-04 15:06 ` Vinod Koul 0 siblings, 0 replies; 76+ messages in thread From: Vinod Koul @ 2022-09-04 15:06 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 25-08-22, 21:38, Frank Wunderlich wrote: > From: Shawn Lin <shawn.lin@rock-chips.com> > > RK3568 supports PCIe v3 using not Combphy like PCIe v2 on rk3566. > It use a dedicated PCIe-phy. Add support for this. > > Initial support by Shawn Lin, modifications by Peter Geis and Frank > Wunderlich. > > Add data-lanes property for splitting pcie-lanes across controllers. > > The data-lanes is an array where x=0 means lane is disabled and x > 0 > means controller x is assigned to phy lane. Applied, thanks -- ~Vinod ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 3/5] phy: rockchip: Support PCIe v3 @ 2022-09-04 15:06 ` Vinod Koul 0 siblings, 0 replies; 76+ messages in thread From: Vinod Koul @ 2022-09-04 15:06 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 25-08-22, 21:38, Frank Wunderlich wrote: > From: Shawn Lin <shawn.lin@rock-chips.com> > > RK3568 supports PCIe v3 using not Combphy like PCIe v2 on rk3566. > It use a dedicated PCIe-phy. Add support for this. > > Initial support by Shawn Lin, modifications by Peter Geis and Frank > Wunderlich. > > Add data-lanes property for splitting pcie-lanes across controllers. > > The data-lanes is an array where x=0 means lane is disabled and x > 0 > means controller x is assigned to phy lane. Applied, thanks -- ~Vinod _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 3/5] phy: rockchip: Support PCIe v3 @ 2022-09-04 15:06 ` Vinod Koul 0 siblings, 0 replies; 76+ messages in thread From: Vinod Koul @ 2022-09-04 15:06 UTC (permalink / raw) To: Frank Wunderlich Cc: linux-rockchip, Frank Wunderlich, Kishon Vijay Abraham I, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 25-08-22, 21:38, Frank Wunderlich wrote: > From: Shawn Lin <shawn.lin@rock-chips.com> > > RK3568 supports PCIe v3 using not Combphy like PCIe v2 on rk3566. > It use a dedicated PCIe-phy. Add support for this. > > Initial support by Shawn Lin, modifications by Peter Geis and Frank > Wunderlich. > > Add data-lanes property for splitting pcie-lanes across controllers. > > The data-lanes is an array where x=0 means lane is disabled and x > 0 > means controller x is assigned to phy lane. Applied, thanks -- ~Vinod _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* [PATCH v5 4/5] arm64: dts: rockchip: rk3568: Add PCIe v3 nodes 2022-08-25 19:38 ` Frank Wunderlich (?) (?) @ 2022-08-25 19:38 ` Frank Wunderlich -1 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Frank Wunderlich <frank-w@public-files.de> Add nodes to rk356x devicetree to support PCIe v3. Signed-off-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v4: - update pcie3 reg/ranges v3: - fix from Peter: change bus-range and msi-map, msi-map needs to start from 0x0 v2: - change to compatible with soc-part - change rockchip,bifurcation to vendor unspecific bifurcation --- arch/arm64/boot/dts/rockchip/rk3568.dtsi | 122 +++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3568.dtsi b/arch/arm64/boot/dts/rockchip/rk3568.dtsi index 2bdf8c7e9765..ba67b58f05b7 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3568.dtsi @@ -42,6 +42,128 @@ qos_sata0: qos@fe190200 { reg = <0x0 0xfe190200 0x0 0x20>; }; + pcie30_phy_grf: syscon@fdcb8000 { + compatible = "rockchip,rk3568-pcie3-phy-grf", "syscon"; + reg = <0x0 0xfdcb8000 0x0 0x10000>; + }; + + pcie30phy: phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0x0 0xfe8c0000 0x0 0x20000>; + #phy-cells = <0>; + clocks = <&pmucru CLK_PCIE30PHY_REF_M>, <&pmucru CLK_PCIE30PHY_REF_N>, + <&cru PCLK_PCIE30PHY>; + clock-names = "refclk_m", "refclk_n", "pclk"; + resets = <&cru SRST_PCIE30PHY>; + reset-names = "phy"; + rockchip,phy-grf = <&pcie30_phy_grf>; + status = "disabled"; + }; + + pcie3x1: pcie@fe270000 { + compatible = "rockchip,rk3568-pcie"; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x0 0xf>; + clocks = <&cru ACLK_PCIE30X1_MST>, <&cru ACLK_PCIE30X1_SLV>, + <&cru ACLK_PCIE30X1_DBI>, <&cru PCLK_PCIE30X1>, + <&cru CLK_PCIE30X1_AUX_NDFT>; + clock-names = "aclk_mst", "aclk_slv", + "aclk_dbi", "pclk", "aux"; + device_type = "pci"; + interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "sys", "pmc", "msg", "legacy", "err"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &pcie3x1_intc 0>, + <0 0 0 2 &pcie3x1_intc 1>, + <0 0 0 3 &pcie3x1_intc 2>, + <0 0 0 4 &pcie3x1_intc 3>; + linux,pci-domain = <1>; + num-ib-windows = <6>; + num-ob-windows = <2>; + max-link-speed = <3>; + msi-map = <0x0 &gic 0x1000 0x1000>; + num-lanes = <1>; + phys = <&pcie30phy>; + phy-names = "pcie-phy"; + power-domains = <&power RK3568_PD_PIPE>; + reg = <0x3 0xc0400000 0x0 0x00400000>, + <0x0 0xfe270000 0x0 0x00010000>, + <0x3 0x7f000000 0x0 0x01000000>; + ranges = <0x01000000 0x0 0x3ef00000 0x3 0x7ef00000 0x0 0x00100000>, + <0x02000000 0x0 0x00000000 0x3 0x40000000 0x0 0x3ef00000>; + reg-names = "dbi", "apb", "config"; + resets = <&cru SRST_PCIE30X1_POWERUP>; + reset-names = "pipe"; + /* bifurcation; lane1 when using 1+1 */ + status = "disabled"; + + pcie3x1_intc: legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>; + }; + }; + + pcie3x2: pcie@fe280000 { + compatible = "rockchip,rk3568-pcie"; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x0 0xf>; + clocks = <&cru ACLK_PCIE30X2_MST>, <&cru ACLK_PCIE30X2_SLV>, + <&cru ACLK_PCIE30X2_DBI>, <&cru PCLK_PCIE30X2>, + <&cru CLK_PCIE30X2_AUX_NDFT>; + clock-names = "aclk_mst", "aclk_slv", + "aclk_dbi", "pclk", "aux"; + device_type = "pci"; + interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "sys", "pmc", "msg", "legacy", "err"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &pcie3x2_intc 0>, + <0 0 0 2 &pcie3x2_intc 1>, + <0 0 0 3 &pcie3x2_intc 2>, + <0 0 0 4 &pcie3x2_intc 3>; + linux,pci-domain = <2>; + num-ib-windows = <6>; + num-ob-windows = <2>; + max-link-speed = <3>; + msi-map = <0x0 &gic 0x2000 0x1000>; + num-lanes = <2>; + phys = <&pcie30phy>; + phy-names = "pcie-phy"; + power-domains = <&power RK3568_PD_PIPE>; + reg = <0x3 0xc0800000 0x0 0x00400000>, + <0x0 0xfe280000 0x0 0x00010000>, + <0x3 0xbf000000 0x0 0x01000000>; + ranges = <0x01000000 0x0 0x3ef00000 0x3 0xbef00000 0x0 0x00100000>, + <0x02000000 0x0 0x00000000 0x3 0x80000000 0x0 0x3ef00000>; + reg-names = "dbi", "apb", "config"; + resets = <&cru SRST_PCIE30X2_POWERUP>; + reset-names = "pipe"; + /* bifurcation; lane0 when using 1+1 */ + status = "disabled"; + + pcie3x2_intc: legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>; + }; + }; + gmac0: ethernet@fe2a0000 { compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a"; reg = <0x0 0xfe2a0000 0x0 0x10000>; -- 2.34.1 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 4/5] arm64: dts: rockchip: rk3568: Add PCIe v3 nodes @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Frank Wunderlich <frank-w@public-files.de> Add nodes to rk356x devicetree to support PCIe v3. Signed-off-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v4: - update pcie3 reg/ranges v3: - fix from Peter: change bus-range and msi-map, msi-map needs to start from 0x0 v2: - change to compatible with soc-part - change rockchip,bifurcation to vendor unspecific bifurcation --- arch/arm64/boot/dts/rockchip/rk3568.dtsi | 122 +++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3568.dtsi b/arch/arm64/boot/dts/rockchip/rk3568.dtsi index 2bdf8c7e9765..ba67b58f05b7 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3568.dtsi @@ -42,6 +42,128 @@ qos_sata0: qos@fe190200 { reg = <0x0 0xfe190200 0x0 0x20>; }; + pcie30_phy_grf: syscon@fdcb8000 { + compatible = "rockchip,rk3568-pcie3-phy-grf", "syscon"; + reg = <0x0 0xfdcb8000 0x0 0x10000>; + }; + + pcie30phy: phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0x0 0xfe8c0000 0x0 0x20000>; + #phy-cells = <0>; + clocks = <&pmucru CLK_PCIE30PHY_REF_M>, <&pmucru CLK_PCIE30PHY_REF_N>, + <&cru PCLK_PCIE30PHY>; + clock-names = "refclk_m", "refclk_n", "pclk"; + resets = <&cru SRST_PCIE30PHY>; + reset-names = "phy"; + rockchip,phy-grf = <&pcie30_phy_grf>; + status = "disabled"; + }; + + pcie3x1: pcie@fe270000 { + compatible = "rockchip,rk3568-pcie"; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x0 0xf>; + clocks = <&cru ACLK_PCIE30X1_MST>, <&cru ACLK_PCIE30X1_SLV>, + <&cru ACLK_PCIE30X1_DBI>, <&cru PCLK_PCIE30X1>, + <&cru CLK_PCIE30X1_AUX_NDFT>; + clock-names = "aclk_mst", "aclk_slv", + "aclk_dbi", "pclk", "aux"; + device_type = "pci"; + interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "sys", "pmc", "msg", "legacy", "err"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &pcie3x1_intc 0>, + <0 0 0 2 &pcie3x1_intc 1>, + <0 0 0 3 &pcie3x1_intc 2>, + <0 0 0 4 &pcie3x1_intc 3>; + linux,pci-domain = <1>; + num-ib-windows = <6>; + num-ob-windows = <2>; + max-link-speed = <3>; + msi-map = <0x0 &gic 0x1000 0x1000>; + num-lanes = <1>; + phys = <&pcie30phy>; + phy-names = "pcie-phy"; + power-domains = <&power RK3568_PD_PIPE>; + reg = <0x3 0xc0400000 0x0 0x00400000>, + <0x0 0xfe270000 0x0 0x00010000>, + <0x3 0x7f000000 0x0 0x01000000>; + ranges = <0x01000000 0x0 0x3ef00000 0x3 0x7ef00000 0x0 0x00100000>, + <0x02000000 0x0 0x00000000 0x3 0x40000000 0x0 0x3ef00000>; + reg-names = "dbi", "apb", "config"; + resets = <&cru SRST_PCIE30X1_POWERUP>; + reset-names = "pipe"; + /* bifurcation; lane1 when using 1+1 */ + status = "disabled"; + + pcie3x1_intc: legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>; + }; + }; + + pcie3x2: pcie@fe280000 { + compatible = "rockchip,rk3568-pcie"; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x0 0xf>; + clocks = <&cru ACLK_PCIE30X2_MST>, <&cru ACLK_PCIE30X2_SLV>, + <&cru ACLK_PCIE30X2_DBI>, <&cru PCLK_PCIE30X2>, + <&cru CLK_PCIE30X2_AUX_NDFT>; + clock-names = "aclk_mst", "aclk_slv", + "aclk_dbi", "pclk", "aux"; + device_type = "pci"; + interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "sys", "pmc", "msg", "legacy", "err"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &pcie3x2_intc 0>, + <0 0 0 2 &pcie3x2_intc 1>, + <0 0 0 3 &pcie3x2_intc 2>, + <0 0 0 4 &pcie3x2_intc 3>; + linux,pci-domain = <2>; + num-ib-windows = <6>; + num-ob-windows = <2>; + max-link-speed = <3>; + msi-map = <0x0 &gic 0x2000 0x1000>; + num-lanes = <2>; + phys = <&pcie30phy>; + phy-names = "pcie-phy"; + power-domains = <&power RK3568_PD_PIPE>; + reg = <0x3 0xc0800000 0x0 0x00400000>, + <0x0 0xfe280000 0x0 0x00010000>, + <0x3 0xbf000000 0x0 0x01000000>; + ranges = <0x01000000 0x0 0x3ef00000 0x3 0xbef00000 0x0 0x00100000>, + <0x02000000 0x0 0x00000000 0x3 0x80000000 0x0 0x3ef00000>; + reg-names = "dbi", "apb", "config"; + resets = <&cru SRST_PCIE30X2_POWERUP>; + reset-names = "pipe"; + /* bifurcation; lane0 when using 1+1 */ + status = "disabled"; + + pcie3x2_intc: legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>; + }; + }; + gmac0: ethernet@fe2a0000 { compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a"; reg = <0x0 0xfe2a0000 0x0 0x10000>; -- 2.34.1 ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 4/5] arm64: dts: rockchip: rk3568: Add PCIe v3 nodes @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Frank Wunderlich <frank-w@public-files.de> Add nodes to rk356x devicetree to support PCIe v3. Signed-off-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v4: - update pcie3 reg/ranges v3: - fix from Peter: change bus-range and msi-map, msi-map needs to start from 0x0 v2: - change to compatible with soc-part - change rockchip,bifurcation to vendor unspecific bifurcation --- arch/arm64/boot/dts/rockchip/rk3568.dtsi | 122 +++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3568.dtsi b/arch/arm64/boot/dts/rockchip/rk3568.dtsi index 2bdf8c7e9765..ba67b58f05b7 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3568.dtsi @@ -42,6 +42,128 @@ qos_sata0: qos@fe190200 { reg = <0x0 0xfe190200 0x0 0x20>; }; + pcie30_phy_grf: syscon@fdcb8000 { + compatible = "rockchip,rk3568-pcie3-phy-grf", "syscon"; + reg = <0x0 0xfdcb8000 0x0 0x10000>; + }; + + pcie30phy: phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0x0 0xfe8c0000 0x0 0x20000>; + #phy-cells = <0>; + clocks = <&pmucru CLK_PCIE30PHY_REF_M>, <&pmucru CLK_PCIE30PHY_REF_N>, + <&cru PCLK_PCIE30PHY>; + clock-names = "refclk_m", "refclk_n", "pclk"; + resets = <&cru SRST_PCIE30PHY>; + reset-names = "phy"; + rockchip,phy-grf = <&pcie30_phy_grf>; + status = "disabled"; + }; + + pcie3x1: pcie@fe270000 { + compatible = "rockchip,rk3568-pcie"; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x0 0xf>; + clocks = <&cru ACLK_PCIE30X1_MST>, <&cru ACLK_PCIE30X1_SLV>, + <&cru ACLK_PCIE30X1_DBI>, <&cru PCLK_PCIE30X1>, + <&cru CLK_PCIE30X1_AUX_NDFT>; + clock-names = "aclk_mst", "aclk_slv", + "aclk_dbi", "pclk", "aux"; + device_type = "pci"; + interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "sys", "pmc", "msg", "legacy", "err"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &pcie3x1_intc 0>, + <0 0 0 2 &pcie3x1_intc 1>, + <0 0 0 3 &pcie3x1_intc 2>, + <0 0 0 4 &pcie3x1_intc 3>; + linux,pci-domain = <1>; + num-ib-windows = <6>; + num-ob-windows = <2>; + max-link-speed = <3>; + msi-map = <0x0 &gic 0x1000 0x1000>; + num-lanes = <1>; + phys = <&pcie30phy>; + phy-names = "pcie-phy"; + power-domains = <&power RK3568_PD_PIPE>; + reg = <0x3 0xc0400000 0x0 0x00400000>, + <0x0 0xfe270000 0x0 0x00010000>, + <0x3 0x7f000000 0x0 0x01000000>; + ranges = <0x01000000 0x0 0x3ef00000 0x3 0x7ef00000 0x0 0x00100000>, + <0x02000000 0x0 0x00000000 0x3 0x40000000 0x0 0x3ef00000>; + reg-names = "dbi", "apb", "config"; + resets = <&cru SRST_PCIE30X1_POWERUP>; + reset-names = "pipe"; + /* bifurcation; lane1 when using 1+1 */ + status = "disabled"; + + pcie3x1_intc: legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>; + }; + }; + + pcie3x2: pcie@fe280000 { + compatible = "rockchip,rk3568-pcie"; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x0 0xf>; + clocks = <&cru ACLK_PCIE30X2_MST>, <&cru ACLK_PCIE30X2_SLV>, + <&cru ACLK_PCIE30X2_DBI>, <&cru PCLK_PCIE30X2>, + <&cru CLK_PCIE30X2_AUX_NDFT>; + clock-names = "aclk_mst", "aclk_slv", + "aclk_dbi", "pclk", "aux"; + device_type = "pci"; + interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "sys", "pmc", "msg", "legacy", "err"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &pcie3x2_intc 0>, + <0 0 0 2 &pcie3x2_intc 1>, + <0 0 0 3 &pcie3x2_intc 2>, + <0 0 0 4 &pcie3x2_intc 3>; + linux,pci-domain = <2>; + num-ib-windows = <6>; + num-ob-windows = <2>; + max-link-speed = <3>; + msi-map = <0x0 &gic 0x2000 0x1000>; + num-lanes = <2>; + phys = <&pcie30phy>; + phy-names = "pcie-phy"; + power-domains = <&power RK3568_PD_PIPE>; + reg = <0x3 0xc0800000 0x0 0x00400000>, + <0x0 0xfe280000 0x0 0x00010000>, + <0x3 0xbf000000 0x0 0x01000000>; + ranges = <0x01000000 0x0 0x3ef00000 0x3 0xbef00000 0x0 0x00100000>, + <0x02000000 0x0 0x00000000 0x3 0x80000000 0x0 0x3ef00000>; + reg-names = "dbi", "apb", "config"; + resets = <&cru SRST_PCIE30X2_POWERUP>; + reset-names = "pipe"; + /* bifurcation; lane0 when using 1+1 */ + status = "disabled"; + + pcie3x2_intc: legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>; + }; + }; + gmac0: ethernet@fe2a0000 { compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a"; reg = <0x0 0xfe2a0000 0x0 0x10000>; -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 4/5] arm64: dts: rockchip: rk3568: Add PCIe v3 nodes @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Frank Wunderlich <frank-w@public-files.de> Add nodes to rk356x devicetree to support PCIe v3. Signed-off-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v4: - update pcie3 reg/ranges v3: - fix from Peter: change bus-range and msi-map, msi-map needs to start from 0x0 v2: - change to compatible with soc-part - change rockchip,bifurcation to vendor unspecific bifurcation --- arch/arm64/boot/dts/rockchip/rk3568.dtsi | 122 +++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3568.dtsi b/arch/arm64/boot/dts/rockchip/rk3568.dtsi index 2bdf8c7e9765..ba67b58f05b7 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3568.dtsi @@ -42,6 +42,128 @@ qos_sata0: qos@fe190200 { reg = <0x0 0xfe190200 0x0 0x20>; }; + pcie30_phy_grf: syscon@fdcb8000 { + compatible = "rockchip,rk3568-pcie3-phy-grf", "syscon"; + reg = <0x0 0xfdcb8000 0x0 0x10000>; + }; + + pcie30phy: phy@fe8c0000 { + compatible = "rockchip,rk3568-pcie3-phy"; + reg = <0x0 0xfe8c0000 0x0 0x20000>; + #phy-cells = <0>; + clocks = <&pmucru CLK_PCIE30PHY_REF_M>, <&pmucru CLK_PCIE30PHY_REF_N>, + <&cru PCLK_PCIE30PHY>; + clock-names = "refclk_m", "refclk_n", "pclk"; + resets = <&cru SRST_PCIE30PHY>; + reset-names = "phy"; + rockchip,phy-grf = <&pcie30_phy_grf>; + status = "disabled"; + }; + + pcie3x1: pcie@fe270000 { + compatible = "rockchip,rk3568-pcie"; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x0 0xf>; + clocks = <&cru ACLK_PCIE30X1_MST>, <&cru ACLK_PCIE30X1_SLV>, + <&cru ACLK_PCIE30X1_DBI>, <&cru PCLK_PCIE30X1>, + <&cru CLK_PCIE30X1_AUX_NDFT>; + clock-names = "aclk_mst", "aclk_slv", + "aclk_dbi", "pclk", "aux"; + device_type = "pci"; + interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "sys", "pmc", "msg", "legacy", "err"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &pcie3x1_intc 0>, + <0 0 0 2 &pcie3x1_intc 1>, + <0 0 0 3 &pcie3x1_intc 2>, + <0 0 0 4 &pcie3x1_intc 3>; + linux,pci-domain = <1>; + num-ib-windows = <6>; + num-ob-windows = <2>; + max-link-speed = <3>; + msi-map = <0x0 &gic 0x1000 0x1000>; + num-lanes = <1>; + phys = <&pcie30phy>; + phy-names = "pcie-phy"; + power-domains = <&power RK3568_PD_PIPE>; + reg = <0x3 0xc0400000 0x0 0x00400000>, + <0x0 0xfe270000 0x0 0x00010000>, + <0x3 0x7f000000 0x0 0x01000000>; + ranges = <0x01000000 0x0 0x3ef00000 0x3 0x7ef00000 0x0 0x00100000>, + <0x02000000 0x0 0x00000000 0x3 0x40000000 0x0 0x3ef00000>; + reg-names = "dbi", "apb", "config"; + resets = <&cru SRST_PCIE30X1_POWERUP>; + reset-names = "pipe"; + /* bifurcation; lane1 when using 1+1 */ + status = "disabled"; + + pcie3x1_intc: legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>; + }; + }; + + pcie3x2: pcie@fe280000 { + compatible = "rockchip,rk3568-pcie"; + #address-cells = <3>; + #size-cells = <2>; + bus-range = <0x0 0xf>; + clocks = <&cru ACLK_PCIE30X2_MST>, <&cru ACLK_PCIE30X2_SLV>, + <&cru ACLK_PCIE30X2_DBI>, <&cru PCLK_PCIE30X2>, + <&cru CLK_PCIE30X2_AUX_NDFT>; + clock-names = "aclk_mst", "aclk_slv", + "aclk_dbi", "pclk", "aux"; + device_type = "pci"; + interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "sys", "pmc", "msg", "legacy", "err"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0 0 0 1 &pcie3x2_intc 0>, + <0 0 0 2 &pcie3x2_intc 1>, + <0 0 0 3 &pcie3x2_intc 2>, + <0 0 0 4 &pcie3x2_intc 3>; + linux,pci-domain = <2>; + num-ib-windows = <6>; + num-ob-windows = <2>; + max-link-speed = <3>; + msi-map = <0x0 &gic 0x2000 0x1000>; + num-lanes = <2>; + phys = <&pcie30phy>; + phy-names = "pcie-phy"; + power-domains = <&power RK3568_PD_PIPE>; + reg = <0x3 0xc0800000 0x0 0x00400000>, + <0x0 0xfe280000 0x0 0x00010000>, + <0x3 0xbf000000 0x0 0x01000000>; + ranges = <0x01000000 0x0 0x3ef00000 0x3 0xbef00000 0x0 0x00100000>, + <0x02000000 0x0 0x00000000 0x3 0x80000000 0x0 0x3ef00000>; + reg-names = "dbi", "apb", "config"; + resets = <&cru SRST_PCIE30X2_POWERUP>; + reset-names = "pipe"; + /* bifurcation; lane0 when using 1+1 */ + status = "disabled"; + + pcie3x2_intc: legacy-interrupt-controller { + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>; + }; + }; + gmac0: ethernet@fe2a0000 { compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a"; reg = <0x0 0xfe2a0000 0x0 0x10000>; -- 2.34.1 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro 2022-08-25 19:38 ` Frank Wunderlich (?) (?) @ 2022-08-25 19:38 ` Frank Wunderlich -1 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Frank Wunderlich <frank-w@public-files.de> Add Nodes to Bananapi-R2-Pro board to support PCIe v3 and set PCIe related regulators to always on. Suggested-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v5: - rebase on 6.0-rc1 - add pinctrl for pcie - fix ngff pwr_en_h gpio for hw ref 1.1 v4: - change u8 lane-map to u32 data-lanes v3: - squash lane-map over bifurcation property - add comment which slot is M2 and which one if mPCIe - fixes from Peter: - drop regulator-always-on/regulator-boot-on from regulators - increase startup-delay-us for regulators - set phy-mode on PCIe3-phy - add num-lanes to PCIe overrides - add usb node for to PCIe/m2 - move lane-map from PCIe controller to PCIe-phy v2: - underscores in nodenames - rockchip,bifurcation to vendor unspecific bifurcation - fix trailing space --- .../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts index 93d383b8be87..40b90c052634 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { vin-supply = <&dc_12v>; }; + pcie30_avdd0v9: pcie30-avdd0v9 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <&vcc3v3_sys>; + }; + + pcie30_avdd1v8: pcie30-avdd1v8 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc3v3_sys>; + }; + + /* pi6c pcie clock generator feeds both ports */ + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; + startup-delay-us = <200000>; + vin-supply = <&vcc5v0_sys>; + }; + + /* actually fed by vcc3v3_sys, dependent on pi6c clock generator */ + vcc3v3_minipcie: vcc3v3-minipcie-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_minipcie"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&minipcie_enable_h>; + startup-delay-us = <50000>; + vin-supply = <&vcc3v3_pi6c_05>; + }; + + /* actually fed by vcc3v3_sys, dependent on pi6c clock generator */ + vcc3v3_ngff: vcc3v3-ngff-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_ngff"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&ngffpcie_enable_h>; + startup-delay-us = <50000>; + vin-supply = <&vcc3v3_pi6c_05>; + }; + vcc5v0_usb: vcc5v0_usb { compatible = "regulator-fixed"; regulator-name = "vcc5v0_usb"; @@ -513,6 +573,32 @@ rgmii_phy1: ethernet-phy@0 { }; }; +&pcie30phy { + data-lanes = <1 2>; + phy-supply = <&vcc3v3_pi6c_05>; + status = "okay"; +}; + +&pcie3x1 { + /* M.2 slot */ + num-lanes = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&ngffpcie_reset_h>; + reset-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_ngff>; + status = "okay"; +}; + +&pcie3x2 { + /* mPCIe slot */ + num-lanes = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&minipcie_reset_h>; + reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_minipcie>; + status = "okay"; +}; + &pinctrl { leds { blue_led_pin: blue-led-pin { @@ -529,6 +615,24 @@ hym8563_int: hym8563-int { }; }; + pcie { + minipcie_enable_h: minipcie-enable-h { + rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + ngffpcie_enable_h: ngffpcie-enable-h { + rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + minipcie_reset_h: minipcie-reset-h { + rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + ngffpcie_reset_h: ngffpcie-reset-h { + rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + }; + pmic { pmic_int: pmic_int { rockchip,pins = @@ -708,6 +812,19 @@ &usb2phy0_otg { status = "okay"; }; +&usb2phy1 { + /* USB for PCIe/M2 */ + status = "okay"; +}; + +&usb2phy1_host { + status = "okay"; +}; + +&usb2phy1_otg { + status = "okay"; +}; + &vop { assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; -- 2.34.1 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Frank Wunderlich <frank-w@public-files.de> Add Nodes to Bananapi-R2-Pro board to support PCIe v3 and set PCIe related regulators to always on. Suggested-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v5: - rebase on 6.0-rc1 - add pinctrl for pcie - fix ngff pwr_en_h gpio for hw ref 1.1 v4: - change u8 lane-map to u32 data-lanes v3: - squash lane-map over bifurcation property - add comment which slot is M2 and which one if mPCIe - fixes from Peter: - drop regulator-always-on/regulator-boot-on from regulators - increase startup-delay-us for regulators - set phy-mode on PCIe3-phy - add num-lanes to PCIe overrides - add usb node for to PCIe/m2 - move lane-map from PCIe controller to PCIe-phy v2: - underscores in nodenames - rockchip,bifurcation to vendor unspecific bifurcation - fix trailing space --- .../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts index 93d383b8be87..40b90c052634 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { vin-supply = <&dc_12v>; }; + pcie30_avdd0v9: pcie30-avdd0v9 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <&vcc3v3_sys>; + }; + + pcie30_avdd1v8: pcie30-avdd1v8 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc3v3_sys>; + }; + + /* pi6c pcie clock generator feeds both ports */ + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; + startup-delay-us = <200000>; + vin-supply = <&vcc5v0_sys>; + }; + + /* actually fed by vcc3v3_sys, dependent on pi6c clock generator */ + vcc3v3_minipcie: vcc3v3-minipcie-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_minipcie"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&minipcie_enable_h>; + startup-delay-us = <50000>; + vin-supply = <&vcc3v3_pi6c_05>; + }; + + /* actually fed by vcc3v3_sys, dependent on pi6c clock generator */ + vcc3v3_ngff: vcc3v3-ngff-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_ngff"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&ngffpcie_enable_h>; + startup-delay-us = <50000>; + vin-supply = <&vcc3v3_pi6c_05>; + }; + vcc5v0_usb: vcc5v0_usb { compatible = "regulator-fixed"; regulator-name = "vcc5v0_usb"; @@ -513,6 +573,32 @@ rgmii_phy1: ethernet-phy@0 { }; }; +&pcie30phy { + data-lanes = <1 2>; + phy-supply = <&vcc3v3_pi6c_05>; + status = "okay"; +}; + +&pcie3x1 { + /* M.2 slot */ + num-lanes = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&ngffpcie_reset_h>; + reset-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_ngff>; + status = "okay"; +}; + +&pcie3x2 { + /* mPCIe slot */ + num-lanes = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&minipcie_reset_h>; + reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_minipcie>; + status = "okay"; +}; + &pinctrl { leds { blue_led_pin: blue-led-pin { @@ -529,6 +615,24 @@ hym8563_int: hym8563-int { }; }; + pcie { + minipcie_enable_h: minipcie-enable-h { + rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + ngffpcie_enable_h: ngffpcie-enable-h { + rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + minipcie_reset_h: minipcie-reset-h { + rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + ngffpcie_reset_h: ngffpcie-reset-h { + rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + }; + pmic { pmic_int: pmic_int { rockchip,pins = @@ -708,6 +812,19 @@ &usb2phy0_otg { status = "okay"; }; +&usb2phy1 { + /* USB for PCIe/M2 */ + status = "okay"; +}; + +&usb2phy1_host { + status = "okay"; +}; + +&usb2phy1_otg { + status = "okay"; +}; + &vop { assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; -- 2.34.1 ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Frank Wunderlich <frank-w@public-files.de> Add Nodes to Bananapi-R2-Pro board to support PCIe v3 and set PCIe related regulators to always on. Suggested-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v5: - rebase on 6.0-rc1 - add pinctrl for pcie - fix ngff pwr_en_h gpio for hw ref 1.1 v4: - change u8 lane-map to u32 data-lanes v3: - squash lane-map over bifurcation property - add comment which slot is M2 and which one if mPCIe - fixes from Peter: - drop regulator-always-on/regulator-boot-on from regulators - increase startup-delay-us for regulators - set phy-mode on PCIe3-phy - add num-lanes to PCIe overrides - add usb node for to PCIe/m2 - move lane-map from PCIe controller to PCIe-phy v2: - underscores in nodenames - rockchip,bifurcation to vendor unspecific bifurcation - fix trailing space --- .../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts index 93d383b8be87..40b90c052634 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { vin-supply = <&dc_12v>; }; + pcie30_avdd0v9: pcie30-avdd0v9 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <&vcc3v3_sys>; + }; + + pcie30_avdd1v8: pcie30-avdd1v8 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc3v3_sys>; + }; + + /* pi6c pcie clock generator feeds both ports */ + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; + startup-delay-us = <200000>; + vin-supply = <&vcc5v0_sys>; + }; + + /* actually fed by vcc3v3_sys, dependent on pi6c clock generator */ + vcc3v3_minipcie: vcc3v3-minipcie-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_minipcie"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&minipcie_enable_h>; + startup-delay-us = <50000>; + vin-supply = <&vcc3v3_pi6c_05>; + }; + + /* actually fed by vcc3v3_sys, dependent on pi6c clock generator */ + vcc3v3_ngff: vcc3v3-ngff-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_ngff"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&ngffpcie_enable_h>; + startup-delay-us = <50000>; + vin-supply = <&vcc3v3_pi6c_05>; + }; + vcc5v0_usb: vcc5v0_usb { compatible = "regulator-fixed"; regulator-name = "vcc5v0_usb"; @@ -513,6 +573,32 @@ rgmii_phy1: ethernet-phy@0 { }; }; +&pcie30phy { + data-lanes = <1 2>; + phy-supply = <&vcc3v3_pi6c_05>; + status = "okay"; +}; + +&pcie3x1 { + /* M.2 slot */ + num-lanes = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&ngffpcie_reset_h>; + reset-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_ngff>; + status = "okay"; +}; + +&pcie3x2 { + /* mPCIe slot */ + num-lanes = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&minipcie_reset_h>; + reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_minipcie>; + status = "okay"; +}; + &pinctrl { leds { blue_led_pin: blue-led-pin { @@ -529,6 +615,24 @@ hym8563_int: hym8563-int { }; }; + pcie { + minipcie_enable_h: minipcie-enable-h { + rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + ngffpcie_enable_h: ngffpcie-enable-h { + rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + minipcie_reset_h: minipcie-reset-h { + rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + ngffpcie_reset_h: ngffpcie-reset-h { + rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + }; + pmic { pmic_int: pmic_int { rockchip,pins = @@ -708,6 +812,19 @@ &usb2phy0_otg { status = "okay"; }; +&usb2phy1 { + /* USB for PCIe/M2 */ + status = "okay"; +}; + +&usb2phy1_host { + status = "okay"; +}; + +&usb2phy1_otg { + status = "okay"; +}; + &vop { assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 76+ messages in thread
* [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-25 19:38 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-25 19:38 UTC (permalink / raw) To: linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel From: Frank Wunderlich <frank-w@public-files.de> Add Nodes to Bananapi-R2-Pro board to support PCIe v3 and set PCIe related regulators to always on. Suggested-by: Peter Geis <pgwipeout@gmail.com> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- v5: - rebase on 6.0-rc1 - add pinctrl for pcie - fix ngff pwr_en_h gpio for hw ref 1.1 v4: - change u8 lane-map to u32 data-lanes v3: - squash lane-map over bifurcation property - add comment which slot is M2 and which one if mPCIe - fixes from Peter: - drop regulator-always-on/regulator-boot-on from regulators - increase startup-delay-us for regulators - set phy-mode on PCIe3-phy - add num-lanes to PCIe overrides - add usb node for to PCIe/m2 - move lane-map from PCIe controller to PCIe-phy v2: - underscores in nodenames - rockchip,bifurcation to vendor unspecific bifurcation - fix trailing space --- .../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts index 93d383b8be87..40b90c052634 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { vin-supply = <&dc_12v>; }; + pcie30_avdd0v9: pcie30-avdd0v9 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <&vcc3v3_sys>; + }; + + pcie30_avdd1v8: pcie30-avdd1v8 { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc3v3_sys>; + }; + + /* pi6c pcie clock generator feeds both ports */ + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; + startup-delay-us = <200000>; + vin-supply = <&vcc5v0_sys>; + }; + + /* actually fed by vcc3v3_sys, dependent on pi6c clock generator */ + vcc3v3_minipcie: vcc3v3-minipcie-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_minipcie"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&minipcie_enable_h>; + startup-delay-us = <50000>; + vin-supply = <&vcc3v3_pi6c_05>; + }; + + /* actually fed by vcc3v3_sys, dependent on pi6c clock generator */ + vcc3v3_ngff: vcc3v3-ngff-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_ngff"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&ngffpcie_enable_h>; + startup-delay-us = <50000>; + vin-supply = <&vcc3v3_pi6c_05>; + }; + vcc5v0_usb: vcc5v0_usb { compatible = "regulator-fixed"; regulator-name = "vcc5v0_usb"; @@ -513,6 +573,32 @@ rgmii_phy1: ethernet-phy@0 { }; }; +&pcie30phy { + data-lanes = <1 2>; + phy-supply = <&vcc3v3_pi6c_05>; + status = "okay"; +}; + +&pcie3x1 { + /* M.2 slot */ + num-lanes = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&ngffpcie_reset_h>; + reset-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_ngff>; + status = "okay"; +}; + +&pcie3x2 { + /* mPCIe slot */ + num-lanes = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&minipcie_reset_h>; + reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_minipcie>; + status = "okay"; +}; + &pinctrl { leds { blue_led_pin: blue-led-pin { @@ -529,6 +615,24 @@ hym8563_int: hym8563-int { }; }; + pcie { + minipcie_enable_h: minipcie-enable-h { + rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + ngffpcie_enable_h: ngffpcie-enable-h { + rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + minipcie_reset_h: minipcie-reset-h { + rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + + ngffpcie_reset_h: ngffpcie-reset-h { + rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none_drv_level_5>; + }; + }; + pmic { pmic_int: pmic_int { rockchip,pins = @@ -708,6 +812,19 @@ &usb2phy0_otg { status = "okay"; }; +&usb2phy1 { + /* USB for PCIe/M2 */ + status = "okay"; +}; + +&usb2phy1_host { + status = "okay"; +}; + +&usb2phy1_otg { + status = "okay"; +}; + &vop { assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; -- 2.34.1 _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply related [flat|nested] 76+ messages in thread
* Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro 2022-08-25 19:38 ` Frank Wunderlich (?) (?) @ 2022-08-26 6:50 ` Krzysztof Kozlowski -1 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-26 6:50 UTC (permalink / raw) To: Frank Wunderlich, linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 25/08/2022 22:38, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add Nodes to Bananapi-R2-Pro board to support PCIe v3 and > set PCIe related regulators to always on. > > Suggested-by: Peter Geis <pgwipeout@gmail.com> > Signed-off-by: Frank Wunderlich <frank-w@public-files.de> > --- > v5: > - rebase on 6.0-rc1 > - add pinctrl for pcie > - fix ngff pwr_en_h gpio for hw ref 1.1 > > v4: > - change u8 lane-map to u32 data-lanes > > v3: > - squash lane-map over bifurcation property > - add comment which slot is M2 and which one if mPCIe > - fixes from Peter: > - drop regulator-always-on/regulator-boot-on from regulators > - increase startup-delay-us for regulators > - set phy-mode on PCIe3-phy > - add num-lanes to PCIe overrides > - add usb node for to PCIe/m2 > - move lane-map from PCIe controller to PCIe-phy > > v2: > - underscores in nodenames > - rockchip,bifurcation to vendor unspecific bifurcation > - fix trailing space > --- > .../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 ++++++++++++++++++ > 1 file changed, 117 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > index 93d383b8be87..40b90c052634 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > vin-supply = <&dc_12v>; > }; > > + pcie30_avdd0v9: pcie30-avdd0v9 { Use consistent naming, so if other nodes have "regulator" suffix, use it here as well. > + compatible = "regulator-fixed"; > + regulator-name = "pcie30_avdd0v9"; > + regulator-always-on; > + regulator-boot-on; > + regulator-min-microvolt = <900000>; > + regulator-max-microvolt = <900000>; > + vin-supply = <&vcc3v3_sys>; > + }; > + > + pcie30_avdd1v8: pcie30-avdd1v8 { Ditto. > + compatible = "regulator-fixed"; > + regulator-name = "pcie30_avdd1v8"; > + regulator-always-on; > + regulator-boot-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + vin-supply = <&vcc3v3_sys>; > + }; > + > + /* pi6c pcie clock generator feeds both ports */ > + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { > + compatible = "regulator-fixed"; > + regulator-name = "vcc3v3_pcie"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + enable-active-high; > + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; > + startup-delay-us = <200000>; > + vin-supply = <&vcc5v0_sys>; > + }; > + Best regards, Krzysztof -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-26 6:50 ` Krzysztof Kozlowski 0 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-26 6:50 UTC (permalink / raw) To: Frank Wunderlich, linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 25/08/2022 22:38, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add Nodes to Bananapi-R2-Pro board to support PCIe v3 and > set PCIe related regulators to always on. > > Suggested-by: Peter Geis <pgwipeout@gmail.com> > Signed-off-by: Frank Wunderlich <frank-w@public-files.de> > --- > v5: > - rebase on 6.0-rc1 > - add pinctrl for pcie > - fix ngff pwr_en_h gpio for hw ref 1.1 > > v4: > - change u8 lane-map to u32 data-lanes > > v3: > - squash lane-map over bifurcation property > - add comment which slot is M2 and which one if mPCIe > - fixes from Peter: > - drop regulator-always-on/regulator-boot-on from regulators > - increase startup-delay-us for regulators > - set phy-mode on PCIe3-phy > - add num-lanes to PCIe overrides > - add usb node for to PCIe/m2 > - move lane-map from PCIe controller to PCIe-phy > > v2: > - underscores in nodenames > - rockchip,bifurcation to vendor unspecific bifurcation > - fix trailing space > --- > .../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 ++++++++++++++++++ > 1 file changed, 117 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > index 93d383b8be87..40b90c052634 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > vin-supply = <&dc_12v>; > }; > > + pcie30_avdd0v9: pcie30-avdd0v9 { Use consistent naming, so if other nodes have "regulator" suffix, use it here as well. > + compatible = "regulator-fixed"; > + regulator-name = "pcie30_avdd0v9"; > + regulator-always-on; > + regulator-boot-on; > + regulator-min-microvolt = <900000>; > + regulator-max-microvolt = <900000>; > + vin-supply = <&vcc3v3_sys>; > + }; > + > + pcie30_avdd1v8: pcie30-avdd1v8 { Ditto. > + compatible = "regulator-fixed"; > + regulator-name = "pcie30_avdd1v8"; > + regulator-always-on; > + regulator-boot-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + vin-supply = <&vcc3v3_sys>; > + }; > + > + /* pi6c pcie clock generator feeds both ports */ > + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { > + compatible = "regulator-fixed"; > + regulator-name = "vcc3v3_pcie"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + enable-active-high; > + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; > + startup-delay-us = <200000>; > + vin-supply = <&vcc5v0_sys>; > + }; > + Best regards, Krzysztof ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-26 6:50 ` Krzysztof Kozlowski 0 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-26 6:50 UTC (permalink / raw) To: Frank Wunderlich, linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 25/08/2022 22:38, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add Nodes to Bananapi-R2-Pro board to support PCIe v3 and > set PCIe related regulators to always on. > > Suggested-by: Peter Geis <pgwipeout@gmail.com> > Signed-off-by: Frank Wunderlich <frank-w@public-files.de> > --- > v5: > - rebase on 6.0-rc1 > - add pinctrl for pcie > - fix ngff pwr_en_h gpio for hw ref 1.1 > > v4: > - change u8 lane-map to u32 data-lanes > > v3: > - squash lane-map over bifurcation property > - add comment which slot is M2 and which one if mPCIe > - fixes from Peter: > - drop regulator-always-on/regulator-boot-on from regulators > - increase startup-delay-us for regulators > - set phy-mode on PCIe3-phy > - add num-lanes to PCIe overrides > - add usb node for to PCIe/m2 > - move lane-map from PCIe controller to PCIe-phy > > v2: > - underscores in nodenames > - rockchip,bifurcation to vendor unspecific bifurcation > - fix trailing space > --- > .../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 ++++++++++++++++++ > 1 file changed, 117 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > index 93d383b8be87..40b90c052634 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > vin-supply = <&dc_12v>; > }; > > + pcie30_avdd0v9: pcie30-avdd0v9 { Use consistent naming, so if other nodes have "regulator" suffix, use it here as well. > + compatible = "regulator-fixed"; > + regulator-name = "pcie30_avdd0v9"; > + regulator-always-on; > + regulator-boot-on; > + regulator-min-microvolt = <900000>; > + regulator-max-microvolt = <900000>; > + vin-supply = <&vcc3v3_sys>; > + }; > + > + pcie30_avdd1v8: pcie30-avdd1v8 { Ditto. > + compatible = "regulator-fixed"; > + regulator-name = "pcie30_avdd1v8"; > + regulator-always-on; > + regulator-boot-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + vin-supply = <&vcc3v3_sys>; > + }; > + > + /* pi6c pcie clock generator feeds both ports */ > + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { > + compatible = "regulator-fixed"; > + regulator-name = "vcc3v3_pcie"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + enable-active-high; > + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; > + startup-delay-us = <200000>; > + vin-supply = <&vcc5v0_sys>; > + }; > + Best regards, Krzysztof _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-26 6:50 ` Krzysztof Kozlowski 0 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-26 6:50 UTC (permalink / raw) To: Frank Wunderlich, linux-rockchip Cc: Frank Wunderlich, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 25/08/2022 22:38, Frank Wunderlich wrote: > From: Frank Wunderlich <frank-w@public-files.de> > > Add Nodes to Bananapi-R2-Pro board to support PCIe v3 and > set PCIe related regulators to always on. > > Suggested-by: Peter Geis <pgwipeout@gmail.com> > Signed-off-by: Frank Wunderlich <frank-w@public-files.de> > --- > v5: > - rebase on 6.0-rc1 > - add pinctrl for pcie > - fix ngff pwr_en_h gpio for hw ref 1.1 > > v4: > - change u8 lane-map to u32 data-lanes > > v3: > - squash lane-map over bifurcation property > - add comment which slot is M2 and which one if mPCIe > - fixes from Peter: > - drop regulator-always-on/regulator-boot-on from regulators > - increase startup-delay-us for regulators > - set phy-mode on PCIe3-phy > - add num-lanes to PCIe overrides > - add usb node for to PCIe/m2 > - move lane-map from PCIe controller to PCIe-phy > > v2: > - underscores in nodenames > - rockchip,bifurcation to vendor unspecific bifurcation > - fix trailing space > --- > .../boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 117 ++++++++++++++++++ > 1 file changed, 117 insertions(+) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > index 93d383b8be87..40b90c052634 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > vin-supply = <&dc_12v>; > }; > > + pcie30_avdd0v9: pcie30-avdd0v9 { Use consistent naming, so if other nodes have "regulator" suffix, use it here as well. > + compatible = "regulator-fixed"; > + regulator-name = "pcie30_avdd0v9"; > + regulator-always-on; > + regulator-boot-on; > + regulator-min-microvolt = <900000>; > + regulator-max-microvolt = <900000>; > + vin-supply = <&vcc3v3_sys>; > + }; > + > + pcie30_avdd1v8: pcie30-avdd1v8 { Ditto. > + compatible = "regulator-fixed"; > + regulator-name = "pcie30_avdd1v8"; > + regulator-always-on; > + regulator-boot-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + vin-supply = <&vcc3v3_sys>; > + }; > + > + /* pi6c pcie clock generator feeds both ports */ > + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { > + compatible = "regulator-fixed"; > + regulator-name = "vcc3v3_pcie"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + enable-active-high; > + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; > + startup-delay-us = <200000>; > + vin-supply = <&vcc5v0_sys>; > + }; > + Best regards, Krzysztof _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* Aw: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro 2022-08-26 6:50 ` Krzysztof Kozlowski (?) (?) @ 2022-08-27 8:50 ` Frank Wunderlich -1 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-27 8:50 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel Hi > Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > On 25/08/2022 22:38, Frank Wunderlich wrote: > > From: Frank Wunderlich <frank-w@public-files.de> > > diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > index 93d383b8be87..40b90c052634 100644 > > --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > > vin-supply = <&dc_12v>; > > }; > > > > + pcie30_avdd0v9: pcie30-avdd0v9 { > > Use consistent naming, so if other nodes have "regulator" suffix, use it > here as well. only these 3 new have the suffix: vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator vcc3v3_minipcie: vcc3v3-minipcie-regulator vcc3v3_ngff: vcc3v3-ngff-regulator so i would drop it there... so i end up with (including existing ones to compare): vcc3v3_sys: vcc3v3-sys vcc5v0_sys: vcc5v0-sys pcie30_avdd0v9: pcie30-avdd0v9 pcie30_avdd1v8: pcie30-avdd1v8 vcc3v3_pi6c_05: vcc3v3-pi6c-05 vcc3v3_minipcie: vcc3v3-minipcie vcc3v3_ngff: vcc3v3-ngff vcc5v0_usb: vcc5v0_usb vcc5v0_usb_host: vcc5v0-usb-host vcc5v0_usb_otg: vcc5v0-usb-otg is this ok? maybe swap avdd* and pcie30 part to have voltage in front of function. > > + compatible = "regulator-fixed"; > > + regulator-name = "pcie30_avdd0v9"; > > + regulator-always-on; > > + regulator-boot-on; > > + regulator-min-microvolt = <900000>; > > + regulator-max-microvolt = <900000>; > > + vin-supply = <&vcc3v3_sys>; > > + }; > > + > > + pcie30_avdd1v8: pcie30-avdd1v8 { > > Ditto. > > > > + compatible = "regulator-fixed"; > > + regulator-name = "pcie30_avdd1v8"; > > + regulator-always-on; > > + regulator-boot-on; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <1800000>; > > + vin-supply = <&vcc3v3_sys>; > > + }; > > + > > + /* pi6c pcie clock generator feeds both ports */ > > + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { > > + compatible = "regulator-fixed"; > > + regulator-name = "vcc3v3_pcie"; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + enable-active-high; > > + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; > > + startup-delay-us = <200000>; > > + vin-supply = <&vcc5v0_sys>; > > + }; > > + > > Best regards, > Krzysztof > -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Aw: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 8:50 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-27 8:50 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel Hi > Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > On 25/08/2022 22:38, Frank Wunderlich wrote: > > From: Frank Wunderlich <frank-w@public-files.de> > > diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > index 93d383b8be87..40b90c052634 100644 > > --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > > vin-supply = <&dc_12v>; > > }; > > > > + pcie30_avdd0v9: pcie30-avdd0v9 { > > Use consistent naming, so if other nodes have "regulator" suffix, use it > here as well. only these 3 new have the suffix: vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator vcc3v3_minipcie: vcc3v3-minipcie-regulator vcc3v3_ngff: vcc3v3-ngff-regulator so i would drop it there... so i end up with (including existing ones to compare): vcc3v3_sys: vcc3v3-sys vcc5v0_sys: vcc5v0-sys pcie30_avdd0v9: pcie30-avdd0v9 pcie30_avdd1v8: pcie30-avdd1v8 vcc3v3_pi6c_05: vcc3v3-pi6c-05 vcc3v3_minipcie: vcc3v3-minipcie vcc3v3_ngff: vcc3v3-ngff vcc5v0_usb: vcc5v0_usb vcc5v0_usb_host: vcc5v0-usb-host vcc5v0_usb_otg: vcc5v0-usb-otg is this ok? maybe swap avdd* and pcie30 part to have voltage in front of function. > > + compatible = "regulator-fixed"; > > + regulator-name = "pcie30_avdd0v9"; > > + regulator-always-on; > > + regulator-boot-on; > > + regulator-min-microvolt = <900000>; > > + regulator-max-microvolt = <900000>; > > + vin-supply = <&vcc3v3_sys>; > > + }; > > + > > + pcie30_avdd1v8: pcie30-avdd1v8 { > > Ditto. > > > > + compatible = "regulator-fixed"; > > + regulator-name = "pcie30_avdd1v8"; > > + regulator-always-on; > > + regulator-boot-on; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <1800000>; > > + vin-supply = <&vcc3v3_sys>; > > + }; > > + > > + /* pi6c pcie clock generator feeds both ports */ > > + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { > > + compatible = "regulator-fixed"; > > + regulator-name = "vcc3v3_pcie"; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + enable-active-high; > > + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; > > + startup-delay-us = <200000>; > > + vin-supply = <&vcc5v0_sys>; > > + }; > > + > > Best regards, > Krzysztof > ^ permalink raw reply [flat|nested] 76+ messages in thread
* Aw: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 8:50 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-27 8:50 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel Hi > Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > On 25/08/2022 22:38, Frank Wunderlich wrote: > > From: Frank Wunderlich <frank-w@public-files.de> > > diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > index 93d383b8be87..40b90c052634 100644 > > --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > > vin-supply = <&dc_12v>; > > }; > > > > + pcie30_avdd0v9: pcie30-avdd0v9 { > > Use consistent naming, so if other nodes have "regulator" suffix, use it > here as well. only these 3 new have the suffix: vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator vcc3v3_minipcie: vcc3v3-minipcie-regulator vcc3v3_ngff: vcc3v3-ngff-regulator so i would drop it there... so i end up with (including existing ones to compare): vcc3v3_sys: vcc3v3-sys vcc5v0_sys: vcc5v0-sys pcie30_avdd0v9: pcie30-avdd0v9 pcie30_avdd1v8: pcie30-avdd1v8 vcc3v3_pi6c_05: vcc3v3-pi6c-05 vcc3v3_minipcie: vcc3v3-minipcie vcc3v3_ngff: vcc3v3-ngff vcc5v0_usb: vcc5v0_usb vcc5v0_usb_host: vcc5v0-usb-host vcc5v0_usb_otg: vcc5v0-usb-otg is this ok? maybe swap avdd* and pcie30 part to have voltage in front of function. > > + compatible = "regulator-fixed"; > > + regulator-name = "pcie30_avdd0v9"; > > + regulator-always-on; > > + regulator-boot-on; > > + regulator-min-microvolt = <900000>; > > + regulator-max-microvolt = <900000>; > > + vin-supply = <&vcc3v3_sys>; > > + }; > > + > > + pcie30_avdd1v8: pcie30-avdd1v8 { > > Ditto. > > > > + compatible = "regulator-fixed"; > > + regulator-name = "pcie30_avdd1v8"; > > + regulator-always-on; > > + regulator-boot-on; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <1800000>; > > + vin-supply = <&vcc3v3_sys>; > > + }; > > + > > + /* pi6c pcie clock generator feeds both ports */ > > + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { > > + compatible = "regulator-fixed"; > > + regulator-name = "vcc3v3_pcie"; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + enable-active-high; > > + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; > > + startup-delay-us = <200000>; > > + vin-supply = <&vcc5v0_sys>; > > + }; > > + > > Best regards, > Krzysztof > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Aw: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 8:50 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-27 8:50 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel Hi > Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > On 25/08/2022 22:38, Frank Wunderlich wrote: > > From: Frank Wunderlich <frank-w@public-files.de> > > diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > index 93d383b8be87..40b90c052634 100644 > > --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > > vin-supply = <&dc_12v>; > > }; > > > > + pcie30_avdd0v9: pcie30-avdd0v9 { > > Use consistent naming, so if other nodes have "regulator" suffix, use it > here as well. only these 3 new have the suffix: vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator vcc3v3_minipcie: vcc3v3-minipcie-regulator vcc3v3_ngff: vcc3v3-ngff-regulator so i would drop it there... so i end up with (including existing ones to compare): vcc3v3_sys: vcc3v3-sys vcc5v0_sys: vcc5v0-sys pcie30_avdd0v9: pcie30-avdd0v9 pcie30_avdd1v8: pcie30-avdd1v8 vcc3v3_pi6c_05: vcc3v3-pi6c-05 vcc3v3_minipcie: vcc3v3-minipcie vcc3v3_ngff: vcc3v3-ngff vcc5v0_usb: vcc5v0_usb vcc5v0_usb_host: vcc5v0-usb-host vcc5v0_usb_otg: vcc5v0-usb-otg is this ok? maybe swap avdd* and pcie30 part to have voltage in front of function. > > + compatible = "regulator-fixed"; > > + regulator-name = "pcie30_avdd0v9"; > > + regulator-always-on; > > + regulator-boot-on; > > + regulator-min-microvolt = <900000>; > > + regulator-max-microvolt = <900000>; > > + vin-supply = <&vcc3v3_sys>; > > + }; > > + > > + pcie30_avdd1v8: pcie30-avdd1v8 { > > Ditto. > > > > + compatible = "regulator-fixed"; > > + regulator-name = "pcie30_avdd1v8"; > > + regulator-always-on; > > + regulator-boot-on; > > + regulator-min-microvolt = <1800000>; > > + regulator-max-microvolt = <1800000>; > > + vin-supply = <&vcc3v3_sys>; > > + }; > > + > > + /* pi6c pcie clock generator feeds both ports */ > > + vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { > > + compatible = "regulator-fixed"; > > + regulator-name = "vcc3v3_pcie"; > > + regulator-min-microvolt = <3300000>; > > + regulator-max-microvolt = <3300000>; > > + enable-active-high; > > + gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; > > + startup-delay-us = <200000>; > > + vin-supply = <&vcc5v0_sys>; > > + }; > > + > > Best regards, > Krzysztof > _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro 2022-08-27 8:50 ` Frank Wunderlich (?) (?) @ 2022-08-27 8:56 ` Krzysztof Kozlowski -1 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-27 8:56 UTC (permalink / raw) To: Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 27/08/2022 11:50, Frank Wunderlich wrote: > Hi > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> >> On 25/08/2022 22:38, Frank Wunderlich wrote: >>> From: Frank Wunderlich <frank-w@public-files.de> > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> index 93d383b8be87..40b90c052634 100644 >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { >>> vin-supply = <&dc_12v>; >>> }; >>> >>> + pcie30_avdd0v9: pcie30-avdd0v9 { >> >> Use consistent naming, so if other nodes have "regulator" suffix, use it >> here as well. > > only these 3 new have the suffix: > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > vcc3v3_minipcie: vcc3v3-minipcie-regulator > vcc3v3_ngff: vcc3v3-ngff-regulator > > so i would drop it there... > > so i end up with (including existing ones to compare): > > vcc3v3_sys: vcc3v3-sys > vcc5v0_sys: vcc5v0-sys > pcie30_avdd0v9: pcie30-avdd0v9 > pcie30_avdd1v8: pcie30-avdd1v8 > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > vcc3v3_minipcie: vcc3v3-minipcie > vcc3v3_ngff: vcc3v3-ngff > vcc5v0_usb: vcc5v0_usb > vcc5v0_usb_host: vcc5v0-usb-host > vcc5v0_usb_otg: vcc5v0-usb-otg > > is this ok? > > maybe swap avdd* and pcie30 part to have voltage in front of function. > I prefer all of them have regulator suffix. I think reasonable is also to rename the old ones and then add new ones with suffix. Best regards, Krzysztof -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 8:56 ` Krzysztof Kozlowski 0 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-27 8:56 UTC (permalink / raw) To: Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 27/08/2022 11:50, Frank Wunderlich wrote: > Hi > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> >> On 25/08/2022 22:38, Frank Wunderlich wrote: >>> From: Frank Wunderlich <frank-w@public-files.de> > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> index 93d383b8be87..40b90c052634 100644 >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { >>> vin-supply = <&dc_12v>; >>> }; >>> >>> + pcie30_avdd0v9: pcie30-avdd0v9 { >> >> Use consistent naming, so if other nodes have "regulator" suffix, use it >> here as well. > > only these 3 new have the suffix: > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > vcc3v3_minipcie: vcc3v3-minipcie-regulator > vcc3v3_ngff: vcc3v3-ngff-regulator > > so i would drop it there... > > so i end up with (including existing ones to compare): > > vcc3v3_sys: vcc3v3-sys > vcc5v0_sys: vcc5v0-sys > pcie30_avdd0v9: pcie30-avdd0v9 > pcie30_avdd1v8: pcie30-avdd1v8 > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > vcc3v3_minipcie: vcc3v3-minipcie > vcc3v3_ngff: vcc3v3-ngff > vcc5v0_usb: vcc5v0_usb > vcc5v0_usb_host: vcc5v0-usb-host > vcc5v0_usb_otg: vcc5v0-usb-otg > > is this ok? > > maybe swap avdd* and pcie30 part to have voltage in front of function. > I prefer all of them have regulator suffix. I think reasonable is also to rename the old ones and then add new ones with suffix. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 8:56 ` Krzysztof Kozlowski 0 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-27 8:56 UTC (permalink / raw) To: Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 27/08/2022 11:50, Frank Wunderlich wrote: > Hi > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> >> On 25/08/2022 22:38, Frank Wunderlich wrote: >>> From: Frank Wunderlich <frank-w@public-files.de> > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> index 93d383b8be87..40b90c052634 100644 >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { >>> vin-supply = <&dc_12v>; >>> }; >>> >>> + pcie30_avdd0v9: pcie30-avdd0v9 { >> >> Use consistent naming, so if other nodes have "regulator" suffix, use it >> here as well. > > only these 3 new have the suffix: > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > vcc3v3_minipcie: vcc3v3-minipcie-regulator > vcc3v3_ngff: vcc3v3-ngff-regulator > > so i would drop it there... > > so i end up with (including existing ones to compare): > > vcc3v3_sys: vcc3v3-sys > vcc5v0_sys: vcc5v0-sys > pcie30_avdd0v9: pcie30-avdd0v9 > pcie30_avdd1v8: pcie30-avdd1v8 > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > vcc3v3_minipcie: vcc3v3-minipcie > vcc3v3_ngff: vcc3v3-ngff > vcc5v0_usb: vcc5v0_usb > vcc5v0_usb_host: vcc5v0-usb-host > vcc5v0_usb_otg: vcc5v0-usb-otg > > is this ok? > > maybe swap avdd* and pcie30 part to have voltage in front of function. > I prefer all of them have regulator suffix. I think reasonable is also to rename the old ones and then add new ones with suffix. Best regards, Krzysztof _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 8:56 ` Krzysztof Kozlowski 0 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-27 8:56 UTC (permalink / raw) To: Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 27/08/2022 11:50, Frank Wunderlich wrote: > Hi > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> >> On 25/08/2022 22:38, Frank Wunderlich wrote: >>> From: Frank Wunderlich <frank-w@public-files.de> > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> index 93d383b8be87..40b90c052634 100644 >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { >>> vin-supply = <&dc_12v>; >>> }; >>> >>> + pcie30_avdd0v9: pcie30-avdd0v9 { >> >> Use consistent naming, so if other nodes have "regulator" suffix, use it >> here as well. > > only these 3 new have the suffix: > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > vcc3v3_minipcie: vcc3v3-minipcie-regulator > vcc3v3_ngff: vcc3v3-ngff-regulator > > so i would drop it there... > > so i end up with (including existing ones to compare): > > vcc3v3_sys: vcc3v3-sys > vcc5v0_sys: vcc5v0-sys > pcie30_avdd0v9: pcie30-avdd0v9 > pcie30_avdd1v8: pcie30-avdd1v8 > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > vcc3v3_minipcie: vcc3v3-minipcie > vcc3v3_ngff: vcc3v3-ngff > vcc5v0_usb: vcc5v0_usb > vcc5v0_usb_host: vcc5v0-usb-host > vcc5v0_usb_otg: vcc5v0-usb-otg > > is this ok? > > maybe swap avdd* and pcie30 part to have voltage in front of function. > I prefer all of them have regulator suffix. I think reasonable is also to rename the old ones and then add new ones with suffix. Best regards, Krzysztof _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro 2022-08-27 8:56 ` Krzysztof Kozlowski (?) (?) @ 2022-08-27 9:14 ` Frank Wunderlich -1 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-27 9:14 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel > Gesendet: Samstag, 27. August 2022 um 10:56 Uhr > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > On 27/08/2022 11:50, Frank Wunderlich wrote: > > Hi > > > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > >> On 25/08/2022 22:38, Frank Wunderlich wrote: > >>> From: Frank Wunderlich <frank-w@public-files.de> > > > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> index 93d383b8be87..40b90c052634 100644 > >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > >>> vin-supply = <&dc_12v>; > >>> }; > >>> > >>> + pcie30_avdd0v9: pcie30-avdd0v9 { > >> > >> Use consistent naming, so if other nodes have "regulator" suffix, use it > >> here as well. > > > > only these 3 new have the suffix: > > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > > vcc3v3_minipcie: vcc3v3-minipcie-regulator > > vcc3v3_ngff: vcc3v3-ngff-regulator > > > > so i would drop it there... > > > > so i end up with (including existing ones to compare): > > > > vcc3v3_sys: vcc3v3-sys > > vcc5v0_sys: vcc5v0-sys > > pcie30_avdd0v9: pcie30-avdd0v9 > > pcie30_avdd1v8: pcie30-avdd1v8 > > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > > vcc3v3_minipcie: vcc3v3-minipcie > > vcc3v3_ngff: vcc3v3-ngff > > vcc5v0_usb: vcc5v0_usb > > vcc5v0_usb_host: vcc5v0-usb-host > > vcc5v0_usb_otg: vcc5v0-usb-otg > > > > is this ok? > > > > maybe swap avdd* and pcie30 part to have voltage in front of function. > > > > I prefer all of them have regulator suffix. I think reasonable is also > to rename the old ones and then add new ones with suffix. ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. so basicly here - pcie30_avdd0v9: pcie30-avdd0v9 { + pcie30_avdd0v9: pcie30-avdd0v9-regulator { - pcie30_avdd1v8: pcie30-avdd1v8 { + pcie30_avdd1v8: pcie30-avdd1v8-regulator { how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. regards Frank -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 9:14 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-27 9:14 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel > Gesendet: Samstag, 27. August 2022 um 10:56 Uhr > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > On 27/08/2022 11:50, Frank Wunderlich wrote: > > Hi > > > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > >> On 25/08/2022 22:38, Frank Wunderlich wrote: > >>> From: Frank Wunderlich <frank-w@public-files.de> > > > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> index 93d383b8be87..40b90c052634 100644 > >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > >>> vin-supply = <&dc_12v>; > >>> }; > >>> > >>> + pcie30_avdd0v9: pcie30-avdd0v9 { > >> > >> Use consistent naming, so if other nodes have "regulator" suffix, use it > >> here as well. > > > > only these 3 new have the suffix: > > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > > vcc3v3_minipcie: vcc3v3-minipcie-regulator > > vcc3v3_ngff: vcc3v3-ngff-regulator > > > > so i would drop it there... > > > > so i end up with (including existing ones to compare): > > > > vcc3v3_sys: vcc3v3-sys > > vcc5v0_sys: vcc5v0-sys > > pcie30_avdd0v9: pcie30-avdd0v9 > > pcie30_avdd1v8: pcie30-avdd1v8 > > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > > vcc3v3_minipcie: vcc3v3-minipcie > > vcc3v3_ngff: vcc3v3-ngff > > vcc5v0_usb: vcc5v0_usb > > vcc5v0_usb_host: vcc5v0-usb-host > > vcc5v0_usb_otg: vcc5v0-usb-otg > > > > is this ok? > > > > maybe swap avdd* and pcie30 part to have voltage in front of function. > > > > I prefer all of them have regulator suffix. I think reasonable is also > to rename the old ones and then add new ones with suffix. ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. so basicly here - pcie30_avdd0v9: pcie30-avdd0v9 { + pcie30_avdd0v9: pcie30-avdd0v9-regulator { - pcie30_avdd1v8: pcie30-avdd1v8 { + pcie30_avdd1v8: pcie30-avdd1v8-regulator { how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. regards Frank ^ permalink raw reply [flat|nested] 76+ messages in thread
* Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 9:14 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-27 9:14 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel > Gesendet: Samstag, 27. August 2022 um 10:56 Uhr > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > On 27/08/2022 11:50, Frank Wunderlich wrote: > > Hi > > > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > >> On 25/08/2022 22:38, Frank Wunderlich wrote: > >>> From: Frank Wunderlich <frank-w@public-files.de> > > > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> index 93d383b8be87..40b90c052634 100644 > >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > >>> vin-supply = <&dc_12v>; > >>> }; > >>> > >>> + pcie30_avdd0v9: pcie30-avdd0v9 { > >> > >> Use consistent naming, so if other nodes have "regulator" suffix, use it > >> here as well. > > > > only these 3 new have the suffix: > > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > > vcc3v3_minipcie: vcc3v3-minipcie-regulator > > vcc3v3_ngff: vcc3v3-ngff-regulator > > > > so i would drop it there... > > > > so i end up with (including existing ones to compare): > > > > vcc3v3_sys: vcc3v3-sys > > vcc5v0_sys: vcc5v0-sys > > pcie30_avdd0v9: pcie30-avdd0v9 > > pcie30_avdd1v8: pcie30-avdd1v8 > > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > > vcc3v3_minipcie: vcc3v3-minipcie > > vcc3v3_ngff: vcc3v3-ngff > > vcc5v0_usb: vcc5v0_usb > > vcc5v0_usb_host: vcc5v0-usb-host > > vcc5v0_usb_otg: vcc5v0-usb-otg > > > > is this ok? > > > > maybe swap avdd* and pcie30 part to have voltage in front of function. > > > > I prefer all of them have regulator suffix. I think reasonable is also > to rename the old ones and then add new ones with suffix. ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. so basicly here - pcie30_avdd0v9: pcie30-avdd0v9 { + pcie30_avdd0v9: pcie30-avdd0v9-regulator { - pcie30_avdd1v8: pcie30-avdd1v8 { + pcie30_avdd1v8: pcie30-avdd1v8-regulator { how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. regards Frank _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 9:14 ` Frank Wunderlich 0 siblings, 0 replies; 76+ messages in thread From: Frank Wunderlich @ 2022-08-27 9:14 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel > Gesendet: Samstag, 27. August 2022 um 10:56 Uhr > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > On 27/08/2022 11:50, Frank Wunderlich wrote: > > Hi > > > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > >> On 25/08/2022 22:38, Frank Wunderlich wrote: > >>> From: Frank Wunderlich <frank-w@public-files.de> > > > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> index 93d383b8be87..40b90c052634 100644 > >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > >>> vin-supply = <&dc_12v>; > >>> }; > >>> > >>> + pcie30_avdd0v9: pcie30-avdd0v9 { > >> > >> Use consistent naming, so if other nodes have "regulator" suffix, use it > >> here as well. > > > > only these 3 new have the suffix: > > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > > vcc3v3_minipcie: vcc3v3-minipcie-regulator > > vcc3v3_ngff: vcc3v3-ngff-regulator > > > > so i would drop it there... > > > > so i end up with (including existing ones to compare): > > > > vcc3v3_sys: vcc3v3-sys > > vcc5v0_sys: vcc5v0-sys > > pcie30_avdd0v9: pcie30-avdd0v9 > > pcie30_avdd1v8: pcie30-avdd1v8 > > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > > vcc3v3_minipcie: vcc3v3-minipcie > > vcc3v3_ngff: vcc3v3-ngff > > vcc5v0_usb: vcc5v0_usb > > vcc5v0_usb_host: vcc5v0-usb-host > > vcc5v0_usb_otg: vcc5v0-usb-otg > > > > is this ok? > > > > maybe swap avdd* and pcie30 part to have voltage in front of function. > > > > I prefer all of them have regulator suffix. I think reasonable is also > to rename the old ones and then add new ones with suffix. ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. so basicly here - pcie30_avdd0v9: pcie30-avdd0v9 { + pcie30_avdd0v9: pcie30-avdd0v9-regulator { - pcie30_avdd1v8: pcie30-avdd1v8 { + pcie30_avdd1v8: pcie30-avdd1v8-regulator { how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. regards Frank _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro 2022-08-27 9:14 ` Frank Wunderlich (?) (?) @ 2022-08-27 9:19 ` Krzysztof Kozlowski -1 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-27 9:19 UTC (permalink / raw) To: Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 27/08/2022 12:14, Frank Wunderlich wrote: >> Gesendet: Samstag, 27. August 2022 um 10:56 Uhr >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > >> On 27/08/2022 11:50, Frank Wunderlich wrote: >>> Hi >>> >>>> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr >>>> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> >>>> On 25/08/2022 22:38, Frank Wunderlich wrote: >>>>> From: Frank Wunderlich <frank-w@public-files.de> >>> >>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> index 93d383b8be87..40b90c052634 100644 >>>>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { >>>>> vin-supply = <&dc_12v>; >>>>> }; >>>>> >>>>> + pcie30_avdd0v9: pcie30-avdd0v9 { >>>> >>>> Use consistent naming, so if other nodes have "regulator" suffix, use it >>>> here as well. >>> >>> only these 3 new have the suffix: >>> >>> vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator >>> vcc3v3_minipcie: vcc3v3-minipcie-regulator >>> vcc3v3_ngff: vcc3v3-ngff-regulator >>> >>> so i would drop it there... >>> >>> so i end up with (including existing ones to compare): >>> >>> vcc3v3_sys: vcc3v3-sys >>> vcc5v0_sys: vcc5v0-sys >>> pcie30_avdd0v9: pcie30-avdd0v9 >>> pcie30_avdd1v8: pcie30-avdd1v8 >>> vcc3v3_pi6c_05: vcc3v3-pi6c-05 >>> vcc3v3_minipcie: vcc3v3-minipcie >>> vcc3v3_ngff: vcc3v3-ngff >>> vcc5v0_usb: vcc5v0_usb >>> vcc5v0_usb_host: vcc5v0-usb-host >>> vcc5v0_usb_otg: vcc5v0-usb-otg >>> >>> is this ok? >>> >>> maybe swap avdd* and pcie30 part to have voltage in front of function. >>> >> >> I prefer all of them have regulator suffix. I think reasonable is also >> to rename the old ones and then add new ones with suffix. > > ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. > > so basicly here > - pcie30_avdd0v9: pcie30-avdd0v9 { > + pcie30_avdd0v9: pcie30-avdd0v9-regulator { > - pcie30_avdd1v8: pcie30-avdd1v8 { > + pcie30_avdd1v8: pcie30-avdd1v8-regulator { > > how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? > > avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. Does not matter to me - it is still a specific prefix, so whatever you put there it's for you, not for me. Keeping something aligned to schematic - even if not consistently named - makes sense to me. Best regards, Krzysztof -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 9:19 ` Krzysztof Kozlowski 0 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-27 9:19 UTC (permalink / raw) To: Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 27/08/2022 12:14, Frank Wunderlich wrote: >> Gesendet: Samstag, 27. August 2022 um 10:56 Uhr >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > >> On 27/08/2022 11:50, Frank Wunderlich wrote: >>> Hi >>> >>>> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr >>>> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> >>>> On 25/08/2022 22:38, Frank Wunderlich wrote: >>>>> From: Frank Wunderlich <frank-w@public-files.de> >>> >>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> index 93d383b8be87..40b90c052634 100644 >>>>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { >>>>> vin-supply = <&dc_12v>; >>>>> }; >>>>> >>>>> + pcie30_avdd0v9: pcie30-avdd0v9 { >>>> >>>> Use consistent naming, so if other nodes have "regulator" suffix, use it >>>> here as well. >>> >>> only these 3 new have the suffix: >>> >>> vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator >>> vcc3v3_minipcie: vcc3v3-minipcie-regulator >>> vcc3v3_ngff: vcc3v3-ngff-regulator >>> >>> so i would drop it there... >>> >>> so i end up with (including existing ones to compare): >>> >>> vcc3v3_sys: vcc3v3-sys >>> vcc5v0_sys: vcc5v0-sys >>> pcie30_avdd0v9: pcie30-avdd0v9 >>> pcie30_avdd1v8: pcie30-avdd1v8 >>> vcc3v3_pi6c_05: vcc3v3-pi6c-05 >>> vcc3v3_minipcie: vcc3v3-minipcie >>> vcc3v3_ngff: vcc3v3-ngff >>> vcc5v0_usb: vcc5v0_usb >>> vcc5v0_usb_host: vcc5v0-usb-host >>> vcc5v0_usb_otg: vcc5v0-usb-otg >>> >>> is this ok? >>> >>> maybe swap avdd* and pcie30 part to have voltage in front of function. >>> >> >> I prefer all of them have regulator suffix. I think reasonable is also >> to rename the old ones and then add new ones with suffix. > > ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. > > so basicly here > - pcie30_avdd0v9: pcie30-avdd0v9 { > + pcie30_avdd0v9: pcie30-avdd0v9-regulator { > - pcie30_avdd1v8: pcie30-avdd1v8 { > + pcie30_avdd1v8: pcie30-avdd1v8-regulator { > > how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? > > avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. Does not matter to me - it is still a specific prefix, so whatever you put there it's for you, not for me. Keeping something aligned to schematic - even if not consistently named - makes sense to me. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 9:19 ` Krzysztof Kozlowski 0 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-27 9:19 UTC (permalink / raw) To: Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 27/08/2022 12:14, Frank Wunderlich wrote: >> Gesendet: Samstag, 27. August 2022 um 10:56 Uhr >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > >> On 27/08/2022 11:50, Frank Wunderlich wrote: >>> Hi >>> >>>> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr >>>> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> >>>> On 25/08/2022 22:38, Frank Wunderlich wrote: >>>>> From: Frank Wunderlich <frank-w@public-files.de> >>> >>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> index 93d383b8be87..40b90c052634 100644 >>>>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { >>>>> vin-supply = <&dc_12v>; >>>>> }; >>>>> >>>>> + pcie30_avdd0v9: pcie30-avdd0v9 { >>>> >>>> Use consistent naming, so if other nodes have "regulator" suffix, use it >>>> here as well. >>> >>> only these 3 new have the suffix: >>> >>> vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator >>> vcc3v3_minipcie: vcc3v3-minipcie-regulator >>> vcc3v3_ngff: vcc3v3-ngff-regulator >>> >>> so i would drop it there... >>> >>> so i end up with (including existing ones to compare): >>> >>> vcc3v3_sys: vcc3v3-sys >>> vcc5v0_sys: vcc5v0-sys >>> pcie30_avdd0v9: pcie30-avdd0v9 >>> pcie30_avdd1v8: pcie30-avdd1v8 >>> vcc3v3_pi6c_05: vcc3v3-pi6c-05 >>> vcc3v3_minipcie: vcc3v3-minipcie >>> vcc3v3_ngff: vcc3v3-ngff >>> vcc5v0_usb: vcc5v0_usb >>> vcc5v0_usb_host: vcc5v0-usb-host >>> vcc5v0_usb_otg: vcc5v0-usb-otg >>> >>> is this ok? >>> >>> maybe swap avdd* and pcie30 part to have voltage in front of function. >>> >> >> I prefer all of them have regulator suffix. I think reasonable is also >> to rename the old ones and then add new ones with suffix. > > ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. > > so basicly here > - pcie30_avdd0v9: pcie30-avdd0v9 { > + pcie30_avdd0v9: pcie30-avdd0v9-regulator { > - pcie30_avdd1v8: pcie30-avdd1v8 { > + pcie30_avdd1v8: pcie30-avdd1v8-regulator { > > how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? > > avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. Does not matter to me - it is still a specific prefix, so whatever you put there it's for you, not for me. Keeping something aligned to schematic - even if not consistently named - makes sense to me. Best regards, Krzysztof _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-08-27 9:19 ` Krzysztof Kozlowski 0 siblings, 0 replies; 76+ messages in thread From: Krzysztof Kozlowski @ 2022-08-27 9:19 UTC (permalink / raw) To: Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Heiko Stuebner, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel On 27/08/2022 12:14, Frank Wunderlich wrote: >> Gesendet: Samstag, 27. August 2022 um 10:56 Uhr >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > >> On 27/08/2022 11:50, Frank Wunderlich wrote: >>> Hi >>> >>>> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr >>>> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> >>>> On 25/08/2022 22:38, Frank Wunderlich wrote: >>>>> From: Frank Wunderlich <frank-w@public-files.de> >>> >>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> index 93d383b8be87..40b90c052634 100644 >>>>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts >>>>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { >>>>> vin-supply = <&dc_12v>; >>>>> }; >>>>> >>>>> + pcie30_avdd0v9: pcie30-avdd0v9 { >>>> >>>> Use consistent naming, so if other nodes have "regulator" suffix, use it >>>> here as well. >>> >>> only these 3 new have the suffix: >>> >>> vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator >>> vcc3v3_minipcie: vcc3v3-minipcie-regulator >>> vcc3v3_ngff: vcc3v3-ngff-regulator >>> >>> so i would drop it there... >>> >>> so i end up with (including existing ones to compare): >>> >>> vcc3v3_sys: vcc3v3-sys >>> vcc5v0_sys: vcc5v0-sys >>> pcie30_avdd0v9: pcie30-avdd0v9 >>> pcie30_avdd1v8: pcie30-avdd1v8 >>> vcc3v3_pi6c_05: vcc3v3-pi6c-05 >>> vcc3v3_minipcie: vcc3v3-minipcie >>> vcc3v3_ngff: vcc3v3-ngff >>> vcc5v0_usb: vcc5v0_usb >>> vcc5v0_usb_host: vcc5v0-usb-host >>> vcc5v0_usb_otg: vcc5v0-usb-otg >>> >>> is this ok? >>> >>> maybe swap avdd* and pcie30 part to have voltage in front of function. >>> >> >> I prefer all of them have regulator suffix. I think reasonable is also >> to rename the old ones and then add new ones with suffix. > > ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. > > so basicly here > - pcie30_avdd0v9: pcie30-avdd0v9 { > + pcie30_avdd0v9: pcie30-avdd0v9-regulator { > - pcie30_avdd1v8: pcie30-avdd1v8 { > + pcie30_avdd1v8: pcie30-avdd1v8-regulator { > > how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? > > avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. Does not matter to me - it is still a specific prefix, so whatever you put there it's for you, not for me. Keeping something aligned to schematic - even if not consistently named - makes sense to me. Best regards, Krzysztof _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro 2022-08-27 9:14 ` Frank Wunderlich (?) (?) @ 2022-09-04 15:28 ` Heiko Stübner -1 siblings, 0 replies; 76+ messages in thread From: Heiko Stübner @ 2022-09-04 15:28 UTC (permalink / raw) To: Krzysztof Kozlowski, Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel Hi, Am Samstag, 27. August 2022, 11:14:28 CEST schrieb Frank Wunderlich: > > Gesendet: Samstag, 27. August 2022 um 10:56 Uhr > > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > > > On 27/08/2022 11:50, Frank Wunderlich wrote: > > > Hi > > > > > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > > >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > > >> On 25/08/2022 22:38, Frank Wunderlich wrote: > > >>> From: Frank Wunderlich <frank-w@public-files.de> > > > > > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> index 93d383b8be87..40b90c052634 100644 > > >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > > >>> vin-supply = <&dc_12v>; > > >>> }; > > >>> > > >>> + pcie30_avdd0v9: pcie30-avdd0v9 { > > >> > > >> Use consistent naming, so if other nodes have "regulator" suffix, use it > > >> here as well. > > > > > > only these 3 new have the suffix: > > > > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > > > vcc3v3_minipcie: vcc3v3-minipcie-regulator > > > vcc3v3_ngff: vcc3v3-ngff-regulator > > > > > > so i would drop it there... > > > > > > so i end up with (including existing ones to compare): > > > > > > vcc3v3_sys: vcc3v3-sys > > > vcc5v0_sys: vcc5v0-sys > > > pcie30_avdd0v9: pcie30-avdd0v9 > > > pcie30_avdd1v8: pcie30-avdd1v8 > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > > > vcc3v3_minipcie: vcc3v3-minipcie > > > vcc3v3_ngff: vcc3v3-ngff > > > vcc5v0_usb: vcc5v0_usb > > > vcc5v0_usb_host: vcc5v0-usb-host > > > vcc5v0_usb_otg: vcc5v0-usb-otg > > > > > > is this ok? > > > > > > maybe swap avdd* and pcie30 part to have voltage in front of function. > > > > > > > I prefer all of them have regulator suffix. I think reasonable is also > > to rename the old ones and then add new ones with suffix. > > ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. > > so basicly here > - pcie30_avdd0v9: pcie30-avdd0v9 { > + pcie30_avdd0v9: pcie30-avdd0v9-regulator { > - pcie30_avdd1v8: pcie30-avdd1v8 { > + pcie30_avdd1v8: pcie30-avdd1v8-regulator { > > how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? > > avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. now that the phy-driver changes got applied I'll just pick up the remaining patches and do the node-name conversion while applying, so no need to send another revision for it. But of course feel free so send patches for converting the other regulator names. And I'm definitly preferring keeping close to schematic names :-) Heiko -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-09-04 15:28 ` Heiko Stübner 0 siblings, 0 replies; 76+ messages in thread From: Heiko Stübner @ 2022-09-04 15:28 UTC (permalink / raw) To: Krzysztof Kozlowski, Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel Hi, Am Samstag, 27. August 2022, 11:14:28 CEST schrieb Frank Wunderlich: > > Gesendet: Samstag, 27. August 2022 um 10:56 Uhr > > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > > > On 27/08/2022 11:50, Frank Wunderlich wrote: > > > Hi > > > > > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > > >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > > >> On 25/08/2022 22:38, Frank Wunderlich wrote: > > >>> From: Frank Wunderlich <frank-w@public-files.de> > > > > > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> index 93d383b8be87..40b90c052634 100644 > > >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > > >>> vin-supply = <&dc_12v>; > > >>> }; > > >>> > > >>> + pcie30_avdd0v9: pcie30-avdd0v9 { > > >> > > >> Use consistent naming, so if other nodes have "regulator" suffix, use it > > >> here as well. > > > > > > only these 3 new have the suffix: > > > > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > > > vcc3v3_minipcie: vcc3v3-minipcie-regulator > > > vcc3v3_ngff: vcc3v3-ngff-regulator > > > > > > so i would drop it there... > > > > > > so i end up with (including existing ones to compare): > > > > > > vcc3v3_sys: vcc3v3-sys > > > vcc5v0_sys: vcc5v0-sys > > > pcie30_avdd0v9: pcie30-avdd0v9 > > > pcie30_avdd1v8: pcie30-avdd1v8 > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > > > vcc3v3_minipcie: vcc3v3-minipcie > > > vcc3v3_ngff: vcc3v3-ngff > > > vcc5v0_usb: vcc5v0_usb > > > vcc5v0_usb_host: vcc5v0-usb-host > > > vcc5v0_usb_otg: vcc5v0-usb-otg > > > > > > is this ok? > > > > > > maybe swap avdd* and pcie30 part to have voltage in front of function. > > > > > > > I prefer all of them have regulator suffix. I think reasonable is also > > to rename the old ones and then add new ones with suffix. > > ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. > > so basicly here > - pcie30_avdd0v9: pcie30-avdd0v9 { > + pcie30_avdd0v9: pcie30-avdd0v9-regulator { > - pcie30_avdd1v8: pcie30-avdd1v8 { > + pcie30_avdd1v8: pcie30-avdd1v8-regulator { > > how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? > > avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. now that the phy-driver changes got applied I'll just pick up the remaining patches and do the node-name conversion while applying, so no need to send another revision for it. But of course feel free so send patches for converting the other regulator names. And I'm definitly preferring keeping close to schematic names :-) Heiko ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-09-04 15:28 ` Heiko Stübner 0 siblings, 0 replies; 76+ messages in thread From: Heiko Stübner @ 2022-09-04 15:28 UTC (permalink / raw) To: Krzysztof Kozlowski, Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel Hi, Am Samstag, 27. August 2022, 11:14:28 CEST schrieb Frank Wunderlich: > > Gesendet: Samstag, 27. August 2022 um 10:56 Uhr > > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > > > On 27/08/2022 11:50, Frank Wunderlich wrote: > > > Hi > > > > > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > > >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > > >> On 25/08/2022 22:38, Frank Wunderlich wrote: > > >>> From: Frank Wunderlich <frank-w@public-files.de> > > > > > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> index 93d383b8be87..40b90c052634 100644 > > >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > > >>> vin-supply = <&dc_12v>; > > >>> }; > > >>> > > >>> + pcie30_avdd0v9: pcie30-avdd0v9 { > > >> > > >> Use consistent naming, so if other nodes have "regulator" suffix, use it > > >> here as well. > > > > > > only these 3 new have the suffix: > > > > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > > > vcc3v3_minipcie: vcc3v3-minipcie-regulator > > > vcc3v3_ngff: vcc3v3-ngff-regulator > > > > > > so i would drop it there... > > > > > > so i end up with (including existing ones to compare): > > > > > > vcc3v3_sys: vcc3v3-sys > > > vcc5v0_sys: vcc5v0-sys > > > pcie30_avdd0v9: pcie30-avdd0v9 > > > pcie30_avdd1v8: pcie30-avdd1v8 > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > > > vcc3v3_minipcie: vcc3v3-minipcie > > > vcc3v3_ngff: vcc3v3-ngff > > > vcc5v0_usb: vcc5v0_usb > > > vcc5v0_usb_host: vcc5v0-usb-host > > > vcc5v0_usb_otg: vcc5v0-usb-otg > > > > > > is this ok? > > > > > > maybe swap avdd* and pcie30 part to have voltage in front of function. > > > > > > > I prefer all of them have regulator suffix. I think reasonable is also > > to rename the old ones and then add new ones with suffix. > > ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. > > so basicly here > - pcie30_avdd0v9: pcie30-avdd0v9 { > + pcie30_avdd0v9: pcie30-avdd0v9-regulator { > - pcie30_avdd1v8: pcie30-avdd1v8 { > + pcie30_avdd1v8: pcie30-avdd1v8-regulator { > > how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? > > avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. now that the phy-driver changes got applied I'll just pick up the remaining patches and do the node-name conversion while applying, so no need to send another revision for it. But of course feel free so send patches for converting the other regulator names. And I'm definitly preferring keeping close to schematic names :-) Heiko _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: Aw: Re: Re: [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro @ 2022-09-04 15:28 ` Heiko Stübner 0 siblings, 0 replies; 76+ messages in thread From: Heiko Stübner @ 2022-09-04 15:28 UTC (permalink / raw) To: Krzysztof Kozlowski, Frank Wunderlich Cc: Frank Wunderlich, linux-rockchip, Kishon Vijay Abraham I, Vinod Koul, Rob Herring, Krzysztof Kozlowski, Philipp Zabel, Yifeng Zhao, Johan Jonker, Peter Geis, Simon Xue, Liang Chen, Shawn Lin, linux-phy, devicetree, linux-arm-kernel, linux-kernel Hi, Am Samstag, 27. August 2022, 11:14:28 CEST schrieb Frank Wunderlich: > > Gesendet: Samstag, 27. August 2022 um 10:56 Uhr > > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > > > On 27/08/2022 11:50, Frank Wunderlich wrote: > > > Hi > > > > > >> Gesendet: Freitag, 26. August 2022 um 08:50 Uhr > > >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org> > > >> On 25/08/2022 22:38, Frank Wunderlich wrote: > > >>> From: Frank Wunderlich <frank-w@public-files.de> > > > > > >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> index 93d383b8be87..40b90c052634 100644 > > >>> --- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts > > >>> @@ -86,6 +86,66 @@ vcc5v0_sys: vcc5v0-sys { > > >>> vin-supply = <&dc_12v>; > > >>> }; > > >>> > > >>> + pcie30_avdd0v9: pcie30-avdd0v9 { > > >> > > >> Use consistent naming, so if other nodes have "regulator" suffix, use it > > >> here as well. > > > > > > only these 3 new have the suffix: > > > > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator > > > vcc3v3_minipcie: vcc3v3-minipcie-regulator > > > vcc3v3_ngff: vcc3v3-ngff-regulator > > > > > > so i would drop it there... > > > > > > so i end up with (including existing ones to compare): > > > > > > vcc3v3_sys: vcc3v3-sys > > > vcc5v0_sys: vcc5v0-sys > > > pcie30_avdd0v9: pcie30-avdd0v9 > > > pcie30_avdd1v8: pcie30-avdd1v8 > > > vcc3v3_pi6c_05: vcc3v3-pi6c-05 > > > vcc3v3_minipcie: vcc3v3-minipcie > > > vcc3v3_ngff: vcc3v3-ngff > > > vcc5v0_usb: vcc5v0_usb > > > vcc5v0_usb_host: vcc5v0-usb-host > > > vcc5v0_usb_otg: vcc5v0-usb-otg > > > > > > is this ok? > > > > > > maybe swap avdd* and pcie30 part to have voltage in front of function. > > > > > > > I prefer all of them have regulator suffix. I think reasonable is also > > to rename the old ones and then add new ones with suffix. > > ok, will change these to add -regulator in name (not label). and then rename the others in separate Patch outside of the series. > > so basicly here > - pcie30_avdd0v9: pcie30-avdd0v9 { > + pcie30_avdd0v9: pcie30-avdd0v9-regulator { > - pcie30_avdd1v8: pcie30-avdd1v8 { > + pcie30_avdd1v8: pcie30-avdd1v8-regulator { > > how about the swapping of pcie30 and the avddXvY? In Schematic they are named PCIE30_AVDD_0V9 / PCIE30_AVDD_1V8, so better leave this? > > avdd0v9-pcie30 will be more similar to the other regulators, but inconsistent with Schematic. now that the phy-driver changes got applied I'll just pick up the remaining patches and do the node-name conversion while applying, so no need to send another revision for it. But of course feel free so send patches for converting the other regulator names. And I'm definitly preferring keeping close to schematic names :-) Heiko _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: (subset) [PATCH v5 0/5] RK3568 PCIe V3 support 2022-08-25 19:38 ` Frank Wunderlich (?) (?) @ 2022-09-04 17:22 ` Heiko Stuebner -1 siblings, 0 replies; 76+ messages in thread From: Heiko Stuebner @ 2022-09-04 17:22 UTC (permalink / raw) To: Frank Wunderlich, linux-rockchip Cc: Heiko Stuebner, Rob Herring, Philipp Zabel, Liang Chen, Kishon Vijay Abraham I, Yifeng Zhao, Shawn Lin, Krzysztof Kozlowski, Johan Jonker, devicetree, linux-kernel, linux-phy, linux-arm-kernel, Frank Wunderlich, Peter Geis, Simon Xue, Vinod Koul On Thu, 25 Aug 2022 21:38:31 +0200, Frank Wunderlich wrote: > This series adds Rockchip PCIe V3 support found on rk3568 SOC. > > Compared to PCIeV2 which uses the Naneng combphy, PCIe v3 uses a dedicated > PCI-phy. > > Frank Wunderlich (4): > dt-bindings: phy: rockchip: add PCIe v3 phy > dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf > arm64: dts: rockchip: rk3568: Add PCIe v3 nodes > arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro > > [...] Applied, thanks! [2/5] dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf commit: 4e441643b32249b4dac89be063255957f3d2938c [4/5] arm64: dts: rockchip: rk3568: Add PCIe v3 nodes commit: faedfa5b40f095d09040c3a040e2f8dee4a36b4b [5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro commit: 86973ae0355bc302d5e4c10fa382f6801feb4b90 As stated in the separate mail, I've added the -regulator suffixes to the regulator node names. Best regards, -- Heiko Stuebner <heiko@sntech.de> -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: (subset) [PATCH v5 0/5] RK3568 PCIe V3 support @ 2022-09-04 17:22 ` Heiko Stuebner 0 siblings, 0 replies; 76+ messages in thread From: Heiko Stuebner @ 2022-09-04 17:22 UTC (permalink / raw) To: Frank Wunderlich, linux-rockchip Cc: Heiko Stuebner, Rob Herring, Philipp Zabel, Liang Chen, Kishon Vijay Abraham I, Yifeng Zhao, Shawn Lin, Krzysztof Kozlowski, Johan Jonker, devicetree, linux-kernel, linux-phy, linux-arm-kernel, Frank Wunderlich, Peter Geis, Simon Xue, Vinod Koul On Thu, 25 Aug 2022 21:38:31 +0200, Frank Wunderlich wrote: > This series adds Rockchip PCIe V3 support found on rk3568 SOC. > > Compared to PCIeV2 which uses the Naneng combphy, PCIe v3 uses a dedicated > PCI-phy. > > Frank Wunderlich (4): > dt-bindings: phy: rockchip: add PCIe v3 phy > dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf > arm64: dts: rockchip: rk3568: Add PCIe v3 nodes > arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro > > [...] Applied, thanks! [2/5] dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf commit: 4e441643b32249b4dac89be063255957f3d2938c [4/5] arm64: dts: rockchip: rk3568: Add PCIe v3 nodes commit: faedfa5b40f095d09040c3a040e2f8dee4a36b4b [5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro commit: 86973ae0355bc302d5e4c10fa382f6801feb4b90 As stated in the separate mail, I've added the -regulator suffixes to the regulator node names. Best regards, -- Heiko Stuebner <heiko@sntech.de> ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: (subset) [PATCH v5 0/5] RK3568 PCIe V3 support @ 2022-09-04 17:22 ` Heiko Stuebner 0 siblings, 0 replies; 76+ messages in thread From: Heiko Stuebner @ 2022-09-04 17:22 UTC (permalink / raw) To: Frank Wunderlich, linux-rockchip Cc: Heiko Stuebner, Rob Herring, Philipp Zabel, Liang Chen, Kishon Vijay Abraham I, Yifeng Zhao, Shawn Lin, Krzysztof Kozlowski, Johan Jonker, devicetree, linux-kernel, linux-phy, linux-arm-kernel, Frank Wunderlich, Peter Geis, Simon Xue, Vinod Koul On Thu, 25 Aug 2022 21:38:31 +0200, Frank Wunderlich wrote: > This series adds Rockchip PCIe V3 support found on rk3568 SOC. > > Compared to PCIeV2 which uses the Naneng combphy, PCIe v3 uses a dedicated > PCI-phy. > > Frank Wunderlich (4): > dt-bindings: phy: rockchip: add PCIe v3 phy > dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf > arm64: dts: rockchip: rk3568: Add PCIe v3 nodes > arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro > > [...] Applied, thanks! [2/5] dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf commit: 4e441643b32249b4dac89be063255957f3d2938c [4/5] arm64: dts: rockchip: rk3568: Add PCIe v3 nodes commit: faedfa5b40f095d09040c3a040e2f8dee4a36b4b [5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro commit: 86973ae0355bc302d5e4c10fa382f6801feb4b90 As stated in the separate mail, I've added the -regulator suffixes to the regulator node names. Best regards, -- Heiko Stuebner <heiko@sntech.de> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 76+ messages in thread
* Re: (subset) [PATCH v5 0/5] RK3568 PCIe V3 support @ 2022-09-04 17:22 ` Heiko Stuebner 0 siblings, 0 replies; 76+ messages in thread From: Heiko Stuebner @ 2022-09-04 17:22 UTC (permalink / raw) To: Frank Wunderlich, linux-rockchip Cc: Heiko Stuebner, Rob Herring, Philipp Zabel, Liang Chen, Kishon Vijay Abraham I, Yifeng Zhao, Shawn Lin, Krzysztof Kozlowski, Johan Jonker, devicetree, linux-kernel, linux-phy, linux-arm-kernel, Frank Wunderlich, Peter Geis, Simon Xue, Vinod Koul On Thu, 25 Aug 2022 21:38:31 +0200, Frank Wunderlich wrote: > This series adds Rockchip PCIe V3 support found on rk3568 SOC. > > Compared to PCIeV2 which uses the Naneng combphy, PCIe v3 uses a dedicated > PCI-phy. > > Frank Wunderlich (4): > dt-bindings: phy: rockchip: add PCIe v3 phy > dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf > arm64: dts: rockchip: rk3568: Add PCIe v3 nodes > arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro > > [...] Applied, thanks! [2/5] dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf commit: 4e441643b32249b4dac89be063255957f3d2938c [4/5] arm64: dts: rockchip: rk3568: Add PCIe v3 nodes commit: faedfa5b40f095d09040c3a040e2f8dee4a36b4b [5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro commit: 86973ae0355bc302d5e4c10fa382f6801feb4b90 As stated in the separate mail, I've added the -regulator suffixes to the regulator node names. Best regards, -- Heiko Stuebner <heiko@sntech.de> _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 76+ messages in thread
end of thread, other threads:[~2022-10-11 4:42 UTC | newest]
Thread overview: 76+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-25 19:38 [PATCH v5 0/5] RK3568 PCIe V3 support Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` [PATCH v5 1/5] dt-bindings: phy: rockchip: add PCIe v3 phy Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-09-04 15:06 ` Vinod Koul
2022-09-04 15:06 ` Vinod Koul
2022-09-04 15:06 ` Vinod Koul
2022-09-04 15:06 ` Vinod Koul
2022-10-04 15:09 ` Rob Herring
2022-10-04 15:09 ` Rob Herring
2022-10-04 15:09 ` Rob Herring
2022-10-04 15:09 ` Rob Herring
2022-10-04 15:19 ` Frank Wunderlich
2022-10-04 15:19 ` Frank Wunderlich
2022-10-04 15:19 ` Frank Wunderlich
2022-10-04 15:19 ` Frank Wunderlich
2022-10-04 20:57 ` Sebastian Reichel
2022-10-04 20:57 ` Sebastian Reichel
2022-10-04 20:57 ` Sebastian Reichel
2022-10-04 20:57 ` Sebastian Reichel
2022-10-11 4:41 ` Andrew Powers-Holmes
2022-10-11 4:41 ` Andrew Powers-Holmes
2022-10-11 4:41 ` Andrew Powers-Holmes
2022-10-11 4:41 ` Andrew Powers-Holmes
2022-08-25 19:38 ` [PATCH v5 2/5] dt-bindings: soc: grf: add pcie30-{phy,pipe}-grf Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` [PATCH v5 3/5] phy: rockchip: Support PCIe v3 Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-09-04 15:06 ` Vinod Koul
2022-09-04 15:06 ` Vinod Koul
2022-09-04 15:06 ` Vinod Koul
2022-09-04 15:06 ` Vinod Koul
2022-08-25 19:38 ` [PATCH v5 4/5] arm64: dts: rockchip: rk3568: Add PCIe v3 nodes Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` [PATCH v5 5/5] arm64: dts: rockchip: Add PCIe v3 nodes to BPI-R2-Pro Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-25 19:38 ` Frank Wunderlich
2022-08-26 6:50 ` Krzysztof Kozlowski
2022-08-26 6:50 ` Krzysztof Kozlowski
2022-08-26 6:50 ` Krzysztof Kozlowski
2022-08-26 6:50 ` Krzysztof Kozlowski
2022-08-27 8:50 ` Aw: " Frank Wunderlich
2022-08-27 8:50 ` Frank Wunderlich
2022-08-27 8:50 ` Frank Wunderlich
2022-08-27 8:50 ` Frank Wunderlich
2022-08-27 8:56 ` Krzysztof Kozlowski
2022-08-27 8:56 ` Krzysztof Kozlowski
2022-08-27 8:56 ` Krzysztof Kozlowski
2022-08-27 8:56 ` Krzysztof Kozlowski
2022-08-27 9:14 ` Aw: " Frank Wunderlich
2022-08-27 9:14 ` Frank Wunderlich
2022-08-27 9:14 ` Frank Wunderlich
2022-08-27 9:14 ` Frank Wunderlich
2022-08-27 9:19 ` Krzysztof Kozlowski
2022-08-27 9:19 ` Krzysztof Kozlowski
2022-08-27 9:19 ` Krzysztof Kozlowski
2022-08-27 9:19 ` Krzysztof Kozlowski
2022-09-04 15:28 ` Heiko Stübner
2022-09-04 15:28 ` Heiko Stübner
2022-09-04 15:28 ` Heiko Stübner
2022-09-04 15:28 ` Heiko Stübner
2022-09-04 17:22 ` (subset) [PATCH v5 0/5] RK3568 PCIe V3 support Heiko Stuebner
2022-09-04 17:22 ` Heiko Stuebner
2022-09-04 17:22 ` Heiko Stuebner
2022-09-04 17:22 ` Heiko Stuebner
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.