[PATCH v2 6/8] ARM: dts: uniphier: Add ahci controller and glue layer nodes for PXs2

Kunihiko Hayashi posted 8 patches 3 years, 6 months ago
There is a newer version of this series
[PATCH v2 6/8] ARM: dts: uniphier: Add ahci controller and glue layer nodes for PXs2
Posted by Kunihiko Hayashi 3 years, 6 months ago
Add ahci controller and glue layer nodes including reset and phy.
This supports for PXs2 and the boards without PXs2 vodka board that
doesn't implement any SATA connectors.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
---
 arch/arm/boot/dts/uniphier-pxs2-gentil.dts |  4 +++
 arch/arm/boot/dts/uniphier-pxs2.dtsi       | 40 ++++++++++++++++++++++
 2 files changed, 44 insertions(+)

diff --git a/arch/arm/boot/dts/uniphier-pxs2-gentil.dts b/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
index 759384b60663..5f18b926c50a 100644
--- a/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
+++ b/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
@@ -99,3 +99,7 @@ &usb0 {
 &usb1 {
 	status = "okay";
 };
+
+&ahci {
+	status = "okay";
+};
diff --git a/arch/arm/boot/dts/uniphier-pxs2.dtsi b/arch/arm/boot/dts/uniphier-pxs2.dtsi
index 7d8c437b8f8b..04e9467734c4 100644
--- a/arch/arm/boot/dts/uniphier-pxs2.dtsi
+++ b/arch/arm/boot/dts/uniphier-pxs2.dtsi
@@ -599,6 +599,46 @@ mdio: mdio {
 			};
 		};
 
+		ahci: ahci@65600000 {
+			compatible = "socionext,uniphier-pxs2-ahci",
+				     "generic-ahci";
+			status = "disabled";
+			reg = <0x65600000 0x10000>;
+			interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&sys_clk 28>;
+			resets = <&sys_rst 28>, <&ahci_rst 0>;
+			ports-implemented = <1>;
+			phys = <&ahci_phy>;
+		};
+
+		ahci-glue@65700000 {
+			compatible = "socionext,uniphier-pxs2-ahci-glue",
+				     "simple-mfd";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0 0x65700000 0x100>;
+
+			ahci_rst: reset@0 {
+				compatible = "socionext,uniphier-pxs2-ahci-reset";
+				reg = <0x0 0x4>;
+				clock-names = "link";
+				clocks = <&sys_clk 28>;
+				reset-names = "link";
+				resets = <&sys_rst 28>;
+				#reset-cells = <1>;
+			};
+
+			ahci_phy: phy@10 {
+				compatible = "socionext,uniphier-pxs2-ahci-phy";
+				reg = <0x10 0x10>;
+				clock-names = "link";
+				clocks = <&sys_clk 28>;
+				reset-names = "link", "phy";
+				resets = <&sys_rst 28>, <&sys_rst 30>;
+				#phy-cells = <0>;
+			};
+		};
+
 		usb0: usb@65a00000 {
 			compatible = "socionext,uniphier-dwc3", "snps,dwc3";
 			status = "disabled";
-- 
2.25.1
Re: [PATCH v2 6/8] ARM: dts: uniphier: Add ahci controller and glue layer nodes for PXs2
Posted by Arnd Bergmann 3 years, 6 months ago
On Mon, Sep 12, 2022, at 9:15 AM, Kunihiko Hayashi wrote:
> Add ahci controller and glue layer nodes including reset and phy.
> This supports for PXs2 and the boards without PXs2 vodka board that
> doesn't implement any SATA connectors.
>
> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
> +		ahci: ahci@65600000 {
> +			compatible = "socionext,uniphier-pxs2-ahci",
> +				     "generic-ahci";
> +			status = "disabled";
> +			reg = <0x65600000 0x10000>;
> +			interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&sys_clk 28>;
> +			resets = <&sys_rst 28>, <&ahci_rst 0>;
> +			ports-implemented = <1>;
> +			phys = <&ahci_phy>;
> +		};
> +
> +		ahci-glue@65700000 {
> +			compatible = "socionext,uniphier-pxs2-ahci-glue",
> +				     "simple-mfd";

Here as well, the "ahci-glue" name seems rather unusual for a node
name. What does it actually do, and why is this not just part of
the sata node?

> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +			ranges = <0 0x65700000 0x100>;
> +
> +			ahci_rst: reset@0 {
> +				compatible = "socionext,uniphier-pxs2-ahci-reset";

I think the node name here should be "reset-controller@0".

> +
> +			ahci_phy: phy@10 {
> +				compatible = "socionext,uniphier-pxs2-ahci-phy";

and "sata-phy@10" here.

       Arnd
Re: [PATCH v2 6/8] ARM: dts: uniphier: Add ahci controller and glue layer nodes for PXs2
Posted by Kunihiko Hayashi 3 years, 6 months ago
Hi Arnd,

On 2022/09/12 17:36, Arnd Bergmann wrote:
> On Mon, Sep 12, 2022, at 9:15 AM, Kunihiko Hayashi wrote:
>> Add ahci controller and glue layer nodes including reset and phy.
>> This supports for PXs2 and the boards without PXs2 vodka board that
>> doesn't implement any SATA connectors.
>>
>> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
>> +		ahci: ahci@65600000 {
>> +			compatible = "socionext,uniphier-pxs2-ahci",
>> +				     "generic-ahci";
>> +			status = "disabled";
>> +			reg = <0x65600000 0x10000>;
>> +			interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
>> +			clocks = <&sys_clk 28>;
>> +			resets = <&sys_rst 28>, <&ahci_rst 0>;
>> +			ports-implemented = <1>;
>> +			phys = <&ahci_phy>;
>> +		};
>> +
>> +		ahci-glue@65700000 {
>> +			compatible = "socionext,uniphier-pxs2-ahci-glue",
>> +				     "simple-mfd";
> 
> Here as well, the "ahci-glue" name seems rather unusual for a node
> name. What does it actually do, and why is this not just part of
> the sata node?

According to ata/sata-common.yaml, "ahci@65600000" node for generic SATA
host controller is better expressed as "sata@65600000". I'll fix it.

However, "ahci-glue@65700000" is the integration of SATA related functions
(reset and phy). Maybe "sata-controller" seems to be the best, but
I couldn't find this usage.

>> +			#address-cells = <1>;
>> +			#size-cells = <1>;
>> +			ranges = <0 0x65700000 0x100>;
>> +
>> +			ahci_rst: reset@0 {
>> +				compatible =
> "socionext,uniphier-pxs2-ahci-reset";
> 
> I think the node name here should be "reset-controller@0".

Yes, I'll fix it.

>> +
>> +			ahci_phy: phy@10 {
>> +				compatible =
> "socionext,uniphier-pxs2-ahci-phy";
> 
> and "sata-phy@10" here.

I'll fix it too.

Thank you,

---
Best Regards
Kunihiko Hayashi