summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/Kconfig2
-rw-r--r--drivers/block/ahci.c1
-rw-r--r--drivers/gpio/pm8916_gpio.c2
-rw-r--r--drivers/memory/Kconfig18
-rw-r--r--drivers/mmc/omap_hsmmc.c8
-rw-r--r--drivers/power/pmic/pm8916.c2
-rw-r--r--drivers/serial/serial_bcm283x_mu.c4
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;
}
}