diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/crypto/fsl/jr.c | 2 | ||||
-rw-r--r-- | drivers/ddr/fsl/ctrl_regs.c | 2 | ||||
-rw-r--r-- | drivers/ddr/fsl/mpc85xx_ddr_gen1.c | 2 | ||||
-rw-r--r-- | drivers/gpio/bcm2835_gpio.c | 24 | ||||
-rw-r--r-- | drivers/input/keyboard.c | 4 | ||||
-rw-r--r-- | drivers/net/fm/Makefile | 34 | ||||
-rw-r--r-- | drivers/net/fm/b4860.c | 7 | ||||
-rw-r--r-- | drivers/net/fm/fm.h | 2 | ||||
-rw-r--r-- | drivers/net/keystone_net.c | 23 | ||||
-rw-r--r-- | drivers/qe/uec.c | 10 | ||||
-rw-r--r-- | drivers/serial/serial_bcm283x_mu.c | 46 | ||||
-rw-r--r-- | drivers/serial/serial_pl01x.c | 2 | ||||
-rw-r--r-- | drivers/video/bcm2835.c | 6 |
13 files changed, 119 insertions, 45 deletions
diff --git a/drivers/crypto/fsl/jr.c b/drivers/crypto/fsl/jr.c index 4a8cc3295a4..1b882291e4f 100644 --- a/drivers/crypto/fsl/jr.c +++ b/drivers/crypto/fsl/jr.c @@ -21,7 +21,7 @@ uint32_t sec_offset[CONFIG_SYS_FSL_MAX_NUM_OF_SEC] = { 0, -#if defined(CONFIG_PPC_C29X) +#if defined(CONFIG_ARCH_C29X) CONFIG_SYS_FSL_SEC_IDX_OFFSET, 2 * CONFIG_SYS_FSL_SEC_IDX_OFFSET #endif diff --git a/drivers/ddr/fsl/ctrl_regs.c b/drivers/ddr/fsl/ctrl_regs.c index 24fd36602d2..32b09679e2e 100644 --- a/drivers/ddr/fsl/ctrl_regs.c +++ b/drivers/ddr/fsl/ctrl_regs.c @@ -1831,7 +1831,7 @@ static void set_ddr_sdram_clk_cntl(fsl_ddr_cfg_regs_t *ddr, unsigned int clk_adjust; /* Clock adjust */ unsigned int ss_en = 0; /* Source synchronous enable */ -#if defined(CONFIG_MPC8541) || defined(CONFIG_MPC8555) +#if defined(CONFIG_ARCH_MPC8541) || defined(CONFIG_ARCH_MPC8555) /* Per FSL Application Note: AN2805 */ ss_en = 1; #endif diff --git a/drivers/ddr/fsl/mpc85xx_ddr_gen1.c b/drivers/ddr/fsl/mpc85xx_ddr_gen1.c index c27288dda21..c005f5294cb 100644 --- a/drivers/ddr/fsl/mpc85xx_ddr_gen1.c +++ b/drivers/ddr/fsl/mpc85xx_ddr_gen1.c @@ -47,7 +47,7 @@ void fsl_ddr_set_memctl_regs(const fsl_ddr_cfg_regs_t *regs, out_be32(&ddr->timing_cfg_2, regs->timing_cfg_2); out_be32(&ddr->sdram_mode, regs->ddr_sdram_mode); out_be32(&ddr->sdram_interval, regs->ddr_sdram_interval); -#if defined(CONFIG_MPC8555) || defined(CONFIG_MPC8541) +#if defined(CONFIG_ARCH_MPC8555) || defined(CONFIG_ARCH_MPC8541) out_be32(&ddr->sdram_clk_cntl, regs->ddr_sdram_clk_cntl); #endif diff --git a/drivers/gpio/bcm2835_gpio.c b/drivers/gpio/bcm2835_gpio.c index 8dd7a28e267..cd5480ee094 100644 --- a/drivers/gpio/bcm2835_gpio.c +++ b/drivers/gpio/bcm2835_gpio.c @@ -10,6 +10,7 @@ #include <errno.h> #include <asm/gpio.h> #include <asm/io.h> +#include <fdtdec.h> struct bcm2835_gpios { struct bcm2835_gpio_regs *reg; @@ -118,9 +119,32 @@ static int bcm2835_gpio_probe(struct udevice *dev) return 0; } +#if CONFIG_IS_ENABLED(OF_CONTROL) +static const struct udevice_id bcm2835_gpio_id[] = { + {.compatible = "brcm,bcm2835-gpio"}, + {} +}; + +static int bcm2835_gpio_ofdata_to_platdata(struct udevice *dev) +{ + struct bcm2835_gpio_platdata *plat = dev_get_platdata(dev); + fdt_addr_t addr; + + addr = dev_get_addr(dev); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + + plat->base = addr; + return 0; +} +#endif + U_BOOT_DRIVER(gpio_bcm2835) = { .name = "gpio_bcm2835", .id = UCLASS_GPIO, + .of_match = of_match_ptr(bcm2835_gpio_id), + .ofdata_to_platdata = of_match_ptr(bcm2835_gpio_ofdata_to_platdata), + .platdata_auto_alloc_size = sizeof(struct bcm2835_gpio_platdata), .ops = &gpio_bcm2835_ops, .probe = bcm2835_gpio_probe, .flags = DM_FLAG_PRE_RELOC, diff --git a/drivers/input/keyboard.c b/drivers/input/keyboard.c index 48255bd87b4..7af5868dea7 100644 --- a/drivers/input/keyboard.c +++ b/drivers/input/keyboard.c @@ -20,8 +20,8 @@ static struct input_config config; static int kbd_read_keys(struct input_config *config) { -#if defined(CONFIG_MPC5xxx) || defined(CONFIG_MPC8540) || \ - defined(CONFIG_MPC8541) || defined(CONFIG_MPC8555) +#if defined(CONFIG_MPC5xxx) || defined(CONFIG_ARCH_MPC8540) || \ + defined(CONFIG_ARCH_MPC8541) || defined(CONFIG_ARCH_MPC8555) /* no ISR is used, so received chars must be polled */ ps2ser_check(); #endif diff --git a/drivers/net/fm/Makefile b/drivers/net/fm/Makefile index 316fef485da..08b3f276015 100644 --- a/drivers/net/fm/Makefile +++ b/drivers/net/fm/Makefile @@ -17,26 +17,24 @@ obj-$(CONFIG_SYS_FMAN_V3) += memac_phy.o obj-$(CONFIG_SYS_FMAN_V3) += memac.o # SoC specific SERDES support -obj-$(CONFIG_P1017) += p1023.o -obj-$(CONFIG_P1023) += p1023.o +obj-$(CONFIG_ARCH_P1023) += p1023.o # The P204x, P304x, and P5020 are the same -obj-$(CONFIG_PPC_P2041) += p5020.o -obj-$(CONFIG_PPC_P3041) += p5020.o -obj-$(CONFIG_PPC_P4080) += p4080.o -obj-$(CONFIG_PPC_P5020) += p5020.o -obj-$(CONFIG_PPC_P5040) += p5040.o -obj-$(CONFIG_PPC_T1040) += t1040.o -obj-$(CONFIG_PPC_T1042) += t1040.o +obj-$(CONFIG_ARCH_P2041) += p5020.o +obj-$(CONFIG_ARCH_P3041) += p5020.o +obj-$(CONFIG_ARCH_P4080) += p4080.o +obj-$(CONFIG_ARCH_P5020) += p5020.o +obj-$(CONFIG_ARCH_P5040) += p5040.o +obj-$(CONFIG_ARCH_T1040) += t1040.o +obj-$(CONFIG_ARCH_T1042) += t1040.o obj-$(CONFIG_PPC_T1020) += t1040.o obj-$(CONFIG_PPC_T1022) += t1040.o -obj-$(CONFIG_PPC_T1023) += t1024.o -obj-$(CONFIG_PPC_T1024) += t1024.o -obj-$(CONFIG_PPC_T2080) += t2080.o -obj-$(CONFIG_PPC_T2081) += t2080.o -obj-$(CONFIG_PPC_T4240) += t4240.o -obj-$(CONFIG_PPC_T4160) += t4240.o -obj-$(CONFIG_PPC_T4080) += t4240.o -obj-$(CONFIG_PPC_B4420) += b4860.o -obj-$(CONFIG_PPC_B4860) += b4860.o +obj-$(CONFIG_ARCH_T1023) += t1024.o +obj-$(CONFIG_ARCH_T1024) += t1024.o +obj-$(CONFIG_ARCH_T2080) += t2080.o +obj-$(CONFIG_ARCH_T2081) += t2080.o +obj-$(CONFIG_ARCH_T4240) += t4240.o +obj-$(CONFIG_ARCH_T4160) += t4240.o +obj-$(CONFIG_ARCH_B4420) += b4860.o +obj-$(CONFIG_ARCH_B4860) += b4860.o obj-$(CONFIG_LS1043A) += ls1043.o obj-$(CONFIG_ARCH_LS1046A) += ls1046.o diff --git a/drivers/net/fm/b4860.c b/drivers/net/fm/b4860.c index eb058c9c3d6..5aeeb872824 100644 --- a/drivers/net/fm/b4860.c +++ b/drivers/net/fm/b4860.c @@ -47,7 +47,7 @@ void fman_enable_port(enum fm_port port) phy_interface_t fman_port_enet_if(enum fm_port port) { -#if defined(CONFIG_B4860QDS) +#if defined(CONFIG_TARGET_B4860QDS) || defined(CONFIG_TARGET_B4420QDS) u32 serdes2_prtcl; char buffer[HWCONFIG_BUFFER_SIZE]; char *buf = NULL; @@ -60,7 +60,8 @@ phy_interface_t fman_port_enet_if(enum fm_port port) /*B4860 has two 10Gig Mac*/ if ((port == FM1_10GEC1 || port == FM1_10GEC2) && ((is_serdes_configured(XAUI_FM1_MAC9)) || - #if !defined(CONFIG_B4860QDS) + #if (!defined(CONFIG_TARGET_B4860QDS) && \ + !defined(CONFIG_TARGET_B4R420QDS)) (is_serdes_configured(XFI_FM1_MAC9)) || (is_serdes_configured(XFI_FM1_MAC10)) || #endif @@ -68,7 +69,7 @@ phy_interface_t fman_port_enet_if(enum fm_port port) )) return PHY_INTERFACE_MODE_XGMII; -#if defined(CONFIG_B4860QDS) +#if defined(CONFIG_TARGET_B4860QDS) || defined(CONFIG_TARGET_B4420QDS) serdes2_prtcl = in_be32(&gur->rcwsr[4]) & FSL_CORENET2_RCWSR4_SRDS2_PRTCL; diff --git a/drivers/net/fm/fm.h b/drivers/net/fm/fm.h index fa9bc9f42db..64cc9718d0a 100644 --- a/drivers/net/fm/fm.h +++ b/drivers/net/fm/fm.h @@ -88,7 +88,7 @@ struct fm_port_global_pram { #define PRAM_MODE_GLOBAL 0x20000000 #define PRAM_MODE_GRACEFUL_STOP 0x00800000 -#if defined(CONFIG_P1017) || defined(CONFIG_P1023) +#if defined(CONFIG_ARCH_P1023) #define FM_FREE_POOL_SIZE 0x2000 /* 8K bytes */ #else #define FM_FREE_POOL_SIZE 0x20000 /* 128K bytes */ diff --git a/drivers/net/keystone_net.c b/drivers/net/keystone_net.c index f88d83e7273..a5120e01ad3 100644 --- a/drivers/net/keystone_net.c +++ b/drivers/net/keystone_net.c @@ -56,13 +56,16 @@ struct rx_buff_desc net_rx_buffs = { #ifdef CONFIG_DM_ETH enum link_type { - LINK_TYPE_MAC_TO_MAC_AUTO = 0, - LINK_TYPE_MAC_TO_PHY_MODE = 1, - LINK_TYPE_MAC_TO_MAC_FORCED_MODE = 2, - LINK_TYPE_MAC_TO_FIBRE_MODE = 3, - LINK_TYPE_MAC_TO_PHY_NO_MDIO_MODE = 4, - LINK_TYPE_10G_MAC_TO_PHY_MODE = 10, - LINK_TYPE_10G_MAC_TO_MAC_FORCED_MODE = 11, + LINK_TYPE_SGMII_MAC_TO_MAC_AUTO = 0, + LINK_TYPE_SGMII_MAC_TO_PHY_MODE = 1, + LINK_TYPE_SGMII_MAC_TO_MAC_FORCED_MODE = 2, + LINK_TYPE_SGMII_MAC_TO_FIBRE_MODE = 3, + LINK_TYPE_SGMII_MAC_TO_PHY_NO_MDIO_MODE = 4, + LINK_TYPE_RGMII_LINK_MAC_PHY = 5, + LINK_TYPE_RGMII_LINK_MAC_MAC_FORCED = 6, + LINK_TYPE_RGMII_LINK_MAC_PHY_NO_MDIO = 7, + LINK_TYPE_10G_MAC_TO_PHY_MODE = 10, + LINK_TYPE_10G_MAC_TO_MAC_FORCED_MODE = 11, }; #define mac_hi(mac) (((mac)[0] << 0) | ((mac)[1] << 8) | \ @@ -1077,11 +1080,15 @@ static int ks2_eth_parse_slave_interface(int netcp, int slave, priv->mdio_base = (void *)fdtdec_get_addr(fdt, mdio, "reg"); } - if (priv->link_type == LINK_TYPE_MAC_TO_PHY_MODE) { + if (priv->link_type == LINK_TYPE_SGMII_MAC_TO_PHY_MODE) { priv->phy_if = PHY_INTERFACE_MODE_SGMII; pdata->phy_interface = priv->phy_if; priv->sgmii_link_type = SGMII_LINK_MAC_PHY; priv->has_mdio = true; + } else if (priv->link_type == LINK_TYPE_RGMII_LINK_MAC_PHY) { + priv->phy_if = PHY_INTERFACE_MODE_RGMII; + pdata->phy_interface = priv->phy_if; + priv->has_mdio = true; } return 0; diff --git a/drivers/qe/uec.c b/drivers/qe/uec.c index 5fd956adce4..b3af707a3d0 100644 --- a/drivers/qe/uec.c +++ b/drivers/qe/uec.c @@ -567,7 +567,7 @@ static void phy_change(struct eth_device *dev) { uec_private_t *uec = (uec_private_t *)dev->priv; -#if defined(CONFIG_P1012) || defined(CONFIG_P1021) || defined(CONFIG_P1025) +#if defined(CONFIG_ARCH_P1021) || defined(CONFIG_ARCH_P1025) ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); /* QE9 and QE12 need to be set for enabling QE MII managment signals */ @@ -578,7 +578,7 @@ static void phy_change(struct eth_device *dev) /* Update the link, speed, duplex */ uec->mii_info->phyinfo->read_status(uec->mii_info); -#if defined(CONFIG_P1012) || defined(CONFIG_P1021) || defined(CONFIG_P1025) +#if defined(CONFIG_ARCH_P1021) || defined(CONFIG_ARCH_P1025) /* * QE12 is muxed with LBCTL, it needs to be released for enabling * LBCTL signal for LBC usage. @@ -1193,14 +1193,14 @@ static int uec_init(struct eth_device* dev, bd_t *bd) uec_private_t *uec; int err, i; struct phy_info *curphy; -#if defined(CONFIG_P1012) || defined(CONFIG_P1021) || defined(CONFIG_P1025) +#if defined(CONFIG_ARCH_P1021) || defined(CONFIG_ARCH_P1025) ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); #endif uec = (uec_private_t *)dev->priv; if (uec->the_first_run == 0) { -#if defined(CONFIG_P1012) || defined(CONFIG_P1021) || defined(CONFIG_P1025) +#if defined(CONFIG_ARCH_P1021) || defined(CONFIG_ARCH_P1025) /* QE9 and QE12 need to be set for enabling QE MII managment signals */ setbits_be32(&gur->pmuxcr, MPC85xx_PMUXCR_QE9); setbits_be32(&gur->pmuxcr, MPC85xx_PMUXCR_QE12); @@ -1232,7 +1232,7 @@ static int uec_init(struct eth_device* dev, bd_t *bd) udelay(100000); } while (1); -#if defined(CONFIG_P1012) || defined(CONFIG_P1021) || defined(CONFIG_P1025) +#if defined(CONFIG_ARCH_P1021) || defined(CONFIG_ARCH_P1025) /* QE12 needs to be released for enabling LBCTL signal*/ clrbits_be32(&gur->pmuxcr, MPC85xx_PMUXCR_QE12); #endif diff --git a/drivers/serial/serial_bcm283x_mu.c b/drivers/serial/serial_bcm283x_mu.c index f4e062f0c4e..3884f744cda 100644 --- a/drivers/serial/serial_bcm283x_mu.c +++ b/drivers/serial/serial_bcm283x_mu.c @@ -25,6 +25,8 @@ #include <linux/compiler.h> #include <fdtdec.h> +DECLARE_GLOBAL_DATA_PTR; + struct bcm283x_mu_regs { u32 io; u32 iir; @@ -57,7 +59,7 @@ static int bcm283x_mu_serial_setbrg(struct udevice *dev, int baudrate) struct bcm283x_mu_regs *regs = priv->regs; u32 divider; - if (plat->skip_init) + if (plat->disabled || plat->skip_init) return 0; divider = plat->clock / (baudrate * 8); @@ -83,10 +85,14 @@ static int bcm283x_mu_serial_probe(struct udevice *dev) static int bcm283x_mu_serial_getc(struct udevice *dev) { + struct bcm283x_mu_serial_platdata *plat = dev_get_platdata(dev); struct bcm283x_mu_priv *priv = dev_get_priv(dev); struct bcm283x_mu_regs *regs = priv->regs; u32 data; + if (plat->disabled) + return -EAGAIN; + /* Wait until there is data in the FIFO */ if (!(readl(®s->lsr) & BCM283X_MU_LSR_RX_READY)) return -EAGAIN; @@ -98,9 +104,13 @@ static int bcm283x_mu_serial_getc(struct udevice *dev) static int bcm283x_mu_serial_putc(struct udevice *dev, const char data) { + struct bcm283x_mu_serial_platdata *plat = dev_get_platdata(dev); struct bcm283x_mu_priv *priv = dev_get_priv(dev); struct bcm283x_mu_regs *regs = priv->regs; + if (plat->disabled) + return 0; + /* Wait until there is space in the FIFO */ if (!(readl(®s->lsr) & BCM283X_MU_LSR_TX_EMPTY)) return -EAGAIN; @@ -113,9 +123,15 @@ static int bcm283x_mu_serial_putc(struct udevice *dev, const char data) static int bcm283x_mu_serial_pending(struct udevice *dev, bool input) { + struct bcm283x_mu_serial_platdata *plat = dev_get_platdata(dev); struct bcm283x_mu_priv *priv = dev_get_priv(dev); struct bcm283x_mu_regs *regs = priv->regs; - unsigned int lsr = readl(®s->lsr); + unsigned int lsr; + + if (plat->disabled) + return 0; + + lsr = readl(®s->lsr); if (input) { WATCHDOG_RESET(); @@ -132,9 +148,35 @@ static const struct dm_serial_ops bcm283x_mu_serial_ops = { .setbrg = bcm283x_mu_serial_setbrg, }; +#if CONFIG_IS_ENABLED(OF_CONTROL) +static const struct udevice_id bcm283x_mu_serial_id[] = { + {.compatible = "brcm,bcm2835-aux-uart"}, + {} +}; + +static int bcm283x_mu_serial_ofdata_to_platdata(struct udevice *dev) +{ + struct bcm283x_mu_serial_platdata *plat = dev_get_platdata(dev); + fdt_addr_t addr; + + addr = dev_get_addr(dev); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + + plat->base = addr; + plat->clock = fdtdec_get_int(gd->fdt_blob, dev->of_offset, "clock", 1); + plat->skip_init = fdtdec_get_bool(gd->fdt_blob, dev->of_offset, + "skip-init"); + plat->disabled = false; + return 0; +} +#endif + U_BOOT_DRIVER(serial_bcm283x_mu) = { .name = "serial_bcm283x_mu", .id = UCLASS_SERIAL, + .of_match = of_match_ptr(bcm283x_mu_serial_id), + .ofdata_to_platdata = of_match_ptr(bcm283x_mu_serial_ofdata_to_platdata), .platdata_auto_alloc_size = sizeof(struct bcm283x_mu_serial_platdata), .probe = bcm283x_mu_serial_probe, .ops = &bcm283x_mu_serial_ops, diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c index 6f83835fa8c..a8d3d675d57 100644 --- a/drivers/serial/serial_pl01x.c +++ b/drivers/serial/serial_pl01x.c @@ -356,6 +356,8 @@ static int pl01x_serial_ofdata_to_platdata(struct udevice *dev) plat->base = addr; plat->clock = fdtdec_get_int(gd->fdt_blob, dev->of_offset, "clock", 1); plat->type = dev_get_driver_data(dev); + plat->skip_init = fdtdec_get_bool(gd->fdt_blob, dev->of_offset, + "skip-init"); return 0; } #endif diff --git a/drivers/video/bcm2835.c b/drivers/video/bcm2835.c index cd605e632cb..cc6454f10d4 100644 --- a/drivers/video/bcm2835.c +++ b/drivers/video/bcm2835.c @@ -71,9 +71,9 @@ void lcd_ctrl_init(void *lcdbase) msg_setup->virtual_w_h.body.req.width = w; msg_setup->virtual_w_h.body.req.height = h; BCM2835_MBOX_INIT_TAG(&msg_setup->depth, SET_DEPTH); - msg_setup->depth.body.req.bpp = 16; + msg_setup->depth.body.req.bpp = 32; BCM2835_MBOX_INIT_TAG(&msg_setup->pixel_order, SET_PIXEL_ORDER); - msg_setup->pixel_order.body.req.order = BCM2835_MBOX_PIXEL_ORDER_BGR; + msg_setup->pixel_order.body.req.order = BCM2835_MBOX_PIXEL_ORDER_RGB; BCM2835_MBOX_INIT_TAG(&msg_setup->alpha_mode, SET_ALPHA_MODE); msg_setup->alpha_mode.body.req.alpha = BCM2835_MBOX_ALPHA_MODE_IGNORED; BCM2835_MBOX_INIT_TAG(&msg_setup->virtual_offset, SET_VIRTUAL_OFFSET); @@ -103,7 +103,7 @@ void lcd_ctrl_init(void *lcdbase) panel_info.vl_col = w; panel_info.vl_row = h; - panel_info.vl_bpix = LCD_COLOR16; + panel_info.vl_bpix = LCD_COLOR32; gd->fb_base = bus_to_phys( msg_setup->allocate_buffer.body.resp.fb_address); |