[U-Boot] [PATCH] sunxi: update SATA driver to always use DM_SCSI
Andre Przywara
andre.przywara at arm.com
Thu Feb 14 00:09:23 UTC 2019
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 at 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%)
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 at 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
--
2.14.5
More information about the U-Boot
mailing list