mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
board: ti: Convert cape detection to use UCLASS framework
Migrate TI board cape detection from legacy extension support to the new UCLASS-based extension board framework. Signed-off-by: Kory Maincent (TI.com) <kory.maincent@bootlin.com>
This commit is contained in:
committed by
Tom Rini
parent
b2e7b1df3b
commit
58a36be4ac
@@ -15,7 +15,7 @@ config TARGET_AM335X_EVM
|
||||
select DM_GPIO
|
||||
select DM_SERIAL
|
||||
select TI_I2C_BOARD_DETECT
|
||||
select SUPPORT_EXTENSION_SCAN
|
||||
select SUPPORT_DM_EXTENSION_SCAN
|
||||
imply CMD_DM
|
||||
imply SPL_DM
|
||||
imply SPL_DM_SEQ_ALIAS
|
||||
|
||||
@@ -38,7 +38,7 @@ config TARGET_AM57XX_EVM
|
||||
select CMD_DDR3
|
||||
select DRA7XX
|
||||
select TI_I2C_BOARD_DETECT
|
||||
select SUPPORT_EXTENSION_SCAN
|
||||
select SUPPORT_DM_EXTENSION_SCAN
|
||||
imply DM_THERMAL
|
||||
imply SCSI
|
||||
imply SPL_THERMAL
|
||||
|
||||
@@ -20,7 +20,7 @@ config CAPE_EEPROM_BUS_NUM
|
||||
int "Cape EEPROM's I2C bus address"
|
||||
range 0 8
|
||||
default 2
|
||||
depends on SUPPORT_EXTENSION_SCAN
|
||||
depends on SUPPORT_DM_EXTENSION_SCAN
|
||||
|
||||
config TI_COMMON_CMD_OPTIONS
|
||||
bool "Enable cmd options on TI platforms"
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
# Copyright (C) 2015-2016 Texas Instruments Incorporated - https://www.ti.com/
|
||||
|
||||
obj-${CONFIG_TI_I2C_BOARD_DETECT} += board_detect.o
|
||||
obj-${CONFIG_$(PHASE_)SUPPORT_EXTENSION_SCAN} += cape_detect.o
|
||||
obj-${CONFIG_$(PHASE_)SUPPORT_DM_EXTENSION_SCAN} += cape_detect.o
|
||||
obj-${CONFIG_OF_LIBFDT} += fdt_ops.o
|
||||
obj-${CONFIG_ARCH_K3} += k3-ddr.o
|
||||
|
||||
@@ -22,7 +22,8 @@ static void sanitize_field(char *text, size_t size)
|
||||
}
|
||||
}
|
||||
|
||||
int extension_board_scan(struct list_head *extension_list)
|
||||
static int ti_extension_board_scan(struct udevice *dev,
|
||||
struct alist *extension_list)
|
||||
{
|
||||
unsigned char addr;
|
||||
int num_capes = 0;
|
||||
@@ -31,7 +32,7 @@ int extension_board_scan(struct list_head *extension_list)
|
||||
struct am335x_cape_eeprom_id eeprom_header;
|
||||
char process_cape_part_number[17] = {'0'};
|
||||
char process_cape_version[5] = {'0'};
|
||||
struct extension *cape;
|
||||
struct extension cape = {0};
|
||||
struct udevice *dev;
|
||||
u8 cursor = 0;
|
||||
int ret, i;
|
||||
@@ -78,22 +79,23 @@ int extension_board_scan(struct list_head *extension_list)
|
||||
|
||||
printf("BeagleBone Cape: %s (0x%x)\n", eeprom_header.board_name, addr);
|
||||
|
||||
cape = calloc(1, sizeof(struct extension));
|
||||
if (!cape) {
|
||||
printf("Error in memory allocation\n");
|
||||
return num_capes;
|
||||
}
|
||||
|
||||
snprintf(cape->overlay, sizeof(cape->overlay), "%s-%s.dtbo",
|
||||
snprintf(cape.overlay, sizeof(cape.overlay), "%s-%s.dtbo",
|
||||
process_cape_part_number, process_cape_version);
|
||||
strlcpy(cape->name, eeprom_header.board_name,
|
||||
strlcpy(cape.name, eeprom_header.board_name,
|
||||
sizeof(eeprom_header.board_name));
|
||||
strlcpy(cape->version, process_cape_version,
|
||||
strlcpy(cape.version, process_cape_version,
|
||||
sizeof(process_cape_version));
|
||||
strlcpy(cape->owner, eeprom_header.manufacturer,
|
||||
strlcpy(cape.owner, eeprom_header.manufacturer,
|
||||
sizeof(eeprom_header.manufacturer) + 1);
|
||||
list_add_tail(&cape->list, extension_list);
|
||||
if (!alist_add(extension_list, cape))
|
||||
return -ENOMEM;
|
||||
num_capes++;
|
||||
}
|
||||
return num_capes;
|
||||
}
|
||||
|
||||
U_BOOT_EXTENSION(cape, ti_extension_board_scan);
|
||||
|
||||
U_BOOT_DRVINFO(cape) = {
|
||||
.name = "cape",
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user