diff options
| -rw-r--r-- | arch/arm/mach-exynos4/clock.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/cpu.c | 11 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/irqs.h | 5 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/regs-pmu.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/irq-eint.c | 7 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/mach-universal_c210.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/setup-usb-phy.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-s3c64xx/pm.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-s5p64x0/irq-eint.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv210/pm.c | 2 | ||||
| -rw-r--r-- | arch/arm/plat-s5p/clock.c | 2 | ||||
| -rw-r--r-- | arch/arm/plat-s5p/irq-gpioint.c | 6 | ||||
| -rw-r--r-- | arch/arm/plat-samsung/include/plat/backlight.h | 2 | ||||
| -rw-r--r-- | arch/arm/plat-samsung/irq-vic-timer.c | 5 |
14 files changed, 41 insertions, 12 deletions
diff --git a/arch/arm/mach-exynos4/clock.c b/arch/arm/mach-exynos4/clock.c index 851dea018578..1561b036a9bf 100644 --- a/arch/arm/mach-exynos4/clock.c +++ b/arch/arm/mach-exynos4/clock.c | |||
| @@ -520,7 +520,7 @@ static struct clk init_clocks_off[] = { | |||
| 520 | .ctrlbit = (1 << 21), | 520 | .ctrlbit = (1 << 21), |
| 521 | }, { | 521 | }, { |
| 522 | .name = "ac97", | 522 | .name = "ac97", |
| 523 | .id = -1, | 523 | .devname = "samsung-ac97", |
| 524 | .enable = exynos4_clk_ip_peril_ctrl, | 524 | .enable = exynos4_clk_ip_peril_ctrl, |
| 525 | .ctrlbit = (1 << 27), | 525 | .ctrlbit = (1 << 27), |
| 526 | }, { | 526 | }, { |
diff --git a/arch/arm/mach-exynos4/cpu.c b/arch/arm/mach-exynos4/cpu.c index 2d8a40c9e6e5..746d6fc6d397 100644 --- a/arch/arm/mach-exynos4/cpu.c +++ b/arch/arm/mach-exynos4/cpu.c | |||
| @@ -24,12 +24,13 @@ | |||
| 24 | #include <plat/exynos4.h> | 24 | #include <plat/exynos4.h> |
| 25 | #include <plat/adc-core.h> | 25 | #include <plat/adc-core.h> |
| 26 | #include <plat/sdhci.h> | 26 | #include <plat/sdhci.h> |
| 27 | #include <plat/devs.h> | ||
| 28 | #include <plat/fb-core.h> | 27 | #include <plat/fb-core.h> |
| 29 | #include <plat/fimc-core.h> | 28 | #include <plat/fimc-core.h> |
| 30 | #include <plat/iic-core.h> | 29 | #include <plat/iic-core.h> |
| 30 | #include <plat/reset.h> | ||
| 31 | 31 | ||
| 32 | #include <mach/regs-irq.h> | 32 | #include <mach/regs-irq.h> |
| 33 | #include <mach/regs-pmu.h> | ||
| 33 | 34 | ||
| 34 | extern int combiner_init(unsigned int combiner_nr, void __iomem *base, | 35 | extern int combiner_init(unsigned int combiner_nr, void __iomem *base, |
| 35 | unsigned int irq_start); | 36 | unsigned int irq_start); |
| @@ -128,6 +129,11 @@ static void exynos4_idle(void) | |||
| 128 | local_irq_enable(); | 129 | local_irq_enable(); |
| 129 | } | 130 | } |
| 130 | 131 | ||
| 132 | static void exynos4_sw_reset(void) | ||
| 133 | { | ||
| 134 | __raw_writel(0x1, S5P_SWRESET); | ||
| 135 | } | ||
| 136 | |||
| 131 | /* | 137 | /* |
| 132 | * exynos4_map_io | 138 | * exynos4_map_io |
| 133 | * | 139 | * |
| @@ -241,5 +247,8 @@ int __init exynos4_init(void) | |||
| 241 | /* set idle function */ | 247 | /* set idle function */ |
| 242 | pm_idle = exynos4_idle; | 248 | pm_idle = exynos4_idle; |
| 243 | 249 | ||
| 250 | /* set sw_reset function */ | ||
| 251 | s5p_reset_hook = exynos4_sw_reset; | ||
| 252 | |||
| 244 | return sysdev_register(&exynos4_sysdev); | 253 | return sysdev_register(&exynos4_sysdev); |
| 245 | } | 254 | } |
diff --git a/arch/arm/mach-exynos4/include/mach/irqs.h b/arch/arm/mach-exynos4/include/mach/irqs.h index 934d2a493982..f8952f8f3757 100644 --- a/arch/arm/mach-exynos4/include/mach/irqs.h +++ b/arch/arm/mach-exynos4/include/mach/irqs.h | |||
| @@ -80,9 +80,8 @@ | |||
| 80 | #define IRQ_HSMMC3 IRQ_SPI(76) | 80 | #define IRQ_HSMMC3 IRQ_SPI(76) |
| 81 | #define IRQ_DWMCI IRQ_SPI(77) | 81 | #define IRQ_DWMCI IRQ_SPI(77) |
| 82 | 82 | ||
| 83 | #define IRQ_MIPICSI0 IRQ_SPI(78) | 83 | #define IRQ_MIPI_CSIS0 IRQ_SPI(78) |
| 84 | 84 | #define IRQ_MIPI_CSIS1 IRQ_SPI(80) | |
| 85 | #define IRQ_MIPICSI1 IRQ_SPI(80) | ||
| 86 | 85 | ||
| 87 | #define IRQ_ONENAND_AUDI IRQ_SPI(82) | 86 | #define IRQ_ONENAND_AUDI IRQ_SPI(82) |
| 88 | #define IRQ_ROTATOR IRQ_SPI(83) | 87 | #define IRQ_ROTATOR IRQ_SPI(83) |
diff --git a/arch/arm/mach-exynos4/include/mach/regs-pmu.h b/arch/arm/mach-exynos4/include/mach/regs-pmu.h index fa49bbb8e7b0..cdf9b47c303c 100644 --- a/arch/arm/mach-exynos4/include/mach/regs-pmu.h +++ b/arch/arm/mach-exynos4/include/mach/regs-pmu.h | |||
| @@ -29,6 +29,8 @@ | |||
| 29 | #define S5P_USE_STANDBY_WFE1 (1 << 25) | 29 | #define S5P_USE_STANDBY_WFE1 (1 << 25) |
| 30 | #define S5P_USE_MASK ((0x3 << 16) | (0x3 << 24)) | 30 | #define S5P_USE_MASK ((0x3 << 16) | (0x3 << 24)) |
| 31 | 31 | ||
| 32 | #define S5P_SWRESET S5P_PMUREG(0x0400) | ||
| 33 | |||
| 32 | #define S5P_WAKEUP_STAT S5P_PMUREG(0x0600) | 34 | #define S5P_WAKEUP_STAT S5P_PMUREG(0x0600) |
| 33 | #define S5P_EINT_WAKEUP_MASK S5P_PMUREG(0x0604) | 35 | #define S5P_EINT_WAKEUP_MASK S5P_PMUREG(0x0604) |
| 34 | #define S5P_WAKEUP_MASK S5P_PMUREG(0x0608) | 36 | #define S5P_WAKEUP_MASK S5P_PMUREG(0x0608) |
diff --git a/arch/arm/mach-exynos4/irq-eint.c b/arch/arm/mach-exynos4/irq-eint.c index 9d87d2ac7f68..badb8c66fc9b 100644 --- a/arch/arm/mach-exynos4/irq-eint.c +++ b/arch/arm/mach-exynos4/irq-eint.c | |||
| @@ -23,6 +23,8 @@ | |||
| 23 | 23 | ||
| 24 | #include <mach/regs-gpio.h> | 24 | #include <mach/regs-gpio.h> |
| 25 | 25 | ||
| 26 | #include <asm/mach/irq.h> | ||
| 27 | |||
| 26 | static DEFINE_SPINLOCK(eint_lock); | 28 | static DEFINE_SPINLOCK(eint_lock); |
| 27 | 29 | ||
| 28 | static unsigned int eint0_15_data[16]; | 30 | static unsigned int eint0_15_data[16]; |
| @@ -184,8 +186,11 @@ static inline void exynos4_irq_demux_eint(unsigned int start) | |||
| 184 | 186 | ||
| 185 | static void exynos4_irq_demux_eint16_31(unsigned int irq, struct irq_desc *desc) | 187 | static void exynos4_irq_demux_eint16_31(unsigned int irq, struct irq_desc *desc) |
| 186 | { | 188 | { |
| 189 | struct irq_chip *chip = irq_get_chip(irq); | ||
| 190 | chained_irq_enter(chip, desc); | ||
| 187 | exynos4_irq_demux_eint(IRQ_EINT(16)); | 191 | exynos4_irq_demux_eint(IRQ_EINT(16)); |
| 188 | exynos4_irq_demux_eint(IRQ_EINT(24)); | 192 | exynos4_irq_demux_eint(IRQ_EINT(24)); |
| 193 | chained_irq_exit(chip, desc); | ||
| 189 | } | 194 | } |
| 190 | 195 | ||
| 191 | static void exynos4_irq_eint0_15(unsigned int irq, struct irq_desc *desc) | 196 | static void exynos4_irq_eint0_15(unsigned int irq, struct irq_desc *desc) |
| @@ -193,6 +198,7 @@ static void exynos4_irq_eint0_15(unsigned int irq, struct irq_desc *desc) | |||
| 193 | u32 *irq_data = irq_get_handler_data(irq); | 198 | u32 *irq_data = irq_get_handler_data(irq); |
| 194 | struct irq_chip *chip = irq_get_chip(irq); | 199 | struct irq_chip *chip = irq_get_chip(irq); |
| 195 | 200 | ||
| 201 | chained_irq_enter(chip, desc); | ||
| 196 | chip->irq_mask(&desc->irq_data); | 202 | chip->irq_mask(&desc->irq_data); |
| 197 | 203 | ||
| 198 | if (chip->irq_ack) | 204 | if (chip->irq_ack) |
| @@ -201,6 +207,7 @@ static void exynos4_irq_eint0_15(unsigned int irq, struct irq_desc *desc) | |||
| 201 | generic_handle_irq(*irq_data); | 207 | generic_handle_irq(*irq_data); |
| 202 | 208 | ||
| 203 | chip->irq_unmask(&desc->irq_data); | 209 | chip->irq_unmask(&desc->irq_data); |
| 210 | chained_irq_exit(chip, desc); | ||
| 204 | } | 211 | } |
| 205 | 212 | ||
| 206 | int __init exynos4_init_irq_eint(void) | 213 | int __init exynos4_init_irq_eint(void) |
diff --git a/arch/arm/mach-exynos4/mach-universal_c210.c b/arch/arm/mach-exynos4/mach-universal_c210.c index 0e280d12301e..b3b5d8911004 100644 --- a/arch/arm/mach-exynos4/mach-universal_c210.c +++ b/arch/arm/mach-exynos4/mach-universal_c210.c | |||
| @@ -79,7 +79,7 @@ static struct s3c2410_uartcfg universal_uartcfgs[] __initdata = { | |||
| 79 | }; | 79 | }; |
| 80 | 80 | ||
| 81 | static struct regulator_consumer_supply max8952_consumer = | 81 | static struct regulator_consumer_supply max8952_consumer = |
| 82 | REGULATOR_SUPPLY("vddarm", NULL); | 82 | REGULATOR_SUPPLY("vdd_arm", NULL); |
| 83 | 83 | ||
| 84 | static struct max8952_platform_data universal_max8952_pdata __initdata = { | 84 | static struct max8952_platform_data universal_max8952_pdata __initdata = { |
| 85 | .gpio_vid0 = EXYNOS4_GPX0(3), | 85 | .gpio_vid0 = EXYNOS4_GPX0(3), |
| @@ -105,7 +105,7 @@ static struct max8952_platform_data universal_max8952_pdata __initdata = { | |||
| 105 | }; | 105 | }; |
| 106 | 106 | ||
| 107 | static struct regulator_consumer_supply lp3974_buck1_consumer = | 107 | static struct regulator_consumer_supply lp3974_buck1_consumer = |
| 108 | REGULATOR_SUPPLY("vddint", NULL); | 108 | REGULATOR_SUPPLY("vdd_int", NULL); |
| 109 | 109 | ||
| 110 | static struct regulator_consumer_supply lp3974_buck2_consumer = | 110 | static struct regulator_consumer_supply lp3974_buck2_consumer = |
| 111 | REGULATOR_SUPPLY("vddg3d", NULL); | 111 | REGULATOR_SUPPLY("vddg3d", NULL); |
diff --git a/arch/arm/mach-exynos4/setup-usb-phy.c b/arch/arm/mach-exynos4/setup-usb-phy.c index 0883c1b824b9..39aca045f660 100644 --- a/arch/arm/mach-exynos4/setup-usb-phy.c +++ b/arch/arm/mach-exynos4/setup-usb-phy.c | |||
| @@ -82,7 +82,7 @@ static int exynos4_usb_phy1_init(struct platform_device *pdev) | |||
| 82 | 82 | ||
| 83 | rstcon &= ~(HOST_LINK_PORT_SWRST_MASK | PHY1_SWRST_MASK); | 83 | rstcon &= ~(HOST_LINK_PORT_SWRST_MASK | PHY1_SWRST_MASK); |
| 84 | writel(rstcon, EXYNOS4_RSTCON); | 84 | writel(rstcon, EXYNOS4_RSTCON); |
| 85 | udelay(50); | 85 | udelay(80); |
| 86 | 86 | ||
| 87 | clk_disable(otg_clk); | 87 | clk_disable(otg_clk); |
| 88 | clk_put(otg_clk); | 88 | clk_put(otg_clk); |
diff --git a/arch/arm/mach-s3c64xx/pm.c b/arch/arm/mach-s3c64xx/pm.c index 8bad64370689..055e2858b0dd 100644 --- a/arch/arm/mach-s3c64xx/pm.c +++ b/arch/arm/mach-s3c64xx/pm.c | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | #include <linux/suspend.h> | 16 | #include <linux/suspend.h> |
| 17 | #include <linux/serial_core.h> | 17 | #include <linux/serial_core.h> |
| 18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
| 19 | #include <linux/gpio.h> | ||
| 19 | 20 | ||
| 20 | #include <mach/map.h> | 21 | #include <mach/map.h> |
| 21 | #include <mach/irqs.h> | 22 | #include <mach/irqs.h> |
diff --git a/arch/arm/mach-s5p64x0/irq-eint.c b/arch/arm/mach-s5p64x0/irq-eint.c index 69ed4545112b..fe7380f5c3cd 100644 --- a/arch/arm/mach-s5p64x0/irq-eint.c +++ b/arch/arm/mach-s5p64x0/irq-eint.c | |||
| @@ -129,7 +129,7 @@ static int s5p64x0_alloc_gc(void) | |||
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | ct = gc->chip_types; | 131 | ct = gc->chip_types; |
| 132 | ct->chip.irq_ack = irq_gc_ack; | 132 | ct->chip.irq_ack = irq_gc_ack_set_bit; |
| 133 | ct->chip.irq_mask = irq_gc_mask_set_bit; | 133 | ct->chip.irq_mask = irq_gc_mask_set_bit; |
| 134 | ct->chip.irq_unmask = irq_gc_mask_clr_bit; | 134 | ct->chip.irq_unmask = irq_gc_mask_clr_bit; |
| 135 | ct->chip.irq_set_type = s5p64x0_irq_eint_set_type; | 135 | ct->chip.irq_set_type = s5p64x0_irq_eint_set_type; |
diff --git a/arch/arm/mach-s5pv210/pm.c b/arch/arm/mach-s5pv210/pm.c index 309e388a8a83..f149d278377b 100644 --- a/arch/arm/mach-s5pv210/pm.c +++ b/arch/arm/mach-s5pv210/pm.c | |||
| @@ -88,7 +88,7 @@ static struct sleep_save s5pv210_core_save[] = { | |||
| 88 | SAVE_ITEM(S3C2410_TCNTO(0)), | 88 | SAVE_ITEM(S3C2410_TCNTO(0)), |
| 89 | }; | 89 | }; |
| 90 | 90 | ||
| 91 | void s5pv210_cpu_suspend(unsigned long arg) | 91 | static int s5pv210_cpu_suspend(unsigned long arg) |
| 92 | { | 92 | { |
| 93 | unsigned long tmp; | 93 | unsigned long tmp; |
| 94 | 94 | ||
diff --git a/arch/arm/plat-s5p/clock.c b/arch/arm/plat-s5p/clock.c index 02af235298e2..5f84a3f13ef9 100644 --- a/arch/arm/plat-s5p/clock.c +++ b/arch/arm/plat-s5p/clock.c | |||
| @@ -192,7 +192,7 @@ unsigned long s5p_spdif_get_rate(struct clk *clk) | |||
| 192 | if (IS_ERR(pclk)) | 192 | if (IS_ERR(pclk)) |
| 193 | return -EINVAL; | 193 | return -EINVAL; |
| 194 | 194 | ||
| 195 | rate = pclk->ops->get_rate(clk); | 195 | rate = pclk->ops->get_rate(pclk); |
| 196 | clk_put(pclk); | 196 | clk_put(pclk); |
| 197 | 197 | ||
| 198 | return rate; | 198 | return rate; |
diff --git a/arch/arm/plat-s5p/irq-gpioint.c b/arch/arm/plat-s5p/irq-gpioint.c index 327ab9f662e8..f71078ef6bb5 100644 --- a/arch/arm/plat-s5p/irq-gpioint.c +++ b/arch/arm/plat-s5p/irq-gpioint.c | |||
| @@ -23,6 +23,8 @@ | |||
| 23 | #include <plat/gpio-core.h> | 23 | #include <plat/gpio-core.h> |
| 24 | #include <plat/gpio-cfg.h> | 24 | #include <plat/gpio-cfg.h> |
| 25 | 25 | ||
| 26 | #include <asm/mach/irq.h> | ||
| 27 | |||
| 26 | #define GPIO_BASE(chip) (((unsigned long)(chip)->base) & 0xFFFFF000u) | 28 | #define GPIO_BASE(chip) (((unsigned long)(chip)->base) & 0xFFFFF000u) |
| 27 | 29 | ||
| 28 | #define CON_OFFSET 0x700 | 30 | #define CON_OFFSET 0x700 |
| @@ -81,6 +83,9 @@ static void s5p_gpioint_handler(unsigned int irq, struct irq_desc *desc) | |||
| 81 | int group, pend_offset, mask_offset; | 83 | int group, pend_offset, mask_offset; |
| 82 | unsigned int pend, mask; | 84 | unsigned int pend, mask; |
| 83 | 85 | ||
| 86 | struct irq_chip *chip = irq_get_chip(irq); | ||
| 87 | chained_irq_enter(chip, desc); | ||
| 88 | |||
| 84 | for (group = 0; group < bank->nr_groups; group++) { | 89 | for (group = 0; group < bank->nr_groups; group++) { |
| 85 | struct s3c_gpio_chip *chip = bank->chips[group]; | 90 | struct s3c_gpio_chip *chip = bank->chips[group]; |
| 86 | if (!chip) | 91 | if (!chip) |
| @@ -102,6 +107,7 @@ static void s5p_gpioint_handler(unsigned int irq, struct irq_desc *desc) | |||
| 102 | pend &= ~BIT(offset); | 107 | pend &= ~BIT(offset); |
| 103 | } | 108 | } |
| 104 | } | 109 | } |
| 110 | chained_irq_exit(chip, desc); | ||
| 105 | } | 111 | } |
| 106 | 112 | ||
| 107 | static __init int s5p_gpioint_add(struct s3c_gpio_chip *chip) | 113 | static __init int s5p_gpioint_add(struct s3c_gpio_chip *chip) |
diff --git a/arch/arm/plat-samsung/include/plat/backlight.h b/arch/arm/plat-samsung/include/plat/backlight.h index 51d8da846a62..ad530c78fe8c 100644 --- a/arch/arm/plat-samsung/include/plat/backlight.h +++ b/arch/arm/plat-samsung/include/plat/backlight.h | |||
| @@ -20,7 +20,7 @@ struct samsung_bl_gpio_info { | |||
| 20 | int func; | 20 | int func; |
| 21 | }; | 21 | }; |
| 22 | 22 | ||
| 23 | extern void samsung_bl_set(struct samsung_bl_gpio_info *gpio_info, | 23 | extern void __init samsung_bl_set(struct samsung_bl_gpio_info *gpio_info, |
| 24 | struct platform_pwm_backlight_data *bl_data); | 24 | struct platform_pwm_backlight_data *bl_data); |
| 25 | 25 | ||
| 26 | #endif /* __ASM_PLAT_BACKLIGHT_H */ | 26 | #endif /* __ASM_PLAT_BACKLIGHT_H */ |
diff --git a/arch/arm/plat-samsung/irq-vic-timer.c b/arch/arm/plat-samsung/irq-vic-timer.c index f714d060370d..51583cd30164 100644 --- a/arch/arm/plat-samsung/irq-vic-timer.c +++ b/arch/arm/plat-samsung/irq-vic-timer.c | |||
| @@ -22,9 +22,14 @@ | |||
| 22 | #include <plat/irq-vic-timer.h> | 22 | #include <plat/irq-vic-timer.h> |
| 23 | #include <plat/regs-timer.h> | 23 | #include <plat/regs-timer.h> |
| 24 | 24 | ||
| 25 | #include <asm/mach/irq.h> | ||
| 26 | |||
| 25 | static void s3c_irq_demux_vic_timer(unsigned int irq, struct irq_desc *desc) | 27 | static void s3c_irq_demux_vic_timer(unsigned int irq, struct irq_desc *desc) |
| 26 | { | 28 | { |
| 29 | struct irq_chip *chip = irq_get_chip(irq); | ||
| 30 | chained_irq_enter(chip, desc); | ||
| 27 | generic_handle_irq((int)desc->irq_data.handler_data); | 31 | generic_handle_irq((int)desc->irq_data.handler_data); |
| 32 | chained_irq_exit(chip, desc); | ||
| 28 | } | 33 | } |
| 29 | 34 | ||
| 30 | /* We assume the IRQ_TIMER0..IRQ_TIMER4 range is continuous. */ | 35 | /* We assume the IRQ_TIMER0..IRQ_TIMER4 range is continuous. */ |
