diff mbox series

[U-Boot] sunxi: update SATA driver to always use DM_SCSI

Message ID 20190214000923.14420-1-andre.przywara@arm.com
State Accepted
Delegated to: Jagannadha Sutradharudu Teki
Headers show
Series [U-Boot] sunxi: update SATA driver to always use DM_SCSI | expand

Commit Message

Andre Przywara Feb. 14, 2019, 12:09 a.m. UTC
It seems like the Allwinner SATA driver is already quite capable of
using the driver model, so we can force this on all boards and can
remove support for a non-DM_SCSI build.
This removes the warning about boards with SATA ports not being
DM_SCSI compliant.

It also takes the opportunity to move the driver out of the board/sunxi
directory to join its siblings in drivers/ata, and to make it a proper
Kconfig citizen.

The board defconfigs stay untouched.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
 board/sunxi/Makefile                           |  3 ---
 drivers/ata/Kconfig                            |  9 +++++++++
 drivers/ata/Makefile                           |  1 +
 board/sunxi/ahci.c => drivers/ata/ahci_sunxi.c | 11 +----------
 include/configs/sunxi-common.h                 |  6 ------
 scripts/config_whitelist.txt                   |  1 -
 6 files changed, 11 insertions(+), 20 deletions(-)
 rename board/sunxi/ahci.c => drivers/ata/ahci_sunxi.c (94%)

Comments

Simon Glass Feb. 21, 2019, 2:47 a.m. UTC | #1
On Wed, 13 Feb 2019 at 16:11, Andre Przywara <andre.przywara@arm.com> wrote:
>
> It seems like the Allwinner SATA driver is already quite capable of
> using the driver model, so we can force this on all boards and can
> remove support for a non-DM_SCSI build.
> This removes the warning about boards with SATA ports not being
> DM_SCSI compliant.
>
> It also takes the opportunity to move the driver out of the board/sunxi
> directory to join its siblings in drivers/ata, and to make it a proper
> Kconfig citizen.
>
> The board defconfigs stay untouched.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
>  board/sunxi/Makefile                           |  3 ---
>  drivers/ata/Kconfig                            |  9 +++++++++
>  drivers/ata/Makefile                           |  1 +
>  board/sunxi/ahci.c => drivers/ata/ahci_sunxi.c | 11 +----------
>  include/configs/sunxi-common.h                 |  6 ------
>  scripts/config_whitelist.txt                   |  1 -
>  6 files changed, 11 insertions(+), 20 deletions(-)
>  rename board/sunxi/ahci.c => drivers/ata/ahci_sunxi.c (94%)

Reviewed-by: Simon Glass <sjg@chromium.org>
Jagan Teki March 4, 2019, 12:22 p.m. UTC | #2
On Thu, Feb 14, 2019 at 5:41 AM Andre Przywara <andre.przywara@arm.com> wrote:
>
> It seems like the Allwinner SATA driver is already quite capable of
> using the driver model, so we can force this on all boards and can
> remove support for a non-DM_SCSI build.
> This removes the warning about boards with SATA ports not being
> DM_SCSI compliant.
>
> It also takes the opportunity to move the driver out of the board/sunxi
> directory to join its siblings in drivers/ata, and to make it a proper
> Kconfig citizen.
>
> The board defconfigs stay untouched.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---

Applied to u-boot-sunxi/next
diff mbox series

Patch

diff --git a/board/sunxi/Makefile b/board/sunxi/Makefile
index 4d6258d932..c4e13f8c38 100644
--- a/board/sunxi/Makefile
+++ b/board/sunxi/Makefile
@@ -8,9 +8,6 @@ 
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 obj-y	+= board.o
 obj-$(CONFIG_SUN7I_GMAC)	+= gmac.o
-ifndef CONFIG_SPL_BUILD
-obj-$(CONFIG_SUNXI_AHCI)	+= ahci.o
-endif
 obj-$(CONFIG_MACH_SUN4I)	+= dram_sun4i_auto.o
 obj-$(CONFIG_MACH_SUN5I)	+= dram_sun5i_auto.o
 obj-$(CONFIG_MACH_SUN7I)	+= dram_sun5i_auto.o
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 49a056e941..82bdf03192 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -99,6 +99,15 @@  config SATA_SIL3114
 	help
 	  Enable this driver to support the SIL3114 SATA controllers.
 
+config SUNXI_AHCI
+	bool "Enable Allwinner SATA driver support"
+	depends on AHCI
+	default y if ARCH_SUNXI
+	select DM_SCSI
+	help
+	  Enable this driver to support the SATA controllers found in the
+	  Allwinner A10, A20 and R40 SoCs.
+
 config AHCI_MVEBU
 	bool "Marvell EBU AHCI SATA support"
 	depends on ARCH_MVEBU
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
index 10bed53bb3..a69edb10f7 100644
--- a/drivers/ata/Makefile
+++ b/drivers/ata/Makefile
@@ -18,3 +18,4 @@  obj-$(CONFIG_SATA_SIL3114) += sata_sil3114.o
 obj-$(CONFIG_SATA_SIL) += sata_sil.o
 obj-$(CONFIG_SANDBOX) += sata_sandbox.o
 obj-$(CONFIG_AHCI_MVEBU) += ahci_mvebu.o
+obj-$(CONFIG_SUNXI_AHCI) += ahci_sunxi.o
diff --git a/board/sunxi/ahci.c b/drivers/ata/ahci_sunxi.c
similarity index 94%
rename from board/sunxi/ahci.c
rename to drivers/ata/ahci_sunxi.c
index a79b80ca1e..77b932aa03 100644
--- a/board/sunxi/ahci.c
+++ b/drivers/ata/ahci_sunxi.c
@@ -70,15 +70,6 @@  static int sunxi_ahci_phy_init(u8 *reg_base)
 	return 0;
 }
 
-#ifndef CONFIG_DM_SCSI
-void scsi_init(void)
-{
-	if (sunxi_ahci_phy_init((u8 *)SUNXI_SATA_BASE) < 0)
-		return;
-
-	ahci_init((void __iomem *)SUNXI_SATA_BASE);
-}
-#else
 static int sunxi_sata_probe(struct udevice *dev)
 {
 	ulong base;
@@ -121,6 +112,7 @@  static int sunxi_sata_bind(struct udevice *dev)
 
 static const struct udevice_id sunxi_ahci_ids[] = {
 	{ .compatible = "allwinner,sun4i-a10-ahci" },
+	{ .compatible = "allwinner,sun8i-r40-ahci" },
 	{ }
 };
 
@@ -131,4 +123,3 @@  U_BOOT_DRIVER(ahci_sunxi_drv) = {
 	.bind		= sunxi_sata_bind,
 	.probe		= sunxi_sata_probe,
 };
-#endif
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
index b01d1c3c84..bc30994029 100644
--- a/include/configs/sunxi-common.h
+++ b/include/configs/sunxi-common.h
@@ -104,13 +104,7 @@ 
 #define PHYS_SDRAM_0_SIZE		0x80000000 /* 2 GiB */
 
 #ifdef CONFIG_AHCI
-#define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SUNXI_AHCI
 #define CONFIG_SYS_64BIT_LBA
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
-#define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-					 CONFIG_SYS_SCSI_MAX_LUN)
 #endif
 
 #define CONFIG_SETUP_MEMORY_TAGS
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 2b3572568b..84c517cd12 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1953,7 +1953,6 @@  CONFIG_STV0991
 CONFIG_STV0991_HZ
 CONFIG_STV0991_HZ_CLOCK
 CONFIG_ST_SMI
-CONFIG_SUNXI_AHCI
 CONFIG_SUNXI_GPIO
 CONFIG_SUNXI_MAX_FB_SIZE
 CONFIG_SUPERH_ON_CHIP_R8A66597