Commit dd58ecba authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'next/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc

* 'next/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (35 commits)
  ARM: msm: platsmp: determine number of CPU cores at boot time
  ARM: Tegra: Seaboard: Fix I2C bus numbering for ADT7461
  ARM: Tegra: Trimslice: Tri-state DAP3 pinmux
  ARM: orion5x: fixup 5181 MPP mask check
  ARM: mxs-dma: include <linux/dmaengine.h>
  ARM: i.MX53: consistently use MX53_UART_PAD_CTRL for uart txd/rxd/rts/cts
  ARM: i.MX53: UARTn_CTS pin should not change RTS input select
  ARM: i.MX53: UARTn_TXD pin should not change RXD input select
  ARM: mx25: Fix typo on CAN1_RX pad setting
  iomux-mx53: add missing 'IOMUX_CONFIG_SION' for some I2C pad definitions
  ARM: NUC93X: add UL suffix to VMALLOC_END to ensure it is properly typed
  ARM: LPC32XXX: add UL suffix to VMALLOC_END to ensure it is properly typed
  ARM: CNS3XXX: add UL suffix to VMALLOC_END to ensure it is properly typed
  ARM: i.MX53: Fix IOMUX type o's
  ARM i.MX dma: Fix burstsize settings
  mach-mx5: fix the I2C clock parents
  ARM: mxs/tx28: according to the TX28's datasheet D4-D7 are not used for MMC0
  ARM i.MX23/28: platform-mxsfb: Add missing include of linux/dma-mapping.h
  ARM: mx53: Fix some interrupts marked as reserved.
  MXC: iomux-v3: correct NO_PAD_CTRL definition
  ...

Fix up trivial conflict in arch/arm/mach-imx/mach-mx31_3ds.c
parents 3f4a1221 604f4498
...@@ -106,6 +106,7 @@ CONFIG_GPIO_SYSFS=y ...@@ -106,6 +106,7 @@ CONFIG_GPIO_SYSFS=y
CONFIG_USB=y CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_MXC=y CONFIG_USB_EHCI_MXC=y
CONFIG_USB_STORAGE=y
CONFIG_MMC=y CONFIG_MMC=y
CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK=m
CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI=m
...@@ -145,7 +146,7 @@ CONFIG_ROOT_NFS=y ...@@ -145,7 +146,7 @@ CONFIG_ROOT_NFS=y
CONFIG_NLS_DEFAULT="cp437" CONFIG_NLS_DEFAULT="cp437"
CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_15=m CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_UTF8=y CONFIG_NLS_UTF8=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
......
...@@ -89,7 +89,7 @@ CONFIG_DISPLAY_SUPPORT=m ...@@ -89,7 +89,7 @@ CONFIG_DISPLAY_SUPPORT=m
# CONFIG_USB_SUPPORT is not set # CONFIG_USB_SUPPORT is not set
CONFIG_MMC=y CONFIG_MMC=y
CONFIG_MMC_MXS=y CONFIG_MMC_MXS=y
CONFIG_RTC_CLASS=m CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1307=m
CONFIG_DMADEVICES=y CONFIG_DMADEVICES=y
CONFIG_MXS_DMA=y CONFIG_MXS_DMA=y
......
...@@ -8,4 +8,4 @@ ...@@ -8,4 +8,4 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#define VMALLOC_END 0xd8000000 #define VMALLOC_END 0xd8000000UL
...@@ -42,10 +42,11 @@ ...@@ -42,10 +42,11 @@
#include "devices-imx27.h" #include "devices-imx27.h"
#define SD1_EN_GPIO (GPIO_PORTB + 25) #define SD1_EN_GPIO IMX_GPIO_NR(2, 25)
#define OTG_PHY_RESET_GPIO (GPIO_PORTB + 23) #define OTG_PHY_RESET_GPIO IMX_GPIO_NR(2, 23)
#define SPI2_SS0 (GPIO_PORTD + 21) #define SPI2_SS0 IMX_GPIO_NR(4, 21)
#define EXPIO_PARENT_INT (MXC_INTERNAL_IRQS + GPIO_PORTC + 28) #define EXPIO_PARENT_INT gpio_to_irq(IMX_GPIO_NR(3, 28))
#define PMIC_INT IMX_GPIO_NR(3, 14)
static const int mx27pdk_pins[] __initconst = { static const int mx27pdk_pins[] __initconst = {
/* UART1 */ /* UART1 */
...@@ -98,9 +99,12 @@ static const int mx27pdk_pins[] __initconst = { ...@@ -98,9 +99,12 @@ static const int mx27pdk_pins[] __initconst = {
PD22_PF_CSPI2_SCLK, PD22_PF_CSPI2_SCLK,
PD23_PF_CSPI2_MISO, PD23_PF_CSPI2_MISO,
PD24_PF_CSPI2_MOSI, PD24_PF_CSPI2_MOSI,
SPI2_SS0 | GPIO_GPIO | GPIO_OUT,
/* I2C1 */ /* I2C1 */
PD17_PF_I2C_DATA, PD17_PF_I2C_DATA,
PD18_PF_I2C_CLK, PD18_PF_I2C_CLK,
/* PMIC INT */
PMIC_INT | GPIO_GPIO | GPIO_IN,
}; };
static const struct imxuart_platform_data uart_pdata __initconst = { static const struct imxuart_platform_data uart_pdata __initconst = {
...@@ -193,6 +197,13 @@ static int __init mx27_3ds_otg_mode(char *options) ...@@ -193,6 +197,13 @@ static int __init mx27_3ds_otg_mode(char *options)
__setup("otg_mode=", mx27_3ds_otg_mode); __setup("otg_mode=", mx27_3ds_otg_mode);
/* Regulators */ /* Regulators */
static struct regulator_init_data gpo_init = {
.constraints = {
.boot_on = 1,
.always_on = 1,
}
};
static struct regulator_consumer_supply vmmc1_consumers[] = { static struct regulator_consumer_supply vmmc1_consumers[] = {
REGULATOR_SUPPLY("lcd_2v8", NULL), REGULATOR_SUPPLY("lcd_2v8", NULL),
}; };
...@@ -201,7 +212,9 @@ static struct regulator_init_data vmmc1_init = { ...@@ -201,7 +212,9 @@ static struct regulator_init_data vmmc1_init = {
.constraints = { .constraints = {
.min_uV = 2800000, .min_uV = 2800000,
.max_uV = 2800000, .max_uV = 2800000,
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE, .apply_uV = 1,
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
REGULATOR_CHANGE_STATUS,
}, },
.num_consumer_supplies = ARRAY_SIZE(vmmc1_consumers), .num_consumer_supplies = ARRAY_SIZE(vmmc1_consumers),
.consumer_supplies = vmmc1_consumers, .consumer_supplies = vmmc1_consumers,
...@@ -228,6 +241,12 @@ static struct mc13xxx_regulator_init_data mx27_3ds_regulators[] = { ...@@ -228,6 +241,12 @@ static struct mc13xxx_regulator_init_data mx27_3ds_regulators[] = {
}, { }, {
.id = MC13783_REG_VGEN, .id = MC13783_REG_VGEN,
.init_data = &vgen_init, .init_data = &vgen_init,
}, {
.id = MC13783_REG_GPO1, /* Turn on 1.8V */
.init_data = &gpo_init,
}, {
.id = MC13783_REG_GPO3, /* Turn on 3.3V */
.init_data = &gpo_init,
}, },
}; };
......
...@@ -54,11 +54,8 @@ static int mx31_3ds_pins[] = { ...@@ -54,11 +54,8 @@ static int mx31_3ds_pins[] = {
MX31_PIN_RXD1__RXD1, MX31_PIN_RXD1__RXD1,
IOMUX_MODE(MX31_PIN_GPIO1_1, IOMUX_CONFIG_GPIO), IOMUX_MODE(MX31_PIN_GPIO1_1, IOMUX_CONFIG_GPIO),
/*SPI0*/ /*SPI0*/
MX31_PIN_CSPI1_SCLK__SCLK, IOMUX_MODE(MX31_PIN_DSR_DCE1, IOMUX_CONFIG_ALT1),
MX31_PIN_CSPI1_MOSI__MOSI, IOMUX_MODE(MX31_PIN_RI_DCE1, IOMUX_CONFIG_ALT1),
MX31_PIN_CSPI1_MISO__MISO,
MX31_PIN_CSPI1_SPI_RDY__SPI_RDY,
MX31_PIN_CSPI1_SS2__SS2, /* CS for LCD */
/* SPI 1 */ /* SPI 1 */
MX31_PIN_CSPI2_SCLK__SCLK, MX31_PIN_CSPI2_SCLK__SCLK,
MX31_PIN_CSPI2_MOSI__MOSI, MX31_PIN_CSPI2_MOSI__MOSI,
...@@ -692,6 +689,9 @@ static void __init mx31_3ds_init(void) ...@@ -692,6 +689,9 @@ static void __init mx31_3ds_init(void)
imx31_soc_init(); imx31_soc_init();
/* Configure SPI1 IOMUX */
mxc_iomux_set_gpr(MUX_PGP_CSPI_BB, true);
mxc_iomux_setup_multiple_pins(mx31_3ds_pins, ARRAY_SIZE(mx31_3ds_pins), mxc_iomux_setup_multiple_pins(mx31_3ds_pins, ARRAY_SIZE(mx31_3ds_pins),
"mx31_3ds"); "mx31_3ds");
......
...@@ -19,6 +19,6 @@ ...@@ -19,6 +19,6 @@
#ifndef __ASM_ARCH_VMALLOC_H #ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H #define __ASM_ARCH_VMALLOC_H
#define VMALLOC_END 0xF0000000 #define VMALLOC_END 0xF0000000UL
#endif #endif
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <asm/hardware/gic.h> #include <asm/hardware/gic.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/cputype.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/msm_iomap.h> #include <mach/msm_iomap.h>
...@@ -40,6 +41,12 @@ volatile int pen_release = -1; ...@@ -40,6 +41,12 @@ volatile int pen_release = -1;
static DEFINE_SPINLOCK(boot_lock); static DEFINE_SPINLOCK(boot_lock);
static inline int get_core_count(void)
{
/* 1 + the PART[1:0] field of MIDR */
return ((read_cpuid_id() >> 4) & 3) + 1;
}
void __cpuinit platform_secondary_init(unsigned int cpu) void __cpuinit platform_secondary_init(unsigned int cpu)
{ {
/* Configure edge-triggered PPIs */ /* Configure edge-triggered PPIs */
...@@ -147,9 +154,9 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) ...@@ -147,9 +154,9 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
*/ */
void __init smp_init_cpus(void) void __init smp_init_cpus(void)
{ {
unsigned int i; unsigned int i, ncores = get_core_count();
for (i = 0; i < NR_CPUS; i++) for (i = 0; i < ncores; i++)
set_cpu_possible(i, true); set_cpu_possible(i, true);
set_smp_cross_call(gic_raise_softirq); set_smp_cross_call(gic_raise_softirq);
......
...@@ -1274,9 +1274,9 @@ DEFINE_CLOCK(pwm2_clk, 0, MXC_CCM_CCGR2, MXC_CCM_CCGRx_CG8_OFFSET, ...@@ -1274,9 +1274,9 @@ DEFINE_CLOCK(pwm2_clk, 0, MXC_CCM_CCGR2, MXC_CCM_CCGRx_CG8_OFFSET,
/* I2C */ /* I2C */
DEFINE_CLOCK(i2c1_clk, 0, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG9_OFFSET, DEFINE_CLOCK(i2c1_clk, 0, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG9_OFFSET,
NULL, NULL, &ipg_clk, NULL); NULL, NULL, &ipg_perclk, NULL);
DEFINE_CLOCK(i2c2_clk, 1, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG10_OFFSET, DEFINE_CLOCK(i2c2_clk, 1, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG10_OFFSET,
NULL, NULL, &ipg_clk, NULL); NULL, NULL, &ipg_perclk, NULL);
DEFINE_CLOCK(hsi2c_clk, 0, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG11_OFFSET, DEFINE_CLOCK(hsi2c_clk, 0, MXC_CCM_CCGR1, MXC_CCM_CCGRx_CG11_OFFSET,
NULL, NULL, &ipg_clk, NULL); NULL, NULL, &ipg_clk, NULL);
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
* the terms of the GNU General Public License version 2 as published by the * the terms of the GNU General Public License version 2 as published by the
* Free Software Foundation. * Free Software Foundation.
*/ */
#include <linux/dma-mapping.h>
#include <asm/sizes.h> #include <asm/sizes.h>
#include <mach/mx23.h> #include <mach/mx23.h>
#include <mach/mx28.h> #include <mach/mx28.h>
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
#ifndef __MACH_MXS_DMA_H__ #ifndef __MACH_MXS_DMA_H__
#define __MACH_MXS_DMA_H__ #define __MACH_MXS_DMA_H__
#include <linux/dmaengine.h>
struct mxs_dma_data { struct mxs_dma_data {
int chan_irq; int chan_irq;
}; };
......
...@@ -101,14 +101,6 @@ static const iomux_cfg_t tx28_stk5v3_pads[] __initconst = { ...@@ -101,14 +101,6 @@ static const iomux_cfg_t tx28_stk5v3_pads[] __initconst = {
(MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP),
MX28_PAD_SSP0_DATA3__SSP0_D3 | MX28_PAD_SSP0_DATA3__SSP0_D3 |
(MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP),
MX28_PAD_SSP0_DATA4__SSP0_D4 |
(MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP),
MX28_PAD_SSP0_DATA5__SSP0_D5 |
(MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP),
MX28_PAD_SSP0_DATA6__SSP0_D6 |
(MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP),
MX28_PAD_SSP0_DATA7__SSP0_D7 |
(MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP),
MX28_PAD_SSP0_CMD__SSP0_CMD | MX28_PAD_SSP0_CMD__SSP0_CMD |
(MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), (MXS_PAD_8MA | MXS_PAD_3V3 | MXS_PAD_PULLUP),
MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT | MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT |
......
...@@ -18,6 +18,6 @@ ...@@ -18,6 +18,6 @@
#ifndef __ASM_ARCH_VMALLOC_H #ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H #define __ASM_ARCH_VMALLOC_H
#define VMALLOC_END (0xE0000000) #define VMALLOC_END 0xE0000000UL
#endif /* __ASM_ARCH_VMALLOC_H */ #endif /* __ASM_ARCH_VMALLOC_H */
...@@ -24,7 +24,7 @@ static unsigned int __init orion5x_variant(void) ...@@ -24,7 +24,7 @@ static unsigned int __init orion5x_variant(void)
orion5x_pcie_id(&dev, &rev); orion5x_pcie_id(&dev, &rev);
if (dev == MV88F5181_DEV_ID && rev >= MV88F5181L_REV_A0) if (dev == MV88F5181_DEV_ID)
return MPP_F5181_MASK; return MPP_F5181_MASK;
if (dev == MV88F5182_DEV_ID) if (dev == MV88F5182_DEV_ID)
......
...@@ -159,7 +159,7 @@ static void __init seaboard_i2c_init(void) ...@@ -159,7 +159,7 @@ static void __init seaboard_i2c_init(void)
i2c_register_board_info(0, &isl29018_device, 1); i2c_register_board_info(0, &isl29018_device, 1);
i2c_register_board_info(4, &adt7461_device, 1); i2c_register_board_info(3, &adt7461_device, 1);
tegra_i2c_device1.dev.platform_data = &seaboard_i2c1_platform_data; tegra_i2c_device1.dev.platform_data = &seaboard_i2c1_platform_data;
tegra_i2c_device2.dev.platform_data = &seaboard_i2c2_platform_data; tegra_i2c_device2.dev.platform_data = &seaboard_i2c2_platform_data;
......
...@@ -35,7 +35,7 @@ static __initdata struct tegra_pingroup_config trimslice_pinmux[] = { ...@@ -35,7 +35,7 @@ static __initdata struct tegra_pingroup_config trimslice_pinmux[] = {
{TEGRA_PINGROUP_CSUS, TEGRA_MUX_VI_SENSOR_CLK, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_CSUS, TEGRA_MUX_VI_SENSOR_CLK, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_DAP1, TEGRA_MUX_DAP1, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_DAP1, TEGRA_MUX_DAP1, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DAP2, TEGRA_MUX_DAP2, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_DAP2, TEGRA_MUX_DAP2, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_DAP3, TEGRA_MUX_DAP3, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_DAP3, TEGRA_MUX_DAP3, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_DAP4, TEGRA_MUX_DAP4, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_DAP4, TEGRA_MUX_DAP4, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_DDC, TEGRA_MUX_I2C2, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_DDC, TEGRA_MUX_I2C2, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DTA, TEGRA_MUX_VI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_DTA, TEGRA_MUX_VI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
......
...@@ -33,22 +33,22 @@ struct imx_imx_sdma_data { ...@@ -33,22 +33,22 @@ struct imx_imx_sdma_data {
#ifdef CONFIG_SOC_IMX25 #ifdef CONFIG_SOC_IMX25
struct imx_imx_sdma_data imx25_imx_sdma_data __initconst = struct imx_imx_sdma_data imx25_imx_sdma_data __initconst =
imx_imx_sdma_data_entry_single(MX25, 1, "imx25", 0); imx_imx_sdma_data_entry_single(MX25, 2, "imx25", 1);
#endif /* ifdef CONFIG_SOC_IMX25 */ #endif /* ifdef CONFIG_SOC_IMX25 */
#ifdef CONFIG_SOC_IMX31 #ifdef CONFIG_SOC_IMX31
struct imx_imx_sdma_data imx31_imx_sdma_data __initdata = struct imx_imx_sdma_data imx31_imx_sdma_data __initdata =
imx_imx_sdma_data_entry_single(MX31, 1, "imx31", 0); imx_imx_sdma_data_entry_single(MX31, 1, "imx31", 1);
#endif /* ifdef CONFIG_SOC_IMX31 */ #endif /* ifdef CONFIG_SOC_IMX31 */
#ifdef CONFIG_SOC_IMX35 #ifdef CONFIG_SOC_IMX35
struct imx_imx_sdma_data imx35_imx_sdma_data __initdata = struct imx_imx_sdma_data imx35_imx_sdma_data __initdata =
imx_imx_sdma_data_entry_single(MX35, 2, "imx35", 0); imx_imx_sdma_data_entry_single(MX35, 2, "imx35", 1);
#endif /* ifdef CONFIG_SOC_IMX35 */ #endif /* ifdef CONFIG_SOC_IMX35 */
#ifdef CONFIG_SOC_IMX51 #ifdef CONFIG_SOC_IMX51
struct imx_imx_sdma_data imx51_imx_sdma_data __initconst = struct imx_imx_sdma_data imx51_imx_sdma_data __initconst =
imx_imx_sdma_data_entry_single(MX51, 2, "imx51", 0); imx_imx_sdma_data_entry_single(MX51, 2, "imx51", 1);
#endif /* ifdef CONFIG_SOC_IMX51 */ #endif /* ifdef CONFIG_SOC_IMX51 */
static struct platform_device __init __maybe_unused *imx_add_imx_sdma( static struct platform_device __init __maybe_unused *imx_add_imx_sdma(
...@@ -57,7 +57,7 @@ static struct platform_device __init __maybe_unused *imx_add_imx_sdma( ...@@ -57,7 +57,7 @@ static struct platform_device __init __maybe_unused *imx_add_imx_sdma(
struct resource res[] = { struct resource res[] = {
{ {
.start = data->iobase, .start = data->iobase,
.end = data->iobase + SZ_4K - 1, .end = data->iobase + SZ_16K - 1,
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
}, { }, {
.start = data->irq, .start = data->irq,
...@@ -77,7 +77,7 @@ static struct platform_device __init __maybe_unused *imx_add_imx_dma(void) ...@@ -77,7 +77,7 @@ static struct platform_device __init __maybe_unused *imx_add_imx_dma(void)
} }
#ifdef CONFIG_ARCH_MX25 #ifdef CONFIG_ARCH_MX25
static struct sdma_script_start_addrs addr_imx25_to1 = { static struct sdma_script_start_addrs addr_imx25 = {
.ap_2_ap_addr = 729, .ap_2_ap_addr = 729,
.uart_2_mcu_addr = 904, .uart_2_mcu_addr = 904,
.per_2_app_addr = 1255, .per_2_app_addr = 1255,
...@@ -165,7 +165,7 @@ static int __init imxXX_add_imx_dma(void) ...@@ -165,7 +165,7 @@ static int __init imxXX_add_imx_dma(void)
#if defined(CONFIG_SOC_IMX25) #if defined(CONFIG_SOC_IMX25)
if (cpu_is_mx25()) { if (cpu_is_mx25()) {
imx25_imx_sdma_data.pdata.script_addrs = &addr_imx25_to1; imx25_imx_sdma_data.pdata.script_addrs = &addr_imx25;
ret = imx_add_imx_sdma(&imx25_imx_sdma_data); ret = imx_add_imx_sdma(&imx25_imx_sdma_data);
} else } else
#endif #endif
......
...@@ -69,7 +69,7 @@ const struct imx_imx_ssi_data imx35_imx_ssi_data[] __initconst = { ...@@ -69,7 +69,7 @@ const struct imx_imx_ssi_data imx35_imx_ssi_data[] __initconst = {
#ifdef CONFIG_SOC_IMX51 #ifdef CONFIG_SOC_IMX51
const struct imx_imx_ssi_data imx51_imx_ssi_data[] __initconst = { const struct imx_imx_ssi_data imx51_imx_ssi_data[] __initconst = {
#define imx51_imx_ssi_data_entry(_id, _hwid) \ #define imx51_imx_ssi_data_entry(_id, _hwid) \
imx_imx_ssi_data_entry(MX51, _id, _hwid, SZ_4K) imx_imx_ssi_data_entry(MX51, _id, _hwid, SZ_16K)
imx51_imx_ssi_data_entry(0, 1), imx51_imx_ssi_data_entry(0, 1),
imx51_imx_ssi_data_entry(1, 2), imx51_imx_ssi_data_entry(1, 2),
imx51_imx_ssi_data_entry(2, 3), imx51_imx_ssi_data_entry(2, 3),
......
...@@ -457,7 +457,7 @@ ...@@ -457,7 +457,7 @@
#define MX25_PAD_GPIO_A__USBOTG_PWR IOMUX_PAD(0x3f0, 0x1f4, 0x12, 0, 0, PAD_CTL_PKE) #define MX25_PAD_GPIO_A__USBOTG_PWR IOMUX_PAD(0x3f0, 0x1f4, 0x12, 0, 0, PAD_CTL_PKE)
#define MX25_PAD_GPIO_B__GPIO_B IOMUX_PAD(0x3f4, 0x1f8, 0x10, 0, 0, NO_PAD_CTRL) #define MX25_PAD_GPIO_B__GPIO_B IOMUX_PAD(0x3f4, 0x1f8, 0x10, 0, 0, NO_PAD_CTRL)
#define MX25_PAD_GPIO_B__CAN1_RX IOMUX_PAD(0x3f4, 0x1f8, 0x16, 0x480, 1, PAD_CTL_PUS_22K) #define MX25_PAD_GPIO_B__CAN1_RX IOMUX_PAD(0x3f4, 0x1f8, 0x16, 0x480, 1, PAD_CTL_PUS_22K_UP)
#define MX25_PAD_GPIO_B__USBOTG_OC IOMUX_PAD(0x3f4, 0x1f8, 0x12, 0x57c, 1, PAD_CTL_PUS_100K_UP) #define MX25_PAD_GPIO_B__USBOTG_OC IOMUX_PAD(0x3f4, 0x1f8, 0x12, 0x57c, 1, PAD_CTL_PUS_100K_UP)
#define MX25_PAD_GPIO_C__GPIO_C IOMUX_PAD(0x3f8, 0x1fc, 0x10, 0, 0, NO_PAD_CTRL) #define MX25_PAD_GPIO_C__GPIO_C IOMUX_PAD(0x3f8, 0x1fc, 0x10, 0, 0, NO_PAD_CTRL)
......
This diff is collapsed.
...@@ -98,7 +98,6 @@ ...@@ -98,7 +98,6 @@
extern int mxc_gpio_mode(int gpio_mode); extern int mxc_gpio_mode(int gpio_mode);
extern int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count, extern int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count,
const char *label); const char *label);
extern void mxc_gpio_release_multiple_pins(const int *pin_list, int count);
extern int __init imx_iomuxv1_init(void __iomem *base, int numports); extern int __init imx_iomuxv1_init(void __iomem *base, int numports);
......
...@@ -66,7 +66,6 @@ typedef u64 iomux_v3_cfg_t; ...@@ -66,7 +66,6 @@ typedef u64 iomux_v3_cfg_t;
#define MUX_MODE_MASK ((iomux_v3_cfg_t)0x1f << MUX_MODE_SHIFT) #define MUX_MODE_MASK ((iomux_v3_cfg_t)0x1f << MUX_MODE_SHIFT)
#define MUX_PAD_CTRL_SHIFT 41 #define MUX_PAD_CTRL_SHIFT 41
#define MUX_PAD_CTRL_MASK ((iomux_v3_cfg_t)0x1ffff << MUX_PAD_CTRL_SHIFT) #define MUX_PAD_CTRL_MASK ((iomux_v3_cfg_t)0x1ffff << MUX_PAD_CTRL_SHIFT)
#define NO_PAD_CTRL ((iomux_v3_cfg_t)1 << (MUX_PAD_CTRL_SHIFT + 16))
#define MUX_SEL_INPUT_SHIFT 58 #define MUX_SEL_INPUT_SHIFT 58
#define MUX_SEL_INPUT_MASK ((iomux_v3_cfg_t)0xf << MUX_SEL_INPUT_SHIFT) #define MUX_SEL_INPUT_MASK ((iomux_v3_cfg_t)0xf << MUX_SEL_INPUT_SHIFT)
...@@ -85,6 +84,7 @@ typedef u64 iomux_v3_cfg_t; ...@@ -85,6 +84,7 @@ typedef u64 iomux_v3_cfg_t;
* Use to set PAD control * Use to set PAD control
*/ */
#define NO_PAD_CTRL (1 << 16)
#define PAD_CTL_DVS (1 << 13) #define PAD_CTL_DVS (1 << 13)
#define PAD_CTL_HYS (1 << 8) #define PAD_CTL_HYS (1 << 8)
......
...@@ -145,14 +145,14 @@ ...@@ -145,14 +145,14 @@
/* /*
* Memory regions and CS * Memory regions and CS
*/ */
#define MX53_CSD0_BASE_ADDR 0x90000000 #define MX53_CSD0_BASE_ADDR 0x70000000
#define MX53_CSD1_BASE_ADDR 0xA0000000 #define MX53_CSD1_BASE_ADDR 0xB0000000
#define MX53_CS0_BASE_ADDR 0xB0000000 #define MX53_CS0_BASE_ADDR 0xF0000000
#define MX53_CS1_BASE_ADDR 0xB8000000 #define MX53_CS1_32MB_BASE_ADDR 0xF2000000
#define MX53_CS2_BASE_ADDR 0xC0000000 #define MX53_CS1_64MB_BASE_ADDR 0xF4000000
#define MX53_CS3_BASE_ADDR 0xC8000000 #define MX53_CS2_64MB_BASE_ADDR 0xF4000000
#define MX53_CS4_BASE_ADDR 0xCC000000 #define MX53_CS2_96MB_BASE_ADDR 0xF6000000
#define MX53_CS5_BASE_ADDR 0xCE000000 #define MX53_CS3_BASE_ADDR 0xF6000000
#define MX53_IO_P2V(x) IMX_IO_P2V(x) #define MX53_IO_P2V(x) IMX_IO_P2V(x)
#define MX53_IO_ADDRESS(x) IOMEM(MX53_IO_P2V(x)) #define MX53_IO_ADDRESS(x) IOMEM(MX53_IO_P2V(x))
...@@ -233,7 +233,7 @@ ...@@ -233,7 +233,7 @@
#define MX53_INT_ESDHC2 2 #define MX53_INT_ESDHC2 2
#define MX53_INT_ESDHC3 3 #define MX53_INT_ESDHC3 3
#define MX53_INT_ESDHC4 4 #define MX53_INT_ESDHC4 4
#define MX53_INT_RESV5 5 #define MX53_INT_DAP 5
#define MX53_INT_SDMA 6 #define MX53_INT_SDMA 6
#define MX53_INT_IOMUX 7 #define MX53_INT_IOMUX 7
#define MX53_INT_NFC 8 #define MX53_INT_NFC 8
...@@ -262,8 +262,8 @@ ...@@ -262,8 +262,8 @@
#define MX53_INT_UART1 31 #define MX53_INT_UART1 31
#define MX53_INT_UART2 32 #define MX53_INT_UART2 32
#define MX53_INT_UART3 33 #define MX53_INT_UART3 33
#define MX53_INT_RESV34 34 #define MX53_INT_RTC 34
#define MX53_INT_RESV35 35 #define MX53_INT_PTP 35
#define MX53_INT_ECSPI1 36 #define MX53_INT_ECSPI1 36
#define MX53_INT_ECSPI2 37 #define MX53_INT_ECSPI2 37
#define MX53_INT_CSPI 38 #define MX53_INT_CSPI 38
...@@ -293,8 +293,8 @@ ...@@ -293,8 +293,8 @@
#define MX53_INT_I2C1 62 #define MX53_INT_I2C1 62
#define MX53_INT_I2C2 63 #define MX53_INT_I2C2 63
#define MX53_INT_I2C3 64 #define MX53_INT_I2C3 64
#define MX53_INT_RESV65 65 #define MX53_INT_MLB 65
#define MX53_INT_RESV66 66 #define MX53_INT_ASRC 66
#define MX53_INT_SPDIF 67 #define MX53_INT_SPDIF 67
#define MX53_INT_SIM_DAT 68 #define MX53_INT_SIM_DAT 68
#define MX53_INT_IIM 69 #define MX53_INT_IIM 69
......
...@@ -157,7 +157,7 @@ EXPORT_SYMBOL(mxc_gpio_mode); ...@@ -157,7 +157,7 @@ EXPORT_SYMBOL(mxc_gpio_mode);
static int imx_iomuxv1_setup_multiple(const int *list, unsigned count) static int imx_iomuxv1_setup_multiple(const int *list, unsigned count)
{ {
size_t i; size_t i;
int ret; int ret = 0;
for (i = 0; i < count; ++i) { for (i = 0; i < count; ++i) {
ret = mxc_gpio_mode(list[i]); ret = mxc_gpio_mode(list[i]);
...@@ -172,45 +172,13 @@ static int imx_iomuxv1_setup_multiple(const int *list, unsigned count) ...@@ -172,45 +172,13 @@ static int imx_iomuxv1_setup_multiple(const int *list, unsigned count)
int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count, int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count,
const char *label) const char *label)
{ {
size_t i;
int ret; int ret;
for (i = 0; i < count; ++i) {
unsigned gpio = pin_list[i] & (GPIO_PIN_MASK | GPIO_PORT_MASK);
ret = gpio_request(gpio, label);
if (ret)
goto err_gpio_request;
}
ret = imx_iomuxv1_setup_multiple(pin_list, count); ret = imx_iomuxv1_setup_multiple(pin_list, count);
if (ret)
goto err_setup;
return 0;
err_setup:
BUG_ON(i != count);
err_gpio_request:
mxc_gpio_release_multiple_pins(pin_list, i);
return ret; return ret;
} }
EXPORT_SYMBOL(mxc_gpio_setup_multiple_pins); EXPORT_SYMBOL(mxc_gpio_setup_multiple_pins);
void mxc_gpio_release_multiple_pins(const int *pin_list, int count)
{
size_t i;
for (i = 0; i < count; ++i) {
unsigned gpio = pin_list[i] & (GPIO_PIN_MASK | GPIO_PORT_MASK);
gpio_free(gpio);
}
}
EXPORT_SYMBOL(mxc_gpio_release_multiple_pins);
int __init imx_iomuxv1_init(void __iomem *base, int numports) int __init imx_iomuxv1_init(void __iomem *base, int numports)
{ {
imx_iomuxv1_baseaddr = base; imx_iomuxv1_baseaddr = base;
......
...@@ -135,7 +135,8 @@ static int imxdma_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd, ...@@ -135,7 +135,8 @@ static int imxdma_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
if (ret) if (ret)
return ret; return ret;
imx_dma_config_burstlen(imxdmac->imxdma_channel, imxdmac->watermark_level); imx_dma_config_burstlen(imxdmac->imxdma_channel,
imxdmac->watermark_level * imxdmac->word_size);
return 0; return 0;
default: default:
......
...@@ -715,13 +715,13 @@ static void mxcmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) ...@@ -715,13 +715,13 @@ static void mxcmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
int burstlen, ret; int burstlen, ret;
/* /*
* use burstlen of 64 in 4 bit mode (--> reg value 0) * use burstlen of 64 (16 words) in 4 bit mode (--> reg value 0)
* use burstlen of 16 in 1 bit mode (--> reg value 16) * use burstlen of 16 (4 words) in 1 bit mode (--> reg value 16)
*/ */
if (ios->bus_width == MMC_BUS_WIDTH_4) if (ios->bus_width == MMC_BUS_WIDTH_4)
burstlen = 64;
else
burstlen = 16; burstlen = 16;
else
burstlen = 4;
if (mxcmci_use_dma(host) && burstlen != host->burstlen) { if (mxcmci_use_dma(host) && burstlen != host->burstlen) {
host->burstlen = burstlen; host->burstlen = burstlen;
......
...@@ -110,12 +110,12 @@ static int imx_ssi_dma_alloc(struct snd_pcm_substream *substream, ...@@ -110,12 +110,12 @@ static int imx_ssi_dma_alloc(struct snd_pcm_substream *substream,
slave_config.direction = DMA_TO_DEVICE; slave_config.direction = DMA_TO_DEVICE;
slave_config.dst_addr = dma_params->dma_addr; slave_config.dst_addr = dma_params->dma_addr;
slave_config.dst_addr_width = buswidth; slave_config.dst_addr_width = buswidth;
slave_config.dst_maxburst = dma_params->burstsize * buswidth; slave_config.dst_maxburst = dma_params->burstsize;
} else { } else {
slave_config.direction = DMA_FROM_DEVICE; slave_config.direction = DMA_FROM_DEVICE;
slave_config.src_addr = dma_params->dma_addr; slave_config.src_addr = dma_params->dma_addr;
slave_config.src_addr_width = buswidth; slave_config.src_addr_width = buswidth;
slave_config.src_maxburst = dma_params->burstsize * buswidth; slave_config.src_maxburst = dma_params->burstsize;
} }
ret = dmaengine_slave_config(iprtd->dma_chan, &slave_config); ret = dmaengine_slave_config(iprtd->dma_chan, &slave_config);
......
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