Commit 8bd1c881 authored by Linus Torvalds's avatar Linus Torvalds

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

* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)
  ARM: sa1100: fix build error
  ARM: OMAP1: recalculate loops per jiffy after dpll1 reprogram
  ARM: davinci: dm365 evm: align nand partition table to u-boot
  ARM: davinci: da850 evm: change audio edma event queue to EVENTQ_0
  ARM: davinci: dm646x evm: wrong register used in setup_vpif_input_channel_mode
  ARM: davinci: dm646x does not have a DSP domain
  ARM: davinci: psc: fix incorrect offsets
  ARM: davinci: psc: fix incorrect mask
  ARM: mx28: LRADC macro rename
  arm: mx23: recognise stmp378x as mx23
  ARM: mxs: fix machines' initializers order
  ARM: mxs/tx28: add __initconst for fec pdata
  ARM: S3C64XX: Staticise s3c6400_sysclass
  ARM: S3C64XX: Add linux/export.h to dev-spi.c
  ARM: S3C64XX: Remove extern from definition of framebuffer setup call
  MAINTAINERS: Extend Samsung patterns to cover SPI and ASoC drivers
  MAINTAINERS: Add linux-samsung-soc mailing list for Samsung
  MAINTAINERS: Consolidate Samsung MAINTAINERS
  ARM: CSR: PM: fix build error due to undeclared 'THIS_MODULE'
  ARM: CSR: fix build error due to new mdesc->dma_zone_size
  ...
parents 1418a3e5 073c4603
...@@ -1054,35 +1054,18 @@ ARM/SAMSUNG ARM ARCHITECTURES ...@@ -1054,35 +1054,18 @@ ARM/SAMSUNG ARM ARCHITECTURES
M: Ben Dooks <ben-linux@fluff.org> M: Ben Dooks <ben-linux@fluff.org>
M: Kukjin Kim <kgene.kim@samsung.com> M: Kukjin Kim <kgene.kim@samsung.com>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
L: linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
W: http://www.fluff.org/ben/linux/ W: http://www.fluff.org/ben/linux/
S: Maintained S: Maintained
F: arch/arm/plat-samsung/ F: arch/arm/plat-samsung/
F: arch/arm/plat-s3c24xx/ F: arch/arm/plat-s3c24xx/
F: arch/arm/plat-s5p/ F: arch/arm/plat-s5p/
F: arch/arm/mach-s3c24*/
F: arch/arm/mach-s3c64xx/
F: drivers/*/*s3c2410* F: drivers/*/*s3c2410*
F: drivers/*/*/*s3c2410* F: drivers/*/*/*s3c2410*
F: drivers/spi/spi-s3c*
ARM/S3C2410 ARM ARCHITECTURE F: sound/soc/samsung/*
M: Ben Dooks <ben-linux@fluff.org>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
W: http://www.fluff.org/ben/linux/
S: Maintained
F: arch/arm/mach-s3c2410/
ARM/S3C244x ARM ARCHITECTURE
M: Ben Dooks <ben-linux@fluff.org>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
W: http://www.fluff.org/ben/linux/
S: Maintained
F: arch/arm/mach-s3c2440/
F: arch/arm/mach-s3c2443/
ARM/S3C64xx ARM ARCHITECTURE
M: Ben Dooks <ben-linux@fluff.org>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
W: http://www.fluff.org/ben/linux/
S: Maintained
F: arch/arm/mach-s3c64xx/
ARM/S5P EXYNOS ARM ARCHITECTURES ARM/S5P EXYNOS ARM ARCHITECTURES
M: Kukjin Kim <kgene.kim@samsung.com> M: Kukjin Kim <kgene.kim@samsung.com>
......
...@@ -48,12 +48,7 @@ CONFIG_MACH_SX1=y ...@@ -48,12 +48,7 @@ CONFIG_MACH_SX1=y
CONFIG_MACH_NOKIA770=y CONFIG_MACH_NOKIA770=y
CONFIG_MACH_AMS_DELTA=y CONFIG_MACH_AMS_DELTA=y
CONFIG_MACH_OMAP_GENERIC=y CONFIG_MACH_OMAP_GENERIC=y
CONFIG_OMAP_ARM_216MHZ=y
CONFIG_OMAP_ARM_195MHZ=y
CONFIG_OMAP_ARM_192MHZ=y
CONFIG_OMAP_ARM_182MHZ=y CONFIG_OMAP_ARM_182MHZ=y
CONFIG_OMAP_ARM_168MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_ARM_THUMB is not set # CONFIG_ARM_THUMB is not set
CONFIG_PCCARD=y CONFIG_PCCARD=y
CONFIG_OMAP_CF=y CONFIG_OMAP_CF=y
......
...@@ -83,7 +83,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {} ...@@ -83,7 +83,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
* USB Device (Gadget) * USB Device (Gadget)
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
#ifdef CONFIG_USB_GADGET_AT91 #ifdef CONFIG_USB_AT91
static struct at91_udc_data udc_data; static struct at91_udc_data udc_data;
static struct resource udc_resources[] = { static struct resource udc_resources[] = {
......
...@@ -195,9 +195,9 @@ static struct clk_lookup periph_clocks_lookups[] = { ...@@ -195,9 +195,9 @@ static struct clk_lookup periph_clocks_lookups[] = {
CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tc0_clk), CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tc0_clk),
CLKDEV_CON_DEV_ID("t1_clk", "atmel_tcb.0", &tc1_clk), CLKDEV_CON_DEV_ID("t1_clk", "atmel_tcb.0", &tc1_clk),
CLKDEV_CON_DEV_ID("t2_clk", "atmel_tcb.0", &tc2_clk), CLKDEV_CON_DEV_ID("t2_clk", "atmel_tcb.0", &tc2_clk),
CLKDEV_CON_DEV_ID("t3_clk", "atmel_tcb.1", &tc3_clk), CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.1", &tc3_clk),
CLKDEV_CON_DEV_ID("t4_clk", "atmel_tcb.1", &tc4_clk), CLKDEV_CON_DEV_ID("t1_clk", "atmel_tcb.1", &tc4_clk),
CLKDEV_CON_DEV_ID("t5_clk", "atmel_tcb.1", &tc5_clk), CLKDEV_CON_DEV_ID("t2_clk", "atmel_tcb.1", &tc5_clk),
CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc_clk),
/* more usart lookup table for DT entries */ /* more usart lookup table for DT entries */
CLKDEV_CON_DEV_ID("usart", "fffff200.serial", &mck), CLKDEV_CON_DEV_ID("usart", "fffff200.serial", &mck),
......
...@@ -84,7 +84,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {} ...@@ -84,7 +84,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
* USB Device (Gadget) * USB Device (Gadget)
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
#ifdef CONFIG_USB_GADGET_AT91 #ifdef CONFIG_USB_AT91
static struct at91_udc_data udc_data; static struct at91_udc_data udc_data;
static struct resource udc_resources[] = { static struct resource udc_resources[] = {
......
...@@ -87,7 +87,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {} ...@@ -87,7 +87,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
* USB Device (Gadget) * USB Device (Gadget)
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
#ifdef CONFIG_USB_GADGET_AT91 #ifdef CONFIG_USB_AT91
static struct at91_udc_data udc_data; static struct at91_udc_data udc_data;
static struct resource udc_resources[] = { static struct resource udc_resources[] = {
......
...@@ -92,7 +92,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {} ...@@ -92,7 +92,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
* USB Device (Gadget) * USB Device (Gadget)
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
#ifdef CONFIG_USB_GADGET_AT91 #ifdef CONFIG_USB_AT91
static struct at91_udc_data udc_data; static struct at91_udc_data udc_data;
static struct resource udc_resources[] = { static struct resource udc_resources[] = {
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#define BOARD_HAVE_NAND_16BIT (1 << 31) #define BOARD_HAVE_NAND_16BIT (1 << 31)
static inline int board_have_nand_16bit(void) static inline int board_have_nand_16bit(void)
{ {
return system_rev & BOARD_HAVE_NAND_16BIT; return (system_rev & BOARD_HAVE_NAND_16BIT) ? 1 : 0;
} }
#endif /* __ARCH_SYSTEM_REV_H__ */ #endif /* __ARCH_SYSTEM_REV_H__ */
...@@ -753,7 +753,7 @@ static struct snd_platform_data da850_evm_snd_data = { ...@@ -753,7 +753,7 @@ static struct snd_platform_data da850_evm_snd_data = {
.num_serializer = ARRAY_SIZE(da850_iis_serializer_direction), .num_serializer = ARRAY_SIZE(da850_iis_serializer_direction),
.tdm_slots = 2, .tdm_slots = 2,
.serial_dir = da850_iis_serializer_direction, .serial_dir = da850_iis_serializer_direction,
.asp_chan_q = EVENTQ_1, .asp_chan_q = EVENTQ_0,
.version = MCASP_VERSION_2, .version = MCASP_VERSION_2,
.txnumevt = 1, .txnumevt = 1,
.rxnumevt = 1, .rxnumevt = 1,
......
...@@ -107,7 +107,7 @@ static struct mtd_partition davinci_nand_partitions[] = { ...@@ -107,7 +107,7 @@ static struct mtd_partition davinci_nand_partitions[] = {
/* UBL (a few copies) plus U-Boot */ /* UBL (a few copies) plus U-Boot */
.name = "bootloader", .name = "bootloader",
.offset = 0, .offset = 0,
.size = 28 * NAND_BLOCK_SIZE, .size = 30 * NAND_BLOCK_SIZE,
.mask_flags = MTD_WRITEABLE, /* force read-only */ .mask_flags = MTD_WRITEABLE, /* force read-only */
}, { }, {
/* U-Boot environment */ /* U-Boot environment */
......
...@@ -564,7 +564,7 @@ static int setup_vpif_input_channel_mode(int mux_mode) ...@@ -564,7 +564,7 @@ static int setup_vpif_input_channel_mode(int mux_mode)
int val; int val;
u32 value; u32 value;
if (!vpif_vsclkdis_reg || !cpld_client) if (!vpif_vidclkctl_reg || !cpld_client)
return -ENXIO; return -ENXIO;
val = i2c_smbus_read_byte(cpld_client); val = i2c_smbus_read_byte(cpld_client);
...@@ -572,7 +572,7 @@ static int setup_vpif_input_channel_mode(int mux_mode) ...@@ -572,7 +572,7 @@ static int setup_vpif_input_channel_mode(int mux_mode)
return val; return val;
spin_lock_irqsave(&vpif_reg_lock, flags); spin_lock_irqsave(&vpif_reg_lock, flags);
value = __raw_readl(vpif_vsclkdis_reg); value = __raw_readl(vpif_vidclkctl_reg);
if (mux_mode) { if (mux_mode) {
val &= VPIF_INPUT_TWO_CHANNEL; val &= VPIF_INPUT_TWO_CHANNEL;
value |= VIDCH1CLK; value |= VIDCH1CLK;
...@@ -580,7 +580,7 @@ static int setup_vpif_input_channel_mode(int mux_mode) ...@@ -580,7 +580,7 @@ static int setup_vpif_input_channel_mode(int mux_mode)
val |= VPIF_INPUT_ONE_CHANNEL; val |= VPIF_INPUT_ONE_CHANNEL;
value &= ~VIDCH1CLK; value &= ~VIDCH1CLK;
} }
__raw_writel(value, vpif_vsclkdis_reg); __raw_writel(value, vpif_vidclkctl_reg);
spin_unlock_irqrestore(&vpif_reg_lock, flags); spin_unlock_irqrestore(&vpif_reg_lock, flags);
err = i2c_smbus_write_byte(cpld_client, val); err = i2c_smbus_write_byte(cpld_client, val);
......
...@@ -161,7 +161,6 @@ static struct clk dsp_clk = { ...@@ -161,7 +161,6 @@ static struct clk dsp_clk = {
.name = "dsp", .name = "dsp",
.parent = &pll1_sysclk1, .parent = &pll1_sysclk1,
.lpsc = DM646X_LPSC_C64X_CPU, .lpsc = DM646X_LPSC_C64X_CPU,
.flags = PSC_DSP,
.usecount = 1, /* REVISIT how to disable? */ .usecount = 1, /* REVISIT how to disable? */
}; };
......
...@@ -233,7 +233,7 @@ ...@@ -233,7 +233,7 @@
#define PTCMD 0x120 #define PTCMD 0x120
#define PTSTAT 0x128 #define PTSTAT 0x128
#define PDSTAT 0x200 #define PDSTAT 0x200
#define PDCTL1 0x304 #define PDCTL 0x300
#define MDSTAT 0x800 #define MDSTAT 0x800
#define MDCTL 0xA00 #define MDCTL 0xA00
...@@ -244,7 +244,10 @@ ...@@ -244,7 +244,10 @@
#define PSC_STATE_ENABLE 3 #define PSC_STATE_ENABLE 3
#define MDSTAT_STATE_MASK 0x3f #define MDSTAT_STATE_MASK 0x3f
#define PDSTAT_STATE_MASK 0x1f
#define MDCTL_FORCE BIT(31) #define MDCTL_FORCE BIT(31)
#define PDCTL_NEXT BIT(1)
#define PDCTL_EPCGOOD BIT(8)
#ifndef __ASSEMBLER__ #ifndef __ASSEMBLER__
......
...@@ -52,7 +52,7 @@ int __init davinci_psc_is_clk_active(unsigned int ctlr, unsigned int id) ...@@ -52,7 +52,7 @@ int __init davinci_psc_is_clk_active(unsigned int ctlr, unsigned int id)
void davinci_psc_config(unsigned int domain, unsigned int ctlr, void davinci_psc_config(unsigned int domain, unsigned int ctlr,
unsigned int id, bool enable, u32 flags) unsigned int id, bool enable, u32 flags)
{ {
u32 epcpr, ptcmd, ptstat, pdstat, pdctl1, mdstat, mdctl; u32 epcpr, ptcmd, ptstat, pdstat, pdctl, mdstat, mdctl;
void __iomem *psc_base; void __iomem *psc_base;
struct davinci_soc_info *soc_info = &davinci_soc_info; struct davinci_soc_info *soc_info = &davinci_soc_info;
u32 next_state = PSC_STATE_ENABLE; u32 next_state = PSC_STATE_ENABLE;
...@@ -79,11 +79,11 @@ void davinci_psc_config(unsigned int domain, unsigned int ctlr, ...@@ -79,11 +79,11 @@ void davinci_psc_config(unsigned int domain, unsigned int ctlr,
mdctl |= MDCTL_FORCE; mdctl |= MDCTL_FORCE;
__raw_writel(mdctl, psc_base + MDCTL + 4 * id); __raw_writel(mdctl, psc_base + MDCTL + 4 * id);
pdstat = __raw_readl(psc_base + PDSTAT); pdstat = __raw_readl(psc_base + PDSTAT + 4 * domain);
if ((pdstat & 0x00000001) == 0) { if ((pdstat & PDSTAT_STATE_MASK) == 0) {
pdctl1 = __raw_readl(psc_base + PDCTL1); pdctl = __raw_readl(psc_base + PDCTL + 4 * domain);
pdctl1 |= 0x1; pdctl |= PDCTL_NEXT;
__raw_writel(pdctl1, psc_base + PDCTL1); __raw_writel(pdctl, psc_base + PDCTL + 4 * domain);
ptcmd = 1 << domain; ptcmd = 1 << domain;
__raw_writel(ptcmd, psc_base + PTCMD); __raw_writel(ptcmd, psc_base + PTCMD);
...@@ -92,9 +92,9 @@ void davinci_psc_config(unsigned int domain, unsigned int ctlr, ...@@ -92,9 +92,9 @@ void davinci_psc_config(unsigned int domain, unsigned int ctlr,
epcpr = __raw_readl(psc_base + EPCPR); epcpr = __raw_readl(psc_base + EPCPR);
} while ((((epcpr >> domain) & 1) == 0)); } while ((((epcpr >> domain) & 1) == 0));
pdctl1 = __raw_readl(psc_base + PDCTL1); pdctl = __raw_readl(psc_base + PDCTL + 4 * domain);
pdctl1 |= 0x100; pdctl |= PDCTL_EPCGOOD;
__raw_writel(pdctl1, psc_base + PDCTL1); __raw_writel(pdctl, psc_base + PDCTL + 4 * domain);
} else { } else {
ptcmd = 1 << domain; ptcmd = 1 << domain;
__raw_writel(ptcmd, psc_base + PTCMD); __raw_writel(ptcmd, psc_base + PTCMD);
......
...@@ -37,14 +37,15 @@ static void __init imx6q_map_io(void) ...@@ -37,14 +37,15 @@ static void __init imx6q_map_io(void)
imx6q_clock_map_io(); imx6q_clock_map_io();
} }
static void __init imx6q_gpio_add_irq_domain(struct device_node *np, static int __init imx6q_gpio_add_irq_domain(struct device_node *np,
struct device_node *interrupt_parent) struct device_node *interrupt_parent)
{ {
static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS - static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS;
32 * 7; /* imx6q gets 7 gpio ports */
gpio_irq_base -= 32;
irq_domain_add_simple(np, gpio_irq_base); irq_domain_add_simple(np, gpio_irq_base);
gpio_irq_base += 32;
return 0;
} }
static const struct of_device_id imx6q_irq_match[] __initconst = { static const struct of_device_id imx6q_irq_match[] __initconst = {
......
...@@ -44,20 +44,22 @@ static const struct of_dev_auxdata imx51_auxdata_lookup[] __initconst = { ...@@ -44,20 +44,22 @@ static const struct of_dev_auxdata imx51_auxdata_lookup[] __initconst = {
{ /* sentinel */ } { /* sentinel */ }
}; };
static void __init imx51_tzic_add_irq_domain(struct device_node *np, static int __init imx51_tzic_add_irq_domain(struct device_node *np,
struct device_node *interrupt_parent) struct device_node *interrupt_parent)
{ {
irq_domain_add_simple(np, 0); irq_domain_add_simple(np, 0);
return 0;
} }
static void __init imx51_gpio_add_irq_domain(struct device_node *np, static int __init imx51_gpio_add_irq_domain(struct device_node *np,
struct device_node *interrupt_parent) struct device_node *interrupt_parent)
{ {
static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS - static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS;
32 * 4; /* imx51 gets 4 gpio ports */
gpio_irq_base -= 32;
irq_domain_add_simple(np, gpio_irq_base); irq_domain_add_simple(np, gpio_irq_base);
gpio_irq_base += 32;
return 0;
} }
static const struct of_device_id imx51_irq_match[] __initconst = { static const struct of_device_id imx51_irq_match[] __initconst = {
......
...@@ -48,20 +48,22 @@ static const struct of_dev_auxdata imx53_auxdata_lookup[] __initconst = { ...@@ -48,20 +48,22 @@ static const struct of_dev_auxdata imx53_auxdata_lookup[] __initconst = {
{ /* sentinel */ } { /* sentinel */ }
}; };
static void __init imx53_tzic_add_irq_domain(struct device_node *np, static int __init imx53_tzic_add_irq_domain(struct device_node *np,
struct device_node *interrupt_parent) struct device_node *interrupt_parent)
{ {
irq_domain_add_simple(np, 0); irq_domain_add_simple(np, 0);
return 0;
} }
static void __init imx53_gpio_add_irq_domain(struct device_node *np, static int __init imx53_gpio_add_irq_domain(struct device_node *np,
struct device_node *interrupt_parent) struct device_node *interrupt_parent)
{ {
static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS - static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS;
32 * 7; /* imx53 gets 7 gpio ports */
gpio_irq_base -= 32;
irq_domain_add_simple(np, gpio_irq_base); irq_domain_add_simple(np, gpio_irq_base);
gpio_irq_base += 32;
return 0;
} }
static const struct of_device_id imx53_irq_match[] __initconst = { static const struct of_device_id imx53_irq_match[] __initconst = {
......
...@@ -104,8 +104,8 @@ ...@@ -104,8 +104,8 @@
#define MX28_INT_CAN1 9 #define MX28_INT_CAN1 9
#define MX28_INT_LRADC_TOUCH 10 #define MX28_INT_LRADC_TOUCH 10
#define MX28_INT_HSADC 13 #define MX28_INT_HSADC 13
#define MX28_INT_IRADC_THRESH0 14 #define MX28_INT_LRADC_THRESH0 14
#define MX28_INT_IRADC_THRESH1 15 #define MX28_INT_LRADC_THRESH1 15
#define MX28_INT_LRADC_CH0 16 #define MX28_INT_LRADC_CH0 16
#define MX28_INT_LRADC_CH1 17 #define MX28_INT_LRADC_CH1 17
#define MX28_INT_LRADC_CH2 18 #define MX28_INT_LRADC_CH2 18
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
*/ */
#define cpu_is_mx23() ( \ #define cpu_is_mx23() ( \
machine_is_mx23evk() || \ machine_is_mx23evk() || \
machine_is_stmp378x() || \
0) 0)
#define cpu_is_mx28() ( \ #define cpu_is_mx28() ( \
machine_is_mx28evk() || \ machine_is_mx28evk() || \
......
...@@ -361,6 +361,6 @@ static struct sys_timer m28evk_timer = { ...@@ -361,6 +361,6 @@ static struct sys_timer m28evk_timer = {
MACHINE_START(M28EVK, "DENX M28 EVK") MACHINE_START(M28EVK, "DENX M28 EVK")
.map_io = mx28_map_io, .map_io = mx28_map_io,
.init_irq = mx28_init_irq, .init_irq = mx28_init_irq,
.init_machine = m28evk_init,
.timer = &m28evk_timer, .timer = &m28evk_timer,
.init_machine = m28evk_init,
MACHINE_END MACHINE_END
...@@ -115,6 +115,6 @@ static struct sys_timer stmp378x_dvb_timer = { ...@@ -115,6 +115,6 @@ static struct sys_timer stmp378x_dvb_timer = {
MACHINE_START(STMP378X, "STMP378X") MACHINE_START(STMP378X, "STMP378X")
.map_io = mx23_map_io, .map_io = mx23_map_io,
.init_irq = mx23_init_irq, .init_irq = mx23_init_irq,
.init_machine = stmp378x_dvb_init,
.timer = &stmp378x_dvb_timer, .timer = &stmp378x_dvb_timer,
.init_machine = stmp378x_dvb_init,
MACHINE_END MACHINE_END
...@@ -66,11 +66,11 @@ static const iomux_cfg_t tx28_fec1_pads[] __initconst = { ...@@ -66,11 +66,11 @@ static const iomux_cfg_t tx28_fec1_pads[] __initconst = {
MX28_PAD_ENET0_CRS__ENET1_RX_EN, MX28_PAD_ENET0_CRS__ENET1_RX_EN,
}; };
static struct fec_platform_data tx28_fec0_data = { static const struct fec_platform_data tx28_fec0_data __initconst = {
.phy = PHY_INTERFACE_MODE_RMII, .phy = PHY_INTERFACE_MODE_RMII,
}; };
static struct fec_platform_data tx28_fec1_data = { static const struct fec_platform_data tx28_fec1_data __initconst = {
.phy = PHY_INTERFACE_MODE_RMII, .phy = PHY_INTERFACE_MODE_RMII,
}; };
......
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/cpufreq.h>
#include <linux/delay.h>
#include <linux/io.h> #include <linux/io.h>
#include <asm/mach-types.h> /* for machine_is_* */ #include <asm/mach-types.h> /* for machine_is_* */
...@@ -927,16 +929,22 @@ int __init omap1_clk_init(void) ...@@ -927,16 +929,22 @@ int __init omap1_clk_init(void)
void __init omap1_clk_late_init(void) void __init omap1_clk_late_init(void)
{ {
if (ck_dpll1.rate >= OMAP1_DPLL1_SANE_VALUE) unsigned long rate = ck_dpll1.rate;
if (rate >= OMAP1_DPLL1_SANE_VALUE)
return; return;
/* System booting at unusable rate, force reprogramming of DPLL1 */
ck_dpll1_p->rate = 0;
/* Find the highest supported frequency and enable it */ /* Find the highest supported frequency and enable it */
if (omap1_select_table_rate(&virtual_ck_mpu, ~0)) { if (omap1_select_table_rate(&virtual_ck_mpu, ~0)) {
pr_err("System frequencies not set, using default. Check your config.\n"); pr_err("System frequencies not set, using default. Check your config.\n");
omap_writew(0x2290, DPLL_CTL); omap_writew(0x2290, DPLL_CTL);
omap_writew(cpu_is_omap7xx() ? 0x3005 : 0x1005, ARM_CKCTL); omap_writew(cpu_is_omap7xx() ? 0x2005 : 0x0005, ARM_CKCTL);
ck_dpll1.rate = OMAP1_DPLL1_SANE_VALUE; ck_dpll1.rate = OMAP1_DPLL1_SANE_VALUE;
} }
propagate_rate(&ck_dpll1); propagate_rate(&ck_dpll1);
omap1_show_rates(); omap1_show_rates();
loops_per_jiffy = cpufreq_scale(loops_per_jiffy, rate, ck_dpll1.rate);
} }
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/suspend.h> #include <linux/suspend.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_address.h> #include <linux/of_address.h>
#include <linux/of_device.h> #include <linux/of_device.h>
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <asm/sizes.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <linux/of.h> #include <linux/of.h>
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/export.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/gpio.h> #include <linux/gpio.h>
......
...@@ -70,7 +70,7 @@ void __init s3c6400_init_irq(void) ...@@ -70,7 +70,7 @@ void __init s3c6400_init_irq(void)
s3c64xx_init_irq(~0 & ~(0xf << 5), ~0); s3c64xx_init_irq(~0 & ~(0xf << 5), ~0);
} }
struct sysdev_class s3c6400_sysclass = { static struct sysdev_class s3c6400_sysclass = {
.name = "s3c6400-core", .name = "s3c6400-core",
}; };
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
#include <plat/fb.h> #include <plat/fb.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
extern void s3c64xx_fb_gpio_setup_24bpp(void) void s3c64xx_fb_gpio_setup_24bpp(void)
{ {
s3c_gpio_cfgrange_nopull(S3C64XX_GPI(0), 16, S3C_GPIO_SFN(2)); s3c_gpio_cfgrange_nopull(S3C64XX_GPI(0), 16, S3C_GPIO_SFN(2));
s3c_gpio_cfgrange_nopull(S3C64XX_GPJ(0), 12, S3C_GPIO_SFN(2)); s3c_gpio_cfgrange_nopull(S3C64XX_GPJ(0), 12, S3C_GPIO_SFN(2));
......
ifeq ($(CONFIG_ARCH_SA1100),y) ifeq ($(CONFIG_SA1111),y)
zreladdr-$(CONFIG_SA1111) += 0xc0208000 zreladdr-y += 0xc0208000
else else
zreladdr-y += 0xc0008000 zreladdr-y += 0xc0008000
endif endif
......
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