oxnas: add experimental support for Linux 5.10
[openwrt/openwrt.git] / target / linux / oxnas / patches-5.10 / 500-oxnas-sata.patch
diff --git a/target/linux/oxnas/patches-5.10/500-oxnas-sata.patch b/target/linux/oxnas/patches-5.10/500-oxnas-sata.patch
new file mode 100644 (file)
index 0000000..d3ec2e2
--- /dev/null
@@ -0,0 +1,60 @@
+--- a/drivers/ata/Kconfig
++++ b/drivers/ata/Kconfig
+@@ -568,6 +568,14 @@ config SATA_VITESSE
+         If unsure, say N.
++config SATA_OXNAS
++      tristate "PLXTECH NAS782X SATA support"
++      select SATA_HOST
++      help
++        This option enables support for Nas782x Serial ATA controller.
++
++        If unsure, say N.
++
+ comment "PATA SFF controllers with BMDMA"
+ config PATA_ALI
+--- a/drivers/ata/Makefile
++++ b/drivers/ata/Makefile
+@@ -46,6 +46,7 @@ obj-$(CONFIG_SATA_SVW)               += sata_svw.o
+ obj-$(CONFIG_SATA_ULI)                += sata_uli.o
+ obj-$(CONFIG_SATA_VIA)                += sata_via.o
+ obj-$(CONFIG_SATA_VITESSE)    += sata_vsc.o
++obj-$(CONFIG_SATA_OXNAS)      += sata_oxnas.o
+ # SFF PATA w/ BMDMA
+ obj-$(CONFIG_PATA_ALI)                += pata_ali.o
+--- a/arch/arm/boot/dts/ox820.dtsi
++++ b/arch/arm/boot/dts/ox820.dtsi
+@@ -399,5 +399,20 @@
+                       plxtech,pcie-outbound-offset = <0x174>;
+                       status = "disabled";
+               };
++
++              sata: sata@45900000 {
++                      compatible = "plxtech,nas782x-sata";
++                              /*      ports           dmactl          sgdma   */
++                      reg = <0x45900000 0x20000>, <0x459A0000 0x40>, <0x459B0000 0x20>,
++                              /*      core            phy             descriptors (optional)  */
++                              <0x459E0000 0x2000>, <0x44900000 0x0C>, <0x50000000 0x1000>;
++                      interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
++                      clocks = <&stdclk CLK_820_SATA>;
++                      resets = <&reset RESET_SATA>, <&reset RESET_SATA_LINK>, <&reset RESET_SATA_PHY>;
++                      reset-names = "sata", "link", "phy";
++                      nr-ports = <1>;
++                      status = "disabled";
++              };
++
+       };
+ };
+--- a/arch/arm/boot/dts/ox820-cloudengines-pogoplug-series-3.dts
++++ b/arch/arm/boot/dts/ox820-cloudengines-pogoplug-series-3.dts
+@@ -111,3 +111,7 @@
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_etha_mdio>;
+ };
++
++&sata {
++      status = "okay";
++};