diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/Kconfig | 2 | ||||
-rw-r--r-- | drivers/block/ahci.c | 1 | ||||
-rw-r--r-- | drivers/gpio/pm8916_gpio.c | 2 | ||||
-rw-r--r-- | drivers/memory/Kconfig | 18 | ||||
-rw-r--r-- | drivers/mmc/omap_hsmmc.c | 8 | ||||
-rw-r--r-- | drivers/power/pmic/pm8916.c | 2 | ||||
-rw-r--r-- | drivers/serial/serial_bcm283x_mu.c | 4 |
7 files changed, 32 insertions, 5 deletions
diff --git a/drivers/Kconfig b/drivers/Kconfig index c82a94b7a5..118b66ed0e 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -30,6 +30,8 @@ source "drivers/input/Kconfig" source "drivers/led/Kconfig" +source "drivers/memory/Kconfig" + source "drivers/misc/Kconfig" source "drivers/mmc/Kconfig" diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c index d29642be77..e3e783a74c 100644 --- a/drivers/block/ahci.c +++ b/drivers/block/ahci.c @@ -1061,6 +1061,7 @@ static int ata_io_flush(u8 port) memcpy((unsigned char *)pp->cmd_tbl, fis, 20); ahci_fill_cmd_slot(pp, cmd_fis_len); + ahci_dcache_flush_sata_cmd(pp); writel_with_flush(1, port_mmio + PORT_CMD_ISSUE); if (waiting_for_cmd_completed(port_mmio + PORT_CMD_ISSUE, diff --git a/drivers/gpio/pm8916_gpio.c b/drivers/gpio/pm8916_gpio.c index 1abab7fef1..0b61975843 100644 --- a/drivers/gpio/pm8916_gpio.c +++ b/drivers/gpio/pm8916_gpio.c @@ -50,7 +50,7 @@ DECLARE_GLOBAL_DATA_PTR; #define REG_EN_CTL_ENABLE (1 << 7) struct pm8916_gpio_bank { - uint16_t pid; /* Peripheral ID on SPMI bus */ + uint32_t pid; /* Peripheral ID on SPMI bus */ }; static int pm8916_gpio_set_direction(struct udevice *dev, unsigned offset, diff --git a/drivers/memory/Kconfig b/drivers/memory/Kconfig new file mode 100644 index 0000000000..4fbb5aa217 --- /dev/null +++ b/drivers/memory/Kconfig @@ -0,0 +1,18 @@ +# +# Memory devices +# + +menu "Memory Controller drivers" + +config TI_AEMIF + tristate "Texas Instruments AEMIF driver" + depends on ARCH_KEYSTONE + help + This driver is for the AEMIF module available in Texas Instruments + SoCs. AEMIF stands for Asynchronous External Memory Interface and + is intended to provide a glue-less interface to a variety of + asynchronuous memory devices like ASRAM, NOR and NAND memory. A total + of 256M bytes of any of these memories can be accessed at a given + time via four chip selects with 64M byte access per chip select. + +endmenu diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c index afe0b0646d..85a832bd42 100644 --- a/drivers/mmc/omap_hsmmc.c +++ b/drivers/mmc/omap_hsmmc.c @@ -773,7 +773,8 @@ static int omap_hsmmc_ofdata_to_platdata(struct udevice *dev) struct mmc_config *cfg; int val; - priv->base_addr = (struct hsmmc *)dev_get_addr(dev); + priv->base_addr = map_physmem(dev_get_addr(dev), sizeof(struct hsmmc *), + MAP_NOCACHE); cfg = &priv->cfg; cfg->host_caps = MMC_MODE_HS_52MHz | MMC_MODE_HS; @@ -819,6 +820,11 @@ static int omap_hsmmc_probe(struct udevice *dev) if (mmc == NULL) return -1; +#ifdef OMAP_HSMMC_USE_GPIO + gpio_request_by_name(dev, "cd-gpios", 0, &priv->cd_gpio, GPIOD_IS_IN); + gpio_request_by_name(dev, "wp-gpios", 0, &priv->wp_gpio, GPIOD_IS_IN); +#endif + upriv->mmc = mmc; return 0; diff --git a/drivers/power/pmic/pm8916.c b/drivers/power/pmic/pm8916.c index 9acf5f55f7..d4c7d4adff 100644 --- a/drivers/power/pmic/pm8916.c +++ b/drivers/power/pmic/pm8916.c @@ -18,7 +18,7 @@ DECLARE_GLOBAL_DATA_PTR; #define REG_MASK 0xFF struct pm8916_priv { - uint16_t usid; /* Slave ID on SPMI bus */ + uint32_t usid; /* Slave ID on SPMI bus */ }; static int pm8916_reg_count(struct udevice *dev) diff --git a/drivers/serial/serial_bcm283x_mu.c b/drivers/serial/serial_bcm283x_mu.c index fc36bc0e85..7357bbfb26 100644 --- a/drivers/serial/serial_bcm283x_mu.c +++ b/drivers/serial/serial_bcm283x_mu.c @@ -116,9 +116,9 @@ static int bcm283x_mu_serial_pending(struct udevice *dev, bool input) if (input) { WATCHDOG_RESET(); - return lsr & BCM283X_MU_LSR_RX_READY; + return (lsr & BCM283X_MU_LSR_RX_READY) ? 1 : 0; } else { - return !(lsr & BCM283X_MU_LSR_TX_IDLE); + return (lsr & BCM283X_MU_LSR_TX_IDLE) ? 0 : 1; } } |