Skip to content

Commit 75bf757

Browse files
committed
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: "This week's arm-soc fixes: - A set of of OMAP patches that we had missed Tony's pull request of: * Reset fix for am43xx * Proper OPP table for omap5 * Fix for SoC detection of one of the DRA7 SoCs * hwmod updates to get SATA and OCP to work on omap5 (drivers merged in 3.16) * ... plus a handful of smaller fixes - sunxi needed to re-add machine specific restart code that was removed in anticipation of a watchdog driver being merged for 3.16, and it didn't make it in. - Marvell fixes for PCIe on SMP and a big-endian fix. - A trivial defconfig update to make my capri test board boot with bcm_defconfig again. ... and a couple of MAINTAINERS updates, one to claim new Keystone drivers that have been merged, and one to merge MXS and i.MX (both Freescale platforms). The largest diffs come from the hwmod code for omap5 and the re-add of the restart code on sunxi. The hwmod stuff is quite late at this point but it slipped through cracks repeatedly while coming up the maintainer chain and only affects the one SoC so risk is low" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: MAINTAINERS: Add few more Keystone drivers MAINTAINERS: merge MXS entry into IMX one ARM: sunxi: Reintroduce the restart code for A10/A20 SoCs ARM: mvebu: fix cpuidle implementation to work on big-endian systems ARM: mvebu: update L2/PCIe deadlock workaround after L2CC cleanup ARM: mvebu: move Armada 375 external abort logic as a quirk ARM: bcm: Fix bcm and multi_v7 defconfigs ARM: dts: dra7-evm: remove interrupt binding ARM: OMAP2+: Fix parser-bug in platform muxing code ARM: DTS: dra7/dra7xx-clocks: ATL related changes ARM: OMAP2+: drop unused function ARM: dts: am43x-epos-evm: Add Missing cpsw-phy-sel for am43x-epos-evm ARM: dts: omap5: Update CPU OPP table as per final production Manual ARM: DRA722: add detection of SoC information ARM: dts: Enable twl4030 off-idle configuration for selected omaps ARM: OMAP5: hwmod: Add ocp2scp3 and sata hwmods ARM: OMAP2+: hwmod: Change hardreset soc_ops for AM43XX
2 parents 549f11c + bc6aa56 commit 75bf757

24 files changed

+292
-67
lines changed

MAINTAINERS

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -943,16 +943,10 @@ L: [email protected] (moderated for non-subscribers)
943943
S: Maintained
944944
T: git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
945945
F: arch/arm/mach-imx/
946+
F: arch/arm/mach-mxs/
946947
F: arch/arm/boot/dts/imx*
947948
F: arch/arm/configs/imx*_defconfig
948949

949-
ARM/FREESCALE MXS ARM ARCHITECTURE
950-
M: Shawn Guo <[email protected]>
951-
L: [email protected] (moderated for non-subscribers)
952-
S: Maintained
953-
T: git git://git.linaro.org/people/shawnguo/linux-2.6.git
954-
F: arch/arm/mach-mxs/
955-
956950
ARM/GLOMATION GESBC9312SX MACHINE SUPPORT
957951
M: Lennert Buytenhek <[email protected]>
958952
L: [email protected] (moderated for non-subscribers)
@@ -1052,9 +1046,33 @@ M: Santosh Shilimkar <[email protected]>
10521046
L: [email protected] (moderated for non-subscribers)
10531047
S: Maintained
10541048
F: arch/arm/mach-keystone/
1055-
F: drivers/clk/keystone/
10561049
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
10571050

1051+
ARM/TEXAS INSTRUMENT KEYSTONE CLOCK FRAMEWORK
1052+
M: Santosh Shilimkar <[email protected]>
1053+
1054+
S: Maintained
1055+
F: drivers/clk/keystone/
1056+
1057+
ARM/TEXAS INSTRUMENT KEYSTONE ClOCKSOURCE
1058+
M: Santosh Shilimkar <[email protected]>
1059+
L: [email protected] (moderated for non-subscribers)
1060+
1061+
S: Maintained
1062+
F: drivers/clocksource/timer-keystone.c
1063+
1064+
ARM/TEXAS INSTRUMENT KEYSTONE RESET DRIVER
1065+
M: Santosh Shilimkar <[email protected]>
1066+
1067+
S: Maintained
1068+
F: drivers/power/reset/keystone-reset.c
1069+
1070+
ARM/TEXAS INSTRUMENT AEMIF/EMIF DRIVERS
1071+
M: Santosh Shilimkar <[email protected]>
1072+
1073+
S: Maintained
1074+
F: drivers/memory/*emif*
1075+
10581076
ARM/LOGICPD PXA270 MACHINE SUPPORT
10591077
M: Lennert Buytenhek <[email protected]>
10601078
L: [email protected] (moderated for non-subscribers)

arch/arm/boot/dts/am43x-epos-evm.dts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,10 @@
319319
phy-mode = "rmii";
320320
};
321321

322+
&phy_sel {
323+
rmii-clock-ext;
324+
};
325+
322326
&i2c0 {
323327
status = "okay";
324328
pinctrl-names = "default";

arch/arm/boot/dts/dra7.dtsi

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,6 @@
773773
clocks = <&qspi_gfclk_div>;
774774
clock-names = "fck";
775775
num-cs = <4>;
776-
interrupts = <0 343 0x4>;
777776
status = "disabled";
778777
};
779778

@@ -984,6 +983,17 @@
984983
#size-cells = <1>;
985984
status = "disabled";
986985
};
986+
987+
atl: atl@4843c000 {
988+
compatible = "ti,dra7-atl";
989+
reg = <0x4843c000 0x3ff>;
990+
ti,hwmods = "atl";
991+
ti,provided-clocks = <&atl_clkin0_ck>, <&atl_clkin1_ck>,
992+
<&atl_clkin2_ck>, <&atl_clkin3_ck>;
993+
clocks = <&atl_gfclk_mux>;
994+
clock-names = "fck";
995+
status = "disabled";
996+
};
987997
};
988998
};
989999

arch/arm/boot/dts/dra7xx-clocks.dtsi

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,26 @@
1010
&cm_core_aon_clocks {
1111
atl_clkin0_ck: atl_clkin0_ck {
1212
#clock-cells = <0>;
13-
compatible = "fixed-clock";
14-
clock-frequency = <0>;
13+
compatible = "ti,dra7-atl-clock";
14+
clocks = <&atl_gfclk_mux>;
1515
};
1616

1717
atl_clkin1_ck: atl_clkin1_ck {
1818
#clock-cells = <0>;
19-
compatible = "fixed-clock";
20-
clock-frequency = <0>;
19+
compatible = "ti,dra7-atl-clock";
20+
clocks = <&atl_gfclk_mux>;
2121
};
2222

2323
atl_clkin2_ck: atl_clkin2_ck {
2424
#clock-cells = <0>;
25-
compatible = "fixed-clock";
26-
clock-frequency = <0>;
25+
compatible = "ti,dra7-atl-clock";
26+
clocks = <&atl_gfclk_mux>;
2727
};
2828

2929
atl_clkin3_ck: atl_clkin3_ck {
3030
#clock-cells = <0>;
31-
compatible = "fixed-clock";
32-
clock-frequency = <0>;
31+
compatible = "ti,dra7-atl-clock";
32+
clocks = <&atl_gfclk_mux>;
3333
};
3434

3535
hdmi_clkin_ck: hdmi_clkin_ck {

arch/arm/boot/dts/omap3-beagle-xm.dts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,11 @@
251251
codec {
252252
};
253253
};
254+
255+
twl_power: power {
256+
compatible = "ti,twl4030-power-beagleboard-xm", "ti,twl4030-power-idle-osc-off";
257+
ti,use_poweroff;
258+
};
254259
};
255260
};
256261

@@ -301,6 +306,7 @@
301306
};
302307

303308
&uart3 {
309+
interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
304310
pinctrl-names = "default";
305311
pinctrl-0 = <&uart3_pins>;
306312
};

arch/arm/boot/dts/omap3-evm-common.dtsi

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,13 @@
5050
gpios = <&twl_gpio 18 GPIO_ACTIVE_LOW>;
5151
};
5252

53+
&twl {
54+
twl_power: power {
55+
compatible = "ti,twl4030-power-omap3-evm", "ti,twl4030-power-idle";
56+
ti,use_poweroff;
57+
};
58+
};
59+
5360
&i2c2 {
5461
clock-frequency = <400000>;
5562
};

arch/arm/boot/dts/omap3-n900.dts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,11 @@
351351
compatible = "ti,twl4030-audio";
352352
ti,enable-vibra = <1>;
353353
};
354+
355+
twl_power: power {
356+
compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
357+
ti,use_poweroff;
358+
};
354359
};
355360

356361
&twl_keypad {

arch/arm/boot/dts/omap5.dtsi

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545

4646
operating-points = <
4747
/* kHz uV */
48-
500000 880000
4948
1000000 1060000
5049
1500000 1250000
5150
>;

arch/arm/configs/bcm_defconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,10 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
9494
CONFIG_BACKLIGHT_PWM=y
9595
# CONFIG_USB_SUPPORT is not set
9696
CONFIG_MMC=y
97-
CONFIG_MMC_UNSAFE_RESUME=y
9897
CONFIG_MMC_BLOCK_MINORS=32
9998
CONFIG_MMC_TEST=y
10099
CONFIG_MMC_SDHCI=y
100+
CONFIG_MMC_SDHCI_PLTFM=y
101101
CONFIG_MMC_SDHCI_BCM_KONA=y
102102
CONFIG_NEW_LEDS=y
103103
CONFIG_LEDS_CLASS=y

arch/arm/configs/multi_v7_defconfig

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,12 +223,12 @@ CONFIG_POWER_RESET_GPIO=y
223223
CONFIG_POWER_RESET_SUN6I=y
224224
CONFIG_SENSORS_LM90=y
225225
CONFIG_THERMAL=y
226-
CONFIG_DOVE_THERMAL=y
227226
CONFIG_ARMADA_THERMAL=y
228227
CONFIG_WATCHDOG=y
229228
CONFIG_ORION_WATCHDOG=y
230229
CONFIG_SUNXI_WATCHDOG=y
231230
CONFIG_MFD_AS3722=y
231+
CONFIG_MFD_BCM590XX=y
232232
CONFIG_MFD_CROS_EC=y
233233
CONFIG_MFD_CROS_EC_SPI=y
234234
CONFIG_MFD_MAX8907=y
@@ -240,6 +240,7 @@ CONFIG_MFD_TPS65910=y
240240
CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
241241
CONFIG_REGULATOR_AB8500=y
242242
CONFIG_REGULATOR_AS3722=y
243+
CONFIG_REGULATOR_BCM590XX=y
243244
CONFIG_REGULATOR_GPIO=y
244245
CONFIG_REGULATOR_MAX8907=y
245246
CONFIG_REGULATOR_PALMAS=y

arch/arm/mach-mvebu/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ CFLAGS_pmsu.o := -march=armv7-a
77
obj-y += system-controller.o mvebu-soc-id.o
88

99
ifeq ($(CONFIG_MACH_MVEBU_V7),y)
10-
obj-y += cpu-reset.o board-v7.o coherency.o coherency_ll.o pmsu.o
10+
obj-y += cpu-reset.o board-v7.o coherency.o coherency_ll.o pmsu.o pmsu_ll.o
1111
obj-$(CONFIG_SMP) += platsmp.o headsmp.o platsmp-a9.o headsmp-a9.o
1212
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
1313
endif

arch/arm/mach-mvebu/board-v7.c

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <linux/mbus.h>
2424
#include <linux/signal.h>
2525
#include <linux/slab.h>
26+
#include <linux/irqchip.h>
2627
#include <asm/hardware/cache-l2x0.h>
2728
#include <asm/mach/arch.h>
2829
#include <asm/mach/map.h>
@@ -71,17 +72,23 @@ static int armada_375_external_abort_wa(unsigned long addr, unsigned int fsr,
7172
return 1;
7273
}
7374

74-
static void __init mvebu_timer_and_clk_init(void)
75+
static void __init mvebu_init_irq(void)
7576
{
76-
of_clk_init(NULL);
77-
clocksource_of_init();
77+
irqchip_init();
7878
mvebu_scu_enable();
7979
coherency_init();
8080
BUG_ON(mvebu_mbus_dt_init(coherency_available()));
81+
}
82+
83+
static void __init external_abort_quirk(void)
84+
{
85+
u32 dev, rev;
8186

82-
if (of_machine_is_compatible("marvell,armada375"))
83-
hook_fault_code(16 + 6, armada_375_external_abort_wa, SIGBUS, 0,
84-
"imprecise external abort");
87+
if (mvebu_get_soc_id(&dev, &rev) == 0 && rev > ARMADA_375_Z1_REV)
88+
return;
89+
90+
hook_fault_code(16 + 6, armada_375_external_abort_wa, SIGBUS, 0,
91+
"imprecise external abort");
8592
}
8693

8794
static void __init i2c_quirk(void)
@@ -169,8 +176,10 @@ static void __init mvebu_dt_init(void)
169176
{
170177
if (of_machine_is_compatible("plathome,openblocks-ax3-4"))
171178
i2c_quirk();
172-
if (of_machine_is_compatible("marvell,a375-db"))
179+
if (of_machine_is_compatible("marvell,a375-db")) {
180+
external_abort_quirk();
173181
thermal_quirk();
182+
}
174183

175184
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
176185
}
@@ -185,7 +194,7 @@ DT_MACHINE_START(ARMADA_370_XP_DT, "Marvell Armada 370/XP (Device Tree)")
185194
.l2c_aux_mask = ~0,
186195
.smp = smp_ops(armada_xp_smp_ops),
187196
.init_machine = mvebu_dt_init,
188-
.init_time = mvebu_timer_and_clk_init,
197+
.init_irq = mvebu_init_irq,
189198
.restart = mvebu_restart,
190199
.dt_compat = armada_370_xp_dt_compat,
191200
MACHINE_END
@@ -198,7 +207,7 @@ static const char * const armada_375_dt_compat[] = {
198207
DT_MACHINE_START(ARMADA_375_DT, "Marvell Armada 375 (Device Tree)")
199208
.l2c_aux_val = 0,
200209
.l2c_aux_mask = ~0,
201-
.init_time = mvebu_timer_and_clk_init,
210+
.init_irq = mvebu_init_irq,
202211
.init_machine = mvebu_dt_init,
203212
.restart = mvebu_restart,
204213
.dt_compat = armada_375_dt_compat,
@@ -213,7 +222,7 @@ static const char * const armada_38x_dt_compat[] = {
213222
DT_MACHINE_START(ARMADA_38X_DT, "Marvell Armada 380/385 (Device Tree)")
214223
.l2c_aux_val = 0,
215224
.l2c_aux_mask = ~0,
216-
.init_time = mvebu_timer_and_clk_init,
225+
.init_irq = mvebu_init_irq,
217226
.restart = mvebu_restart,
218227
.dt_compat = armada_38x_dt_compat,
219228
MACHINE_END

arch/arm/mach-mvebu/pmsu.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ static void __iomem *pmsu_mp_base;
6666
extern void ll_disable_coherency(void);
6767
extern void ll_enable_coherency(void);
6868

69+
extern void armada_370_xp_cpu_resume(void);
70+
6971
static struct platform_device armada_xp_cpuidle_device = {
7072
.name = "cpuidle-armada-370-xp",
7173
};
@@ -140,13 +142,6 @@ static void armada_370_xp_pmsu_enable_l2_powerdown_onidle(void)
140142
writel(reg, pmsu_mp_base + L2C_NFABRIC_PM_CTL);
141143
}
142144

143-
static void armada_370_xp_cpu_resume(void)
144-
{
145-
asm volatile("bl ll_add_cpu_to_smp_group\n\t"
146-
"bl ll_enable_coherency\n\t"
147-
"b cpu_resume\n\t");
148-
}
149-
150145
/* No locking is needed because we only access per-CPU registers */
151146
void armada_370_xp_pmsu_idle_prepare(bool deepidle)
152147
{

arch/arm/mach-mvebu/pmsu_ll.S

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Copyright (C) 2014 Marvell
3+
*
4+
* Thomas Petazzoni <[email protected]>
5+
* Gregory Clement <[email protected]>
6+
*
7+
* This file is licensed under the terms of the GNU General Public
8+
* License version 2. This program is licensed "as is" without any
9+
* warranty of any kind, whether express or implied.
10+
*/
11+
12+
#include <linux/linkage.h>
13+
#include <asm/assembler.h>
14+
15+
/*
16+
* This is the entry point through which CPUs exiting cpuidle deep
17+
* idle state are going.
18+
*/
19+
ENTRY(armada_370_xp_cpu_resume)
20+
ARM_BE8(setend be ) @ go BE8 if entered LE
21+
bl ll_add_cpu_to_smp_group
22+
bl ll_enable_coherency
23+
b cpu_resume
24+
ENDPROC(armada_370_xp_cpu_resume)
25+

arch/arm/mach-omap2/Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,16 @@ obj-y += prm_common.o cm_common.o
110110
obj-$(CONFIG_ARCH_OMAP2) += prm2xxx_3xxx.o prm2xxx.o cm2xxx.o
111111
obj-$(CONFIG_ARCH_OMAP3) += prm2xxx_3xxx.o prm3xxx.o cm3xxx.o
112112
obj-$(CONFIG_ARCH_OMAP3) += vc3xxx_data.o vp3xxx_data.o
113-
obj-$(CONFIG_SOC_AM33XX) += prm33xx.o cm33xx.o
114113
omap-prcm-4-5-common = cminst44xx.o cm44xx.o prm44xx.o \
115114
prcm_mpu44xx.o prminst44xx.o \
116115
vc44xx_data.o vp44xx_data.o
117116
obj-$(CONFIG_ARCH_OMAP4) += $(omap-prcm-4-5-common)
118117
obj-$(CONFIG_SOC_OMAP5) += $(omap-prcm-4-5-common)
119118
obj-$(CONFIG_SOC_DRA7XX) += $(omap-prcm-4-5-common)
120-
obj-$(CONFIG_SOC_AM43XX) += $(omap-prcm-4-5-common)
119+
am33xx-43xx-prcm-common += prm33xx.o cm33xx.o
120+
obj-$(CONFIG_SOC_AM33XX) += $(am33xx-43xx-prcm-common)
121+
obj-$(CONFIG_SOC_AM43XX) += $(omap-prcm-4-5-common) \
122+
$(am33xx-43xx-prcm-common)
121123

122124
# OMAP voltage domains
123125
voltagedomain-common := voltage.o vc.o vp.o

arch/arm/mach-omap2/cm33xx.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ void am33xx_cm_clkdm_disable_hwsup(u16 inst, u16 cdoffs);
380380
void am33xx_cm_clkdm_force_sleep(u16 inst, u16 cdoffs);
381381
void am33xx_cm_clkdm_force_wakeup(u16 inst, u16 cdoffs);
382382

383-
#ifdef CONFIG_SOC_AM33XX
383+
#if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)
384384
extern int am33xx_cm_wait_module_idle(u16 inst, s16 cdoffs,
385385
u16 clkctrl_offs);
386386
extern void am33xx_cm_module_enable(u8 mode, u16 inst, s16 cdoffs,

arch/arm/mach-omap2/common.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,6 @@ static inline void __iomem *omap4_get_scu_base(void)
248248
}
249249
#endif
250250

251-
extern void __init gic_init_irq(void);
252251
extern void gic_dist_disable(void);
253252
extern void gic_dist_enable(void);
254253
extern bool gic_dist_disabled(void);

0 commit comments

Comments
 (0)