diff options
Diffstat (limited to 'board/compulab')
-rw-r--r-- | board/compulab/cl-som-am57x/eth.c | 6 | ||||
-rw-r--r-- | board/compulab/cm_fx6/cm_fx6.c | 92 | ||||
-rw-r--r-- | board/compulab/cm_t335/cm_t335.c | 4 | ||||
-rw-r--r-- | board/compulab/cm_t35/cm_t35.c | 4 | ||||
-rw-r--r-- | board/compulab/cm_t3517/cm_t3517.c | 4 | ||||
-rw-r--r-- | board/compulab/cm_t54/cm_t54.c | 6 | ||||
-rw-r--r-- | board/compulab/common/omap3_display.c | 4 |
7 files changed, 100 insertions, 20 deletions
diff --git a/board/compulab/cl-som-am57x/eth.c b/board/compulab/cl-som-am57x/eth.c index 0c4bf91c130..b615fb9e7ee 100644 --- a/board/compulab/cl-som-am57x/eth.c +++ b/board/compulab/cl-som-am57x/eth.c @@ -95,7 +95,7 @@ static int cl_som_am57x_handle_mac_address(char *env_name, uint port_num) int ret; uint8_t enetaddr[6]; - ret = eth_getenv_enetaddr(env_name, enetaddr); + ret = eth_env_get_enetaddr(env_name, enetaddr); if (ret) return 0; @@ -107,7 +107,7 @@ static int cl_som_am57x_handle_mac_address(char *env_name, uint port_num) if (!is_valid_ethaddr(enetaddr)) return -1; - ret = eth_setenv_enetaddr(env_name, enetaddr); + ret = eth_env_set_enetaddr(env_name, enetaddr); if (ret) printf("cl-som-am57x: Failed to set Eth port %d MAC address\n", port_num); @@ -181,7 +181,7 @@ int board_eth_init(bd_t *bis) gpio_set_value(CL_SOM_AM57X_GPIO_PHY1_RST, 1); mdelay(20); - cpsw_phy_envval = getenv("cpsw_phy"); + cpsw_phy_envval = env_get("cpsw_phy"); if (cpsw_phy_envval != NULL) cpsw_act_phy = simple_strtoul(cpsw_phy_envval, NULL, 0); diff --git a/board/compulab/cm_fx6/cm_fx6.c b/board/compulab/cm_fx6/cm_fx6.c index c59884a8c31..638e9f393b9 100644 --- a/board/compulab/cm_fx6/cm_fx6.c +++ b/board/compulab/cm_fx6/cm_fx6.c @@ -9,7 +9,9 @@ */ #include <common.h> +#include <ahci.h> #include <dm.h> +#include <dwc_ahsata.h> #include <fsl_esdhc.h> #include <miiphy.h> #include <mtd_node.h> @@ -29,6 +31,7 @@ #include <asm/io.h> #include <asm/gpio.h> #include <dm/platform_data/serial_mxc.h> +#include <dm/device-internal.h> #include <jffs2/load_kernel.h> #include "common.h" #include "../common/eeprom.h" @@ -114,10 +117,10 @@ int board_video_skip(void) { int ret; struct display_info_t *preset; - char const *panel = getenv("displaytype"); + char const *panel = env_get("displaytype"); if (!panel) /* Also accept panel for backward compatibility */ - panel = getenv("panel"); + panel = env_get("panel"); if (!panel) return -ENOENT; @@ -206,6 +209,8 @@ static int cm_fx6_setup_issd(void) } #define CM_FX6_SATA_INIT_RETRIES 10 + +# if !CONFIG_IS_ENABLED(AHCI) int sata_initialize(void) { int err, i; @@ -246,6 +251,7 @@ int sata_stop(void) return 0; } +# endif #else static int cm_fx6_setup_issd(void) { return 0; } #endif @@ -470,7 +476,7 @@ static int handle_mac_address(char *env_var, uint eeprom_bus) unsigned char enetaddr[6]; int rc; - rc = eth_getenv_enetaddr(env_var, enetaddr); + rc = eth_env_get_enetaddr(env_var, enetaddr); if (rc) return 0; @@ -481,7 +487,7 @@ static int handle_mac_address(char *env_var, uint eeprom_bus) if (!is_valid_ethaddr(enetaddr)) return -1; - return eth_setenv_enetaddr(env_var, enetaddr); + return eth_env_set_enetaddr(env_var, enetaddr); } #define SB_FX6_I2C_EEPROM_BUS 0 @@ -605,13 +611,13 @@ int ft_board_setup(void *blob, bd_t *bd) fdt_shrink_to_minimum(blob, 0); /* Make room for new properties */ /* MAC addr */ - if (eth_getenv_enetaddr("ethaddr", enetaddr)) { + if (eth_env_get_enetaddr("ethaddr", enetaddr)) { fdt_find_and_setprop(blob, "/soc/aips-bus@02100000/ethernet@02188000", "local-mac-address", enetaddr, 6, 1); } - if (eth_getenv_enetaddr("eth1addr", enetaddr)) { + if (eth_env_get_enetaddr("eth1addr", enetaddr)) { fdt_find_and_setprop(blob, "/eth@pcie", "local-mac-address", enetaddr, 6, 1); } @@ -672,6 +678,17 @@ int board_init(void) cm_fx6_setup_display(); + /* This should be done in the MMC driver when MX6 has a clock driver */ +#ifdef CONFIG_FSL_ESDHC + if (IS_ENABLED(CONFIG_BLK)) { + int i; + + cm_fx6_set_usdhc_iomux(); + for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) + enable_usdhc_clk(1, i); + } +#endif + return 0; } @@ -757,3 +774,66 @@ U_BOOT_DEVICE(cm_fx6_serial) = { .name = "serial_mxc", .platdata = &cm_fx6_mxc_serial_plat, }; + +#if CONFIG_IS_ENABLED(AHCI) +static int sata_imx_probe(struct udevice *dev) +{ + int i, err; + + /* Make sure this gpio has logical 0 value */ + gpio_direction_output(CM_FX6_SATA_PWLOSS_INT, 0); + udelay(100); + cm_fx6_sata_power(1); + + for (i = 0; i < CM_FX6_SATA_INIT_RETRIES; i++) { + err = setup_sata(); + if (err) { + printf("SATA setup failed: %d\n", err); + return err; + } + + udelay(100); + + err = dwc_ahsata_probe(dev); + if (!err) + break; + + /* There is no device on the SATA port */ + if (sata_dm_port_status(0, 0) == 0) + break; + + /* There's a device, but link not established. Retry */ + device_remove(dev, DM_REMOVE_NORMAL); + } + + return 0; +} + +static int sata_imx_remove(struct udevice *dev) +{ + cm_fx6_sata_power(0); + mdelay(250); + + return 0; +} + +struct ahci_ops sata_imx_ops = { + .port_status = dwc_ahsata_port_status, + .reset = dwc_ahsata_bus_reset, + .scan = dwc_ahsata_scan, +}; + +static const struct udevice_id sata_imx_ids[] = { + { .compatible = "fsl,imx6q-ahci" }, + { } +}; + +U_BOOT_DRIVER(sata_imx) = { + .name = "dwc_ahci", + .id = UCLASS_AHCI, + .of_match = sata_imx_ids, + .ops = &sata_imx_ops, + .probe = sata_imx_probe, + .remove = sata_imx_remove, /* reset bus to stop it */ +}; +#endif /* AHCI */ diff --git a/board/compulab/cm_t335/cm_t335.c b/board/compulab/cm_t335/cm_t335.c index c4506b910e3..6f6ba49af57 100644 --- a/board/compulab/cm_t335/cm_t335.c +++ b/board/compulab/cm_t335/cm_t335.c @@ -106,7 +106,7 @@ static int handle_mac_address(void) uchar enetaddr[6]; int rv; - rv = eth_getenv_enetaddr("ethaddr", enetaddr); + rv = eth_env_get_enetaddr("ethaddr", enetaddr); if (rv) return 0; @@ -117,7 +117,7 @@ static int handle_mac_address(void) if (!is_valid_ethaddr(enetaddr)) return -1; - return eth_setenv_enetaddr("ethaddr", enetaddr); + return eth_env_set_enetaddr("ethaddr", enetaddr); } #define AR8051_PHY_DEBUG_ADDR_REG 0x1d diff --git a/board/compulab/cm_t35/cm_t35.c b/board/compulab/cm_t35/cm_t35.c index da6709889ad..be938eb2cf5 100644 --- a/board/compulab/cm_t35/cm_t35.c +++ b/board/compulab/cm_t35/cm_t35.c @@ -434,7 +434,7 @@ static int handle_mac_address(void) unsigned char enetaddr[6]; int rc; - rc = eth_getenv_enetaddr("ethaddr", enetaddr); + rc = eth_env_get_enetaddr("ethaddr", enetaddr); if (rc) return 0; @@ -445,7 +445,7 @@ static int handle_mac_address(void) if (!is_valid_ethaddr(enetaddr)) return -1; - return eth_setenv_enetaddr("ethaddr", enetaddr); + return eth_env_set_enetaddr("ethaddr", enetaddr); } /* diff --git a/board/compulab/cm_t3517/cm_t3517.c b/board/compulab/cm_t3517/cm_t3517.c index 38eb641bc42..0ff49dcdccc 100644 --- a/board/compulab/cm_t3517/cm_t3517.c +++ b/board/compulab/cm_t3517/cm_t3517.c @@ -168,7 +168,7 @@ static int cm_t3517_handle_mac_address(void) unsigned char enetaddr[6]; int ret; - ret = eth_getenv_enetaddr("ethaddr", enetaddr); + ret = eth_env_get_enetaddr("ethaddr", enetaddr); if (ret) return 0; @@ -182,7 +182,7 @@ static int cm_t3517_handle_mac_address(void) if (!is_valid_ethaddr(enetaddr)) return -1; - return eth_setenv_enetaddr("ethaddr", enetaddr); + return eth_env_set_enetaddr("ethaddr", enetaddr); } #define SB_T35_ETH_RST_GPIO 164 diff --git a/board/compulab/cm_t54/cm_t54.c b/board/compulab/cm_t54/cm_t54.c index 64377184153..31730a4d1ca 100644 --- a/board/compulab/cm_t54/cm_t54.c +++ b/board/compulab/cm_t54/cm_t54.c @@ -126,7 +126,7 @@ int ft_board_setup(void *blob, bd_t *bd) uint8_t enetaddr[6]; /* MAC addr */ - if (eth_getenv_enetaddr("usbethaddr", enetaddr)) { + if (eth_env_get_enetaddr("usbethaddr", enetaddr)) { fdt_find_and_setprop(blob, "/smsc95xx@0", "mac-address", enetaddr, 6, 1); } @@ -161,7 +161,7 @@ static int handle_mac_address(void) uint8_t enetaddr[6]; int ret; - ret = eth_getenv_enetaddr("usbethaddr", enetaddr); + ret = eth_env_get_enetaddr("usbethaddr", enetaddr); if (ret) return 0; @@ -172,7 +172,7 @@ static int handle_mac_address(void) if (!is_valid_ethaddr(enetaddr)) return -1; - return eth_setenv_enetaddr("usbethaddr", enetaddr); + return eth_env_set_enetaddr("usbethaddr", enetaddr); } int board_eth_init(bd_t *bis) diff --git a/board/compulab/common/omap3_display.c b/board/compulab/common/omap3_display.c index 61707f5b900..ed2077e3617 100644 --- a/board/compulab/common/omap3_display.c +++ b/board/compulab/common/omap3_display.c @@ -400,7 +400,7 @@ void lcd_ctrl_init(void *lcdbase) { struct prcm *prcm = (struct prcm *)PRCM_BASE; char *custom_lcd; - char *displaytype = getenv("displaytype"); + char *displaytype = env_get("displaytype"); if (displaytype == NULL) return; @@ -408,7 +408,7 @@ void lcd_ctrl_init(void *lcdbase) lcd_def = env_parse_displaytype(displaytype); /* If we did not recognize the preset, check if it's an env variable */ if (lcd_def == NONE) { - custom_lcd = getenv(displaytype); + custom_lcd = env_get(displaytype); if (custom_lcd == NULL || parse_customlcd(custom_lcd) < 0) return; } |