Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Olof Johansson: "A small batch of fixes this week, mostly OMAP related. Nothing stands out as particularly controversial. Also a fix for a 3.12-rc1 timer regression for Exynos platforms, including the Chromebooks" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: exynos: dts: Update 5250 arch timer node with clock frequency ARM: OMAP2: RX-51: Add missing max_current to rx51_lp5523_led_config ARM: mach-omap2: board-generic: fix undefined symbol ARM: dts: Fix pinctrl mask for omap3 ARM: OMAP3: Fix hardware detection for omap3630 when booted with device tree ARM: OMAP2: gpmc-onenand: fix sync mode setup with DT
This commit is contained in:
@@ -96,6 +96,11 @@
|
|||||||
<1 14 0xf08>,
|
<1 14 0xf08>,
|
||||||
<1 11 0xf08>,
|
<1 11 0xf08>,
|
||||||
<1 10 0xf08>;
|
<1 10 0xf08>;
|
||||||
|
/* Unfortunately we need this since some versions of U-Boot
|
||||||
|
* on Exynos don't set the CNTFRQ register, so we need the
|
||||||
|
* value from DT.
|
||||||
|
*/
|
||||||
|
clock-frequency = <24000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
mct@101C0000 {
|
mct@101C0000 {
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "TI OMAP3 BeagleBoard xM";
|
model = "TI OMAP3 BeagleBoard xM";
|
||||||
compatible = "ti,omap3-beagle-xm", "ti,omap3-beagle", "ti,omap3";
|
compatible = "ti,omap3-beagle-xm", "ti,omap36xx", "ti,omap3";
|
||||||
|
|
||||||
cpus {
|
cpus {
|
||||||
cpu@0 {
|
cpu@0 {
|
||||||
|
@@ -108,7 +108,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
pinctrl-single,register-width = <16>;
|
pinctrl-single,register-width = <16>;
|
||||||
pinctrl-single,function-mask = <0x7f1f>;
|
pinctrl-single,function-mask = <0xff1f>;
|
||||||
};
|
};
|
||||||
|
|
||||||
omap3_pmx_wkup: pinmux@0x48002a00 {
|
omap3_pmx_wkup: pinmux@0x48002a00 {
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
pinctrl-single,register-width = <16>;
|
pinctrl-single,register-width = <16>;
|
||||||
pinctrl-single,function-mask = <0x7f1f>;
|
pinctrl-single,function-mask = <0xff1f>;
|
||||||
};
|
};
|
||||||
|
|
||||||
gpio1: gpio@48310000 {
|
gpio1: gpio@48310000 {
|
||||||
|
@@ -129,6 +129,24 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
|
|||||||
.restart = omap3xxx_restart,
|
.restart = omap3xxx_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
||||||
|
static const char *omap36xx_boards_compat[] __initdata = {
|
||||||
|
"ti,omap36xx",
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)")
|
||||||
|
.reserve = omap_reserve,
|
||||||
|
.map_io = omap3_map_io,
|
||||||
|
.init_early = omap3630_init_early,
|
||||||
|
.init_irq = omap_intc_of_init,
|
||||||
|
.handle_irq = omap3_intc_handle_irq,
|
||||||
|
.init_machine = omap_generic_init,
|
||||||
|
.init_late = omap3_init_late,
|
||||||
|
.init_time = omap3_sync32k_timer_init,
|
||||||
|
.dt_compat = omap36xx_boards_compat,
|
||||||
|
.restart = omap3xxx_restart,
|
||||||
|
MACHINE_END
|
||||||
|
|
||||||
static const char *omap3_gp_boards_compat[] __initdata = {
|
static const char *omap3_gp_boards_compat[] __initdata = {
|
||||||
"ti,omap3-beagle",
|
"ti,omap3-beagle",
|
||||||
"timll,omap3-devkit8000",
|
"timll,omap3-devkit8000",
|
||||||
|
@@ -167,38 +167,47 @@ static struct lp55xx_led_config rx51_lp5523_led_config[] = {
|
|||||||
.name = "lp5523:kb1",
|
.name = "lp5523:kb1",
|
||||||
.chan_nr = 0,
|
.chan_nr = 0,
|
||||||
.led_current = 50,
|
.led_current = 50,
|
||||||
|
.max_current = 100,
|
||||||
}, {
|
}, {
|
||||||
.name = "lp5523:kb2",
|
.name = "lp5523:kb2",
|
||||||
.chan_nr = 1,
|
.chan_nr = 1,
|
||||||
.led_current = 50,
|
.led_current = 50,
|
||||||
|
.max_current = 100,
|
||||||
}, {
|
}, {
|
||||||
.name = "lp5523:kb3",
|
.name = "lp5523:kb3",
|
||||||
.chan_nr = 2,
|
.chan_nr = 2,
|
||||||
.led_current = 50,
|
.led_current = 50,
|
||||||
|
.max_current = 100,
|
||||||
}, {
|
}, {
|
||||||
.name = "lp5523:kb4",
|
.name = "lp5523:kb4",
|
||||||
.chan_nr = 3,
|
.chan_nr = 3,
|
||||||
.led_current = 50,
|
.led_current = 50,
|
||||||
|
.max_current = 100,
|
||||||
}, {
|
}, {
|
||||||
.name = "lp5523:b",
|
.name = "lp5523:b",
|
||||||
.chan_nr = 4,
|
.chan_nr = 4,
|
||||||
.led_current = 50,
|
.led_current = 50,
|
||||||
|
.max_current = 100,
|
||||||
}, {
|
}, {
|
||||||
.name = "lp5523:g",
|
.name = "lp5523:g",
|
||||||
.chan_nr = 5,
|
.chan_nr = 5,
|
||||||
.led_current = 50,
|
.led_current = 50,
|
||||||
|
.max_current = 100,
|
||||||
}, {
|
}, {
|
||||||
.name = "lp5523:r",
|
.name = "lp5523:r",
|
||||||
.chan_nr = 6,
|
.chan_nr = 6,
|
||||||
.led_current = 50,
|
.led_current = 50,
|
||||||
|
.max_current = 100,
|
||||||
}, {
|
}, {
|
||||||
.name = "lp5523:kb5",
|
.name = "lp5523:kb5",
|
||||||
.chan_nr = 7,
|
.chan_nr = 7,
|
||||||
.led_current = 50,
|
.led_current = 50,
|
||||||
|
.max_current = 100,
|
||||||
}, {
|
}, {
|
||||||
.name = "lp5523:kb6",
|
.name = "lp5523:kb6",
|
||||||
.chan_nr = 8,
|
.chan_nr = 8,
|
||||||
.led_current = 50,
|
.led_current = 50,
|
||||||
|
.max_current = 100,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -272,9 +272,19 @@ static int omap2_onenand_setup_async(void __iomem *onenand_base)
|
|||||||
struct gpmc_timings t;
|
struct gpmc_timings t;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (gpmc_onenand_data->of_node)
|
if (gpmc_onenand_data->of_node) {
|
||||||
gpmc_read_settings_dt(gpmc_onenand_data->of_node,
|
gpmc_read_settings_dt(gpmc_onenand_data->of_node,
|
||||||
&onenand_async);
|
&onenand_async);
|
||||||
|
if (onenand_async.sync_read || onenand_async.sync_write) {
|
||||||
|
if (onenand_async.sync_write)
|
||||||
|
gpmc_onenand_data->flags |=
|
||||||
|
ONENAND_SYNC_READWRITE;
|
||||||
|
else
|
||||||
|
gpmc_onenand_data->flags |= ONENAND_SYNC_READ;
|
||||||
|
onenand_async.sync_read = false;
|
||||||
|
onenand_async.sync_write = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
omap2_onenand_set_async_mode(onenand_base);
|
omap2_onenand_set_async_mode(onenand_base);
|
||||||
|
|
||||||
|
@@ -28,7 +28,7 @@
|
|||||||
#define OMAP_PULL_UP (1 << 4)
|
#define OMAP_PULL_UP (1 << 4)
|
||||||
#define OMAP_ALTELECTRICALSEL (1 << 5)
|
#define OMAP_ALTELECTRICALSEL (1 << 5)
|
||||||
|
|
||||||
/* 34xx specific mux bit defines */
|
/* omap3/4/5 specific mux bit defines */
|
||||||
#define OMAP_INPUT_EN (1 << 8)
|
#define OMAP_INPUT_EN (1 << 8)
|
||||||
#define OMAP_OFF_EN (1 << 9)
|
#define OMAP_OFF_EN (1 << 9)
|
||||||
#define OMAP_OFFOUT_EN (1 << 10)
|
#define OMAP_OFFOUT_EN (1 << 10)
|
||||||
@@ -36,8 +36,6 @@
|
|||||||
#define OMAP_OFF_PULL_EN (1 << 12)
|
#define OMAP_OFF_PULL_EN (1 << 12)
|
||||||
#define OMAP_OFF_PULL_UP (1 << 13)
|
#define OMAP_OFF_PULL_UP (1 << 13)
|
||||||
#define OMAP_WAKEUP_EN (1 << 14)
|
#define OMAP_WAKEUP_EN (1 << 14)
|
||||||
|
|
||||||
/* 44xx specific mux bit defines */
|
|
||||||
#define OMAP_WAKEUP_EVENT (1 << 15)
|
#define OMAP_WAKEUP_EVENT (1 << 15)
|
||||||
|
|
||||||
/* Active pin states */
|
/* Active pin states */
|
||||||
|
@@ -628,7 +628,7 @@ void __init omap4_local_timer_init(void)
|
|||||||
#endif /* CONFIG_HAVE_ARM_TWD */
|
#endif /* CONFIG_HAVE_ARM_TWD */
|
||||||
#endif /* CONFIG_ARCH_OMAP4 */
|
#endif /* CONFIG_ARCH_OMAP4 */
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_OMAP5
|
#if defined(CONFIG_SOC_OMAP5) || defined(CONFIG_SOC_DRA7XX)
|
||||||
void __init omap5_realtime_timer_init(void)
|
void __init omap5_realtime_timer_init(void)
|
||||||
{
|
{
|
||||||
omap4_sync32k_timer_init();
|
omap4_sync32k_timer_init();
|
||||||
@@ -636,7 +636,7 @@ void __init omap5_realtime_timer_init(void)
|
|||||||
|
|
||||||
clocksource_of_init();
|
clocksource_of_init();
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SOC_OMAP5 */
|
#endif /* CONFIG_SOC_OMAP5 || CONFIG_SOC_DRA7XX */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* omap_timer_init - build and register timer device with an
|
* omap_timer_init - build and register timer device with an
|
||||||
|
@@ -23,7 +23,7 @@
|
|||||||
#define PULL_UP (1 << 4)
|
#define PULL_UP (1 << 4)
|
||||||
#define ALTELECTRICALSEL (1 << 5)
|
#define ALTELECTRICALSEL (1 << 5)
|
||||||
|
|
||||||
/* 34xx specific mux bit defines */
|
/* omap3/4/5 specific mux bit defines */
|
||||||
#define INPUT_EN (1 << 8)
|
#define INPUT_EN (1 << 8)
|
||||||
#define OFF_EN (1 << 9)
|
#define OFF_EN (1 << 9)
|
||||||
#define OFFOUT_EN (1 << 10)
|
#define OFFOUT_EN (1 << 10)
|
||||||
@@ -31,8 +31,6 @@
|
|||||||
#define OFF_PULL_EN (1 << 12)
|
#define OFF_PULL_EN (1 << 12)
|
||||||
#define OFF_PULL_UP (1 << 13)
|
#define OFF_PULL_UP (1 << 13)
|
||||||
#define WAKEUP_EN (1 << 14)
|
#define WAKEUP_EN (1 << 14)
|
||||||
|
|
||||||
/* 44xx specific mux bit defines */
|
|
||||||
#define WAKEUP_EVENT (1 << 15)
|
#define WAKEUP_EVENT (1 << 15)
|
||||||
|
|
||||||
/* Active pin states */
|
/* Active pin states */
|
||||||
|
Reference in New Issue
Block a user