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: ARM: OMAP: rx51: fix USB ARM: OMAP: mcbsp: Fix possible memory corruption arm/imx: fix power button on imx51 babbage board ARM: imx: fix cpufreq build errors ARM: mx5: add __initconst for fec pdata MXC PWM: should active during DOZE/WAIT/DBG mode ARM: EXYNOS: Fix build error without CONFIG_LOCAL_TIMERS ARM: EXYNOS: Fix for stall in case of cpu hotplug or sleep ARM: S5PV210: Set 1000ns as PWM backlight period on SMDKV210 ARM: SAMSUNG: remove duplicated header include
This commit is contained in:
@@ -44,8 +44,6 @@ struct mct_clock_event_device {
|
|||||||
char name[10];
|
char name[10];
|
||||||
};
|
};
|
||||||
|
|
||||||
static DEFINE_PER_CPU(struct mct_clock_event_device, percpu_mct_tick);
|
|
||||||
|
|
||||||
static void exynos4_mct_write(unsigned int value, void *addr)
|
static void exynos4_mct_write(unsigned int value, void *addr)
|
||||||
{
|
{
|
||||||
void __iomem *stat_addr;
|
void __iomem *stat_addr;
|
||||||
@@ -264,6 +262,9 @@ static void exynos4_clockevent_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_LOCAL_TIMERS
|
#ifdef CONFIG_LOCAL_TIMERS
|
||||||
|
|
||||||
|
static DEFINE_PER_CPU(struct mct_clock_event_device, percpu_mct_tick);
|
||||||
|
|
||||||
/* Clock event handling */
|
/* Clock event handling */
|
||||||
static void exynos4_mct_tick_stop(struct mct_clock_event_device *mevt)
|
static void exynos4_mct_tick_stop(struct mct_clock_event_device *mevt)
|
||||||
{
|
{
|
||||||
@@ -428,9 +429,13 @@ int __cpuinit local_timer_setup(struct clock_event_device *evt)
|
|||||||
|
|
||||||
void local_timer_stop(struct clock_event_device *evt)
|
void local_timer_stop(struct clock_event_device *evt)
|
||||||
{
|
{
|
||||||
|
unsigned int cpu = smp_processor_id();
|
||||||
evt->set_mode(CLOCK_EVT_MODE_UNUSED, evt);
|
evt->set_mode(CLOCK_EVT_MODE_UNUSED, evt);
|
||||||
if (mct_int_type == MCT_INT_SPI)
|
if (mct_int_type == MCT_INT_SPI)
|
||||||
disable_irq(evt->irq);
|
if (cpu == 0)
|
||||||
|
remove_irq(evt->irq, &mct_tick0_event_irq);
|
||||||
|
else
|
||||||
|
remove_irq(evt->irq, &mct_tick1_event_irq);
|
||||||
else
|
else
|
||||||
disable_percpu_irq(IRQ_MCT_LOCALTIMER);
|
disable_percpu_irq(IRQ_MCT_LOCALTIMER);
|
||||||
}
|
}
|
||||||
@@ -443,6 +448,7 @@ static void __init exynos4_timer_resources(void)
|
|||||||
|
|
||||||
clk_rate = clk_get_rate(mct_clk);
|
clk_rate = clk_get_rate(mct_clk);
|
||||||
|
|
||||||
|
#ifdef CONFIG_LOCAL_TIMERS
|
||||||
if (mct_int_type == MCT_INT_PPI) {
|
if (mct_int_type == MCT_INT_PPI) {
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@@ -452,6 +458,7 @@ static void __init exynos4_timer_resources(void)
|
|||||||
WARN(err, "MCT: can't request IRQ %d (%d)\n",
|
WARN(err, "MCT: can't request IRQ %d (%d)\n",
|
||||||
IRQ_MCT_LOCALTIMER, err);
|
IRQ_MCT_LOCALTIMER, err);
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_LOCAL_TIMERS */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init exynos4_timer_init(void)
|
static void __init exynos4_timer_init(void)
|
||||||
|
@@ -362,7 +362,7 @@ static void __init mx51_babbage_init(void)
|
|||||||
{
|
{
|
||||||
iomux_v3_cfg_t usbh1stp = MX51_PAD_USBH1_STP__USBH1_STP;
|
iomux_v3_cfg_t usbh1stp = MX51_PAD_USBH1_STP__USBH1_STP;
|
||||||
iomux_v3_cfg_t power_key = NEW_PAD_CTRL(MX51_PAD_EIM_A27__GPIO2_21,
|
iomux_v3_cfg_t power_key = NEW_PAD_CTRL(MX51_PAD_EIM_A27__GPIO2_21,
|
||||||
PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP);
|
PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH);
|
||||||
|
|
||||||
imx51_soc_init();
|
imx51_soc_init();
|
||||||
|
|
||||||
|
@@ -106,7 +106,7 @@ static inline void mx53_evk_fec_reset(void)
|
|||||||
gpio_set_value(MX53_EVK_FEC_PHY_RST, 1);
|
gpio_set_value(MX53_EVK_FEC_PHY_RST, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct fec_platform_data mx53_evk_fec_pdata = {
|
static const struct fec_platform_data mx53_evk_fec_pdata __initconst = {
|
||||||
.phy = PHY_INTERFACE_MODE_RMII,
|
.phy = PHY_INTERFACE_MODE_RMII,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -242,7 +242,7 @@ static inline void mx53_loco_fec_reset(void)
|
|||||||
gpio_set_value(LOCO_FEC_PHY_RST, 1);
|
gpio_set_value(LOCO_FEC_PHY_RST, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct fec_platform_data mx53_loco_fec_data = {
|
static const struct fec_platform_data mx53_loco_fec_data __initconst = {
|
||||||
.phy = PHY_INTERFACE_MODE_RMII,
|
.phy = PHY_INTERFACE_MODE_RMII,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -104,7 +104,7 @@ static inline void mx53_smd_fec_reset(void)
|
|||||||
gpio_set_value(SMD_FEC_PHY_RST, 1);
|
gpio_set_value(SMD_FEC_PHY_RST, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct fec_platform_data mx53_smd_fec_data = {
|
static const struct fec_platform_data mx53_smd_fec_data __initconst = {
|
||||||
.phy = PHY_INTERFACE_MODE_RMII,
|
.phy = PHY_INTERFACE_MODE_RMII,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -193,7 +193,7 @@ static struct platform_device rx51_charger_device = {
|
|||||||
static void __init rx51_charger_init(void)
|
static void __init rx51_charger_init(void)
|
||||||
{
|
{
|
||||||
WARN_ON(gpio_request_one(RX51_USB_TRANSCEIVER_RST_GPIO,
|
WARN_ON(gpio_request_one(RX51_USB_TRANSCEIVER_RST_GPIO,
|
||||||
GPIOF_OUT_INIT_LOW, "isp1704_reset"));
|
GPIOF_OUT_INIT_HIGH, "isp1704_reset"));
|
||||||
|
|
||||||
platform_device_register(&rx51_charger_device);
|
platform_device_register(&rx51_charger_device);
|
||||||
}
|
}
|
||||||
|
@@ -145,6 +145,9 @@ static int omap_init_mcbsp(struct omap_hwmod *oh, void *unused)
|
|||||||
pdata->reg_size = 4;
|
pdata->reg_size = 4;
|
||||||
pdata->has_ccr = true;
|
pdata->has_ccr = true;
|
||||||
}
|
}
|
||||||
|
pdata->set_clk_src = omap2_mcbsp_set_clk_src;
|
||||||
|
if (id == 1)
|
||||||
|
pdata->mux_signal = omap2_mcbsp1_mux_rx_clk;
|
||||||
|
|
||||||
if (oh->class->rev == MCBSP_CONFIG_TYPE3) {
|
if (oh->class->rev == MCBSP_CONFIG_TYPE3) {
|
||||||
if (id == 2)
|
if (id == 2)
|
||||||
@@ -174,9 +177,6 @@ static int omap_init_mcbsp(struct omap_hwmod *oh, void *unused)
|
|||||||
name, oh->name);
|
name, oh->name);
|
||||||
return PTR_ERR(pdev);
|
return PTR_ERR(pdev);
|
||||||
}
|
}
|
||||||
pdata->set_clk_src = omap2_mcbsp_set_clk_src;
|
|
||||||
if (id == 1)
|
|
||||||
pdata->mux_signal = omap2_mcbsp1_mux_rx_clk;
|
|
||||||
omap_mcbsp_count++;
|
omap_mcbsp_count++;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -273,6 +273,7 @@ static struct samsung_bl_gpio_info smdkv210_bl_gpio_info = {
|
|||||||
|
|
||||||
static struct platform_pwm_backlight_data smdkv210_bl_data = {
|
static struct platform_pwm_backlight_data smdkv210_bl_data = {
|
||||||
.pwm_id = 3,
|
.pwm_id = 3,
|
||||||
|
.pwm_period_ns = 1000,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init smdkv210_map_io(void)
|
static void __init smdkv210_map_io(void)
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
* the CPU clock speed on the fly.
|
* the CPU clock speed on the fly.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <linux/module.h>
|
||||||
#include <linux/cpufreq.h>
|
#include <linux/cpufreq.h>
|
||||||
#include <linux/clk.h>
|
#include <linux/clk.h>
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
|
@@ -32,6 +32,9 @@
|
|||||||
#define MX3_PWMSAR 0x0C /* PWM Sample Register */
|
#define MX3_PWMSAR 0x0C /* PWM Sample Register */
|
||||||
#define MX3_PWMPR 0x10 /* PWM Period Register */
|
#define MX3_PWMPR 0x10 /* PWM Period Register */
|
||||||
#define MX3_PWMCR_PRESCALER(x) (((x - 1) & 0xFFF) << 4)
|
#define MX3_PWMCR_PRESCALER(x) (((x - 1) & 0xFFF) << 4)
|
||||||
|
#define MX3_PWMCR_DOZEEN (1 << 24)
|
||||||
|
#define MX3_PWMCR_WAITEN (1 << 23)
|
||||||
|
#define MX3_PWMCR_DBGEN (1 << 22)
|
||||||
#define MX3_PWMCR_CLKSRC_IPG_HIGH (2 << 16)
|
#define MX3_PWMCR_CLKSRC_IPG_HIGH (2 << 16)
|
||||||
#define MX3_PWMCR_CLKSRC_IPG (1 << 16)
|
#define MX3_PWMCR_CLKSRC_IPG (1 << 16)
|
||||||
#define MX3_PWMCR_EN (1 << 0)
|
#define MX3_PWMCR_EN (1 << 0)
|
||||||
@@ -77,7 +80,9 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns)
|
|||||||
writel(duty_cycles, pwm->mmio_base + MX3_PWMSAR);
|
writel(duty_cycles, pwm->mmio_base + MX3_PWMSAR);
|
||||||
writel(period_cycles, pwm->mmio_base + MX3_PWMPR);
|
writel(period_cycles, pwm->mmio_base + MX3_PWMPR);
|
||||||
|
|
||||||
cr = MX3_PWMCR_PRESCALER(prescale) | MX3_PWMCR_EN;
|
cr = MX3_PWMCR_PRESCALER(prescale) |
|
||||||
|
MX3_PWMCR_DOZEEN | MX3_PWMCR_WAITEN |
|
||||||
|
MX3_PWMCR_DBGEN | MX3_PWMCR_EN;
|
||||||
|
|
||||||
if (cpu_is_mx25())
|
if (cpu_is_mx25())
|
||||||
cr |= MX3_PWMCR_CLKSRC_IPG;
|
cr |= MX3_PWMCR_CLKSRC_IPG;
|
||||||
|
@@ -15,7 +15,6 @@
|
|||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/pwm_backlight.h>
|
#include <linux/pwm_backlight.h>
|
||||||
#include <linux/slab.h>
|
|
||||||
|
|
||||||
#include <plat/devs.h>
|
#include <plat/devs.h>
|
||||||
#include <plat/gpio-cfg.h>
|
#include <plat/gpio-cfg.h>
|
||||||
|
Reference in New Issue
Block a user