Commit 7063c88c authored by Russell King's avatar Russell King Committed by Russell King
parents f4b9a988 4177662e
...@@ -282,7 +282,7 @@ CONFIG_ALIGNMENT_TRAP=y ...@@ -282,7 +282,7 @@ CONFIG_ALIGNMENT_TRAP=y
# #
CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="init=/sbin/preinit ubi.mtd=rootfs root=ubi0:rootfs rootfstype=ubifs rootflags=bulk_read,no_chk_data_crc rw console=ttyMTD,log console=tty0" CONFIG_CMDLINE="init=/sbin/preinit ubi.mtd=rootfs root=ubi0:rootfs rootfstype=ubifs rootflags=bulk_read,no_chk_data_crc rw console=ttyMTD,log console=tty0 console=ttyS2,115200n8"
# CONFIG_XIP_KERNEL is not set # CONFIG_XIP_KERNEL is not set
# CONFIG_KEXEC is not set # CONFIG_KEXEC is not set
...@@ -1354,7 +1354,7 @@ CONFIG_USB_OTG_UTILS=y ...@@ -1354,7 +1354,7 @@ CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set # CONFIG_USB_GPIO_VBUS is not set
# CONFIG_ISP1301_OMAP is not set # CONFIG_ISP1301_OMAP is not set
CONFIG_TWL4030_USB=y CONFIG_TWL4030_USB=y
CONFIG_MMC=m CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set # CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set # CONFIG_MMC_UNSAFE_RESUME is not set
...@@ -1449,7 +1449,8 @@ CONFIG_RTC_DRV_TWL4030=m ...@@ -1449,7 +1449,8 @@ CONFIG_RTC_DRV_TWL4030=m
# on-CPU RTC drivers # on-CPU RTC drivers
# #
# CONFIG_DMADEVICES is not set # CONFIG_DMADEVICES is not set
# CONFIG_REGULATOR is not set CONFIG_REGULATOR=y
CONFIG_REGULATOR_TWL4030=y
# CONFIG_UIO is not set # CONFIG_UIO is not set
# CONFIG_STAGING is not set # CONFIG_STAGING is not set
......
...@@ -146,7 +146,7 @@ static struct platform_device overo_smsc911x_device = { ...@@ -146,7 +146,7 @@ static struct platform_device overo_smsc911x_device = {
.name = "smsc911x", .name = "smsc911x",
.id = -1, .id = -1,
.num_resources = ARRAY_SIZE(overo_smsc911x_resources), .num_resources = ARRAY_SIZE(overo_smsc911x_resources),
.resource = &overo_smsc911x_resources, .resource = overo_smsc911x_resources,
.dev = { .dev = {
.platform_data = &overo_smsc911x_config, .platform_data = &overo_smsc911x_config,
}, },
......
...@@ -278,6 +278,10 @@ static struct twl4030_gpio_platform_data rx51_gpio_data = { ...@@ -278,6 +278,10 @@ static struct twl4030_gpio_platform_data rx51_gpio_data = {
.setup = rx51_twlgpio_setup, .setup = rx51_twlgpio_setup,
}; };
static struct twl4030_usb_data rx51_usb_data = {
.usb_mode = T2_USB_MODE_ULPI,
};
static struct twl4030_platform_data rx51_twldata = { static struct twl4030_platform_data rx51_twldata = {
.irq_base = TWL4030_IRQ_BASE, .irq_base = TWL4030_IRQ_BASE,
.irq_end = TWL4030_IRQ_END, .irq_end = TWL4030_IRQ_END,
...@@ -286,6 +290,7 @@ static struct twl4030_platform_data rx51_twldata = { ...@@ -286,6 +290,7 @@ static struct twl4030_platform_data rx51_twldata = {
.gpio = &rx51_gpio_data, .gpio = &rx51_gpio_data,
.keypad = &rx51_kp_data, .keypad = &rx51_kp_data,
.madc = &rx51_madc_data, .madc = &rx51_madc_data,
.usb = &rx51_usb_data,
.vaux1 = &rx51_vaux1, .vaux1 = &rx51_vaux1,
.vaux2 = &rx51_vaux2, .vaux2 = &rx51_vaux2,
......
...@@ -119,6 +119,7 @@ static int twl_mmc_late_init(struct device *dev) ...@@ -119,6 +119,7 @@ static int twl_mmc_late_init(struct device *dev)
if (i != 0) if (i != 0)
break; break;
ret = PTR_ERR(reg); ret = PTR_ERR(reg);
hsmmc[i].vcc = NULL;
goto err; goto err;
} }
hsmmc[i].vcc = reg; hsmmc[i].vcc = reg;
...@@ -165,8 +166,13 @@ static int twl_mmc_late_init(struct device *dev) ...@@ -165,8 +166,13 @@ static int twl_mmc_late_init(struct device *dev)
static void twl_mmc_cleanup(struct device *dev) static void twl_mmc_cleanup(struct device *dev)
{ {
struct omap_mmc_platform_data *mmc = dev->platform_data; struct omap_mmc_platform_data *mmc = dev->platform_data;
int i;
gpio_free(mmc->slots[0].switch_pin); gpio_free(mmc->slots[0].switch_pin);
for(i = 0; i < ARRAY_SIZE(hsmmc); i++) {
regulator_put(hsmmc[i].vcc);
regulator_put(hsmmc[i].vcc_aux);
}
} }
#ifdef CONFIG_PM #ifdef CONFIG_PM
......
...@@ -946,7 +946,9 @@ void omap_start_dma(int lch) ...@@ -946,7 +946,9 @@ void omap_start_dma(int lch)
cur_lch = next_lch; cur_lch = next_lch;
} while (next_lch != -1); } while (next_lch != -1);
} else if (cpu_class_is_omap2()) { } else if (cpu_is_omap242x() ||
(cpu_is_omap243x() && omap_type() <= OMAP2430_REV_ES1_0)) {
/* Errata: Need to write lch even if not using chaining */ /* Errata: Need to write lch even if not using chaining */
dma_write(lch, CLNK_CTRL(lch)); dma_write(lch, CLNK_CTRL(lch));
} }
......
...@@ -476,14 +476,12 @@ static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable) ...@@ -476,14 +476,12 @@ static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable)
__raw_writel(l, reg); __raw_writel(l, reg);
} }
static int __omap_get_gpio_datain(int gpio) static int _get_gpio_datain(struct gpio_bank *bank, int gpio)
{ {
struct gpio_bank *bank;
void __iomem *reg; void __iomem *reg;
if (check_gpio(gpio) < 0) if (check_gpio(gpio) < 0)
return -EINVAL; return -EINVAL;
bank = get_gpio_bank(gpio);
reg = bank->base; reg = bank->base;
switch (bank->method) { switch (bank->method) {
#ifdef CONFIG_ARCH_OMAP1 #ifdef CONFIG_ARCH_OMAP1
...@@ -524,6 +522,53 @@ static int __omap_get_gpio_datain(int gpio) ...@@ -524,6 +522,53 @@ static int __omap_get_gpio_datain(int gpio)
& (1 << get_gpio_index(gpio))) != 0; & (1 << get_gpio_index(gpio))) != 0;
} }
static int _get_gpio_dataout(struct gpio_bank *bank, int gpio)
{
void __iomem *reg;
if (check_gpio(gpio) < 0)
return -EINVAL;
reg = bank->base;
switch (bank->method) {
#ifdef CONFIG_ARCH_OMAP1
case METHOD_MPUIO:
reg += OMAP_MPUIO_OUTPUT;
break;
#endif
#ifdef CONFIG_ARCH_OMAP15XX
case METHOD_GPIO_1510:
reg += OMAP1510_GPIO_DATA_OUTPUT;
break;
#endif
#ifdef CONFIG_ARCH_OMAP16XX
case METHOD_GPIO_1610:
reg += OMAP1610_GPIO_DATAOUT;
break;
#endif
#ifdef CONFIG_ARCH_OMAP730
case METHOD_GPIO_730:
reg += OMAP730_GPIO_DATA_OUTPUT;
break;
#endif
#ifdef CONFIG_ARCH_OMAP850
case METHOD_GPIO_850:
reg += OMAP850_GPIO_DATA_OUTPUT;
break;
#endif
#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) || \
defined(CONFIG_ARCH_OMAP4)
case METHOD_GPIO_24XX:
reg += OMAP24XX_GPIO_DATAOUT;
break;
#endif
default:
return -EINVAL;
}
return (__raw_readl(reg) & (1 << get_gpio_index(gpio))) != 0;
}
#define MOD_REG_BIT(reg, bit_mask, set) \ #define MOD_REG_BIT(reg, bit_mask, set) \
do { \ do { \
int l = __raw_readl(base + reg); \ int l = __raw_readl(base + reg); \
...@@ -1350,9 +1395,49 @@ static int gpio_input(struct gpio_chip *chip, unsigned offset) ...@@ -1350,9 +1395,49 @@ static int gpio_input(struct gpio_chip *chip, unsigned offset)
return 0; return 0;
} }
static int gpio_is_input(struct gpio_bank *bank, int mask)
{
void __iomem *reg = bank->base;
switch (bank->method) {
case METHOD_MPUIO:
reg += OMAP_MPUIO_IO_CNTL;
break;
case METHOD_GPIO_1510:
reg += OMAP1510_GPIO_DIR_CONTROL;
break;
case METHOD_GPIO_1610:
reg += OMAP1610_GPIO_DIRECTION;
break;
case METHOD_GPIO_730:
reg += OMAP730_GPIO_DIR_CONTROL;
break;
case METHOD_GPIO_850:
reg += OMAP850_GPIO_DIR_CONTROL;
break;
case METHOD_GPIO_24XX:
reg += OMAP24XX_GPIO_OE;
break;
}
return __raw_readl(reg) & mask;
}
static int gpio_get(struct gpio_chip *chip, unsigned offset) static int gpio_get(struct gpio_chip *chip, unsigned offset)
{ {
return __omap_get_gpio_datain(chip->base + offset); struct gpio_bank *bank;
void __iomem *reg;
int gpio;
u32 mask;
gpio = chip->base + offset;
bank = get_gpio_bank(gpio);
reg = bank->base;
mask = 1 << get_gpio_index(gpio);
if (gpio_is_input(bank, mask))
return _get_gpio_datain(bank, gpio);
else
return _get_gpio_dataout(bank, gpio);
} }
static int gpio_output(struct gpio_chip *chip, unsigned offset, int value) static int gpio_output(struct gpio_chip *chip, unsigned offset, int value)
...@@ -1886,34 +1971,6 @@ arch_initcall(omap_gpio_sysinit); ...@@ -1886,34 +1971,6 @@ arch_initcall(omap_gpio_sysinit);
#include <linux/debugfs.h> #include <linux/debugfs.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
static int gpio_is_input(struct gpio_bank *bank, int mask)
{
void __iomem *reg = bank->base;
switch (bank->method) {
case METHOD_MPUIO:
reg += OMAP_MPUIO_IO_CNTL;
break;
case METHOD_GPIO_1510:
reg += OMAP1510_GPIO_DIR_CONTROL;
break;
case METHOD_GPIO_1610:
reg += OMAP1610_GPIO_DIRECTION;
break;
case METHOD_GPIO_730:
reg += OMAP730_GPIO_DIR_CONTROL;
break;
case METHOD_GPIO_850:
reg += OMAP850_GPIO_DIR_CONTROL;
break;
case METHOD_GPIO_24XX:
reg += OMAP24XX_GPIO_OE;
break;
}
return __raw_readl(reg) & mask;
}
static int dbg_gpio_show(struct seq_file *s, void *unused) static int dbg_gpio_show(struct seq_file *s, void *unused)
{ {
unsigned i, j, gpio; unsigned i, j, gpio;
......
...@@ -378,9 +378,6 @@ IS_OMAP_TYPE(3430, 0x3430) ...@@ -378,9 +378,6 @@ IS_OMAP_TYPE(3430, 0x3430)
#define cpu_class_is_omap2() (cpu_is_omap24xx() || cpu_is_omap34xx() || \ #define cpu_class_is_omap2() (cpu_is_omap24xx() || cpu_is_omap34xx() || \
cpu_is_omap44xx()) cpu_is_omap44xx())
#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \
defined(CONFIG_ARCH_OMAP4)
/* Various silicon revisions for omap2 */ /* Various silicon revisions for omap2 */
#define OMAP242X_CLASS 0x24200024 #define OMAP242X_CLASS 0x24200024
#define OMAP2420_REV_ES1_0 0x24200024 #define OMAP2420_REV_ES1_0 0x24200024
...@@ -436,5 +433,3 @@ IS_OMAP_TYPE(3430, 0x3430) ...@@ -436,5 +433,3 @@ IS_OMAP_TYPE(3430, 0x3430)
int omap_chip_is(struct omap_chip_id oci); int omap_chip_is(struct omap_chip_id oci);
void omap2_check_revision(void); void omap2_check_revision(void);
#endif /* defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) */
...@@ -44,9 +44,9 @@ ...@@ -44,9 +44,9 @@
#define OMAP2_SRAM_VA 0xe3000000 #define OMAP2_SRAM_VA 0xe3000000
#define OMAP2_SRAM_PUB_VA (OMAP2_SRAM_VA + 0x800) #define OMAP2_SRAM_PUB_VA (OMAP2_SRAM_VA + 0x800)
#define OMAP3_SRAM_PA 0x40200000 #define OMAP3_SRAM_PA 0x40200000
#define OMAP3_SRAM_VA 0xd7000000 #define OMAP3_SRAM_VA 0xe3000000
#define OMAP3_SRAM_PUB_PA 0x40208000 #define OMAP3_SRAM_PUB_PA 0x40208000
#define OMAP3_SRAM_PUB_VA 0xd7008000 #define OMAP3_SRAM_PUB_VA (OMAP3_SRAM_VA + 0x8000)
#define OMAP4_SRAM_PA 0x40200000 /*0x402f0000*/ #define OMAP4_SRAM_PA 0x40200000 /*0x402f0000*/
#define OMAP4_SRAM_VA 0xd7000000 /*0xd70f0000*/ #define OMAP4_SRAM_VA 0xd7000000 /*0xd70f0000*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment