Skip to content

Commit fba7e99

Browse files
committed
Merge tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Olof Johansson: "One more week's worth of fixes. Worth pointing out here are: - A patch fixing detaching of iommu registrations when a device is removed -- earlier the ops pointer wasn't managed properly - Another set of Renesas boards get the same GIC setup fixup as others have in previous -rcs - Serial port aliases fixups for sunxi. We did the same to tegra but we caught that in time before the merge window due to more machines being affected. Here it took longer for anyone to notice. - A couple more DT tweaks on sunxi - A follow-up patch for the mvebu coherency disabling in last -rc batch" * tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: arm: dma-mapping: Set DMA IOMMU ops in arm_iommu_attach_device() ARM: shmobile: r8a7790: Instantiate GIC from C board code in legacy builds ARM: shmobile: r8a73a4: Instantiate GIC from C board code in legacy builds ARM: mvebu: don't set the PL310 in I/O coherency mode when I/O coherency is disabled ARM: sunxi: dt: Fix aliases ARM: dts: sun4i: Add simplefb node with de_fe0-de_be0-lcd0-hdmi pipeline ARM: dts: sun6i: ippo-q8h-v5: Fix serial0 alias ARM: dts: sunxi: Fix usb-phy support for sun4i/sun5i
2 parents 3441456 + 28111dd commit fba7e99

22 files changed

+150
-71
lines changed

arch/arm/boot/dts/sun4i-a10.dtsi

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,6 @@
1717

1818
aliases {
1919
ethernet0 = &emac;
20-
serial0 = &uart0;
21-
serial1 = &uart1;
22-
serial2 = &uart2;
23-
serial3 = &uart3;
24-
serial4 = &uart4;
25-
serial5 = &uart5;
26-
serial6 = &uart6;
27-
serial7 = &uart7;
2820
};
2921

3022
chosen {
@@ -39,6 +31,14 @@
3931
<&ahb_gates 44>;
4032
status = "disabled";
4133
};
34+
35+
framebuffer@1 {
36+
compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
37+
allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi";
38+
clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
39+
<&ahb_gates 44>, <&ahb_gates 46>;
40+
status = "disabled";
41+
};
4242
};
4343

4444
cpus {
@@ -438,8 +438,8 @@
438438
reg-names = "phy_ctrl", "pmu1", "pmu2";
439439
clocks = <&usb_clk 8>;
440440
clock-names = "usb_phy";
441-
resets = <&usb_clk 1>, <&usb_clk 2>;
442-
reset-names = "usb1_reset", "usb2_reset";
441+
resets = <&usb_clk 0>, <&usb_clk 1>, <&usb_clk 2>;
442+
reset-names = "usb0_reset", "usb1_reset", "usb2_reset";
443443
status = "disabled";
444444
};
445445

arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@
5555
model = "Olimex A10s-Olinuxino Micro";
5656
compatible = "olimex,a10s-olinuxino-micro", "allwinner,sun5i-a10s";
5757

58+
aliases {
59+
serial0 = &uart0;
60+
serial1 = &uart2;
61+
serial2 = &uart3;
62+
};
63+
5864
soc@01c00000 {
5965
emac: ethernet@01c0b000 {
6066
pinctrl-names = "default";

arch/arm/boot/dts/sun5i-a10s.dtsi

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@
1818

1919
aliases {
2020
ethernet0 = &emac;
21-
serial0 = &uart0;
22-
serial1 = &uart1;
23-
serial2 = &uart2;
24-
serial3 = &uart3;
2521
};
2622

2723
chosen {
@@ -390,8 +386,8 @@
390386
reg-names = "phy_ctrl", "pmu1";
391387
clocks = <&usb_clk 8>;
392388
clock-names = "usb_phy";
393-
resets = <&usb_clk 1>;
394-
reset-names = "usb1_reset";
389+
resets = <&usb_clk 0>, <&usb_clk 1>;
390+
reset-names = "usb0_reset", "usb1_reset";
395391
status = "disabled";
396392
};
397393

arch/arm/boot/dts/sun5i-a13-hsg-h702.dts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@
5353
model = "HSG H702";
5454
compatible = "hsg,h702", "allwinner,sun5i-a13";
5555

56+
aliases {
57+
serial0 = &uart1;
58+
};
59+
5660
soc@01c00000 {
5761
mmc0: mmc@01c0f000 {
5862
pinctrl-names = "default";

arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@
5454
model = "Olimex A13-Olinuxino Micro";
5555
compatible = "olimex,a13-olinuxino-micro", "allwinner,sun5i-a13";
5656

57+
aliases {
58+
serial0 = &uart1;
59+
};
60+
5761
soc@01c00000 {
5862
mmc0: mmc@01c0f000 {
5963
pinctrl-names = "default";

arch/arm/boot/dts/sun5i-a13-olinuxino.dts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@
5555
model = "Olimex A13-Olinuxino";
5656
compatible = "olimex,a13-olinuxino", "allwinner,sun5i-a13";
5757

58+
aliases {
59+
serial0 = &uart1;
60+
};
61+
5862
soc@01c00000 {
5963
mmc0: mmc@01c0f000 {
6064
pinctrl-names = "default";

arch/arm/boot/dts/sun5i-a13.dtsi

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@
1616
/ {
1717
interrupt-parent = <&intc>;
1818

19-
aliases {
20-
serial0 = &uart1;
21-
serial1 = &uart3;
22-
};
23-
2419
cpus {
2520
#address-cells = <1>;
2621
#size-cells = <0>;
@@ -349,8 +344,8 @@
349344
reg-names = "phy_ctrl", "pmu1";
350345
clocks = <&usb_clk 8>;
351346
clock-names = "usb_phy";
352-
resets = <&usb_clk 1>;
353-
reset-names = "usb1_reset";
347+
resets = <&usb_clk 0>, <&usb_clk 1>;
348+
reset-names = "usb0_reset", "usb1_reset";
354349
status = "disabled";
355350
};
356351

arch/arm/boot/dts/sun6i-a31.dtsi

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,6 @@
5353
interrupt-parent = <&gic>;
5454

5555
aliases {
56-
serial0 = &uart0;
57-
serial1 = &uart1;
58-
serial2 = &uart2;
59-
serial3 = &uart3;
60-
serial4 = &uart4;
61-
serial5 = &uart5;
6256
ethernet0 = &gmac;
6357
};
6458

arch/arm/boot/dts/sun7i-a20-bananapi.dts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@
5555
model = "LeMaker Banana Pi";
5656
compatible = "lemaker,bananapi", "allwinner,sun7i-a20";
5757

58+
aliases {
59+
serial0 = &uart0;
60+
serial1 = &uart3;
61+
serial2 = &uart7;
62+
};
63+
5864
soc@01c00000 {
5965
spi0: spi@01c05000 {
6066
pinctrl-names = "default";

arch/arm/boot/dts/sun7i-a20-hummingbird.dts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@
1919
model = "Merrii A20 Hummingbird";
2020
compatible = "merrii,a20-hummingbird", "allwinner,sun7i-a20";
2121

22+
aliases {
23+
serial0 = &uart0;
24+
serial1 = &uart2;
25+
serial2 = &uart3;
26+
serial3 = &uart4;
27+
serial4 = &uart5;
28+
};
29+
2230
soc@01c00000 {
2331
mmc0: mmc@01c0f000 {
2432
pinctrl-names = "default";

arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
compatible = "olimex,a20-olinuxino-micro", "allwinner,sun7i-a20";
2121

2222
aliases {
23+
serial0 = &uart0;
24+
serial1 = &uart6;
25+
serial2 = &uart7;
2326
spi0 = &spi1;
2427
spi1 = &spi2;
2528
};

arch/arm/boot/dts/sun7i-a20.dtsi

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,6 @@
5454

5555
aliases {
5656
ethernet0 = &gmac;
57-
serial0 = &uart0;
58-
serial1 = &uart1;
59-
serial2 = &uart2;
60-
serial3 = &uart3;
61-
serial4 = &uart4;
62-
serial5 = &uart5;
63-
serial6 = &uart6;
64-
serial7 = &uart7;
6557
};
6658

6759
chosen {

arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@
5555
model = "Ippo Q8H Dual Core Tablet (v5)";
5656
compatible = "ippo,q8h-v5", "allwinner,sun8i-a23";
5757

58+
aliases {
59+
serial0 = &r_uart;
60+
};
61+
5862
chosen {
5963
bootargs = "earlyprintk console=ttyS0,115200";
6064
};

arch/arm/boot/dts/sun8i-a23.dtsi

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,6 @@
5252
/ {
5353
interrupt-parent = <&gic>;
5454

55-
aliases {
56-
serial0 = &uart0;
57-
serial1 = &uart1;
58-
serial2 = &uart2;
59-
serial3 = &uart3;
60-
serial4 = &uart4;
61-
serial5 = &r_uart;
62-
};
63-
6455
cpus {
6556
#address-cells = <1>;
6657
#size-cells = <0>;

arch/arm/boot/dts/sun9i-a80-optimus.dts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@
5454
model = "Merrii A80 Optimus Board";
5555
compatible = "merrii,a80-optimus", "allwinner,sun9i-a80";
5656

57+
aliases {
58+
serial0 = &uart0;
59+
serial1 = &uart4;
60+
};
61+
5762
chosen {
5863
bootargs = "earlyprintk console=ttyS0,115200";
5964
};

arch/arm/boot/dts/sun9i-a80.dtsi

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,6 @@
5252
/ {
5353
interrupt-parent = <&gic>;
5454

55-
aliases {
56-
serial0 = &uart0;
57-
serial1 = &uart1;
58-
serial2 = &uart2;
59-
serial3 = &uart3;
60-
serial4 = &uart4;
61-
serial5 = &uart5;
62-
serial6 = &r_uart;
63-
};
64-
6555
cpus {
6656
#address-cells = <1>;
6757
#size-cells = <0>;

arch/arm/mach-mvebu/coherency.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,13 @@ static void __init armada_375_380_coherency_init(struct device_node *np)
189189
coherency_cpu_base = of_iomap(np, 0);
190190
arch_ioremap_caller = armada_pcie_wa_ioremap_caller;
191191

192+
/*
193+
* We should switch the PL310 to I/O coherency mode only if
194+
* I/O coherency is actually enabled.
195+
*/
196+
if (!coherency_available())
197+
return;
198+
192199
/*
193200
* Add the PL310 property "arm,io-coherent". This makes sure the
194201
* outer sync operation is not used, which allows to

arch/arm/mach-shmobile/board-ape6evm.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
#include <linux/gpio_keys.h>
1919
#include <linux/input.h>
2020
#include <linux/interrupt.h>
21+
#include <linux/irqchip.h>
22+
#include <linux/irqchip/arm-gic.h>
2123
#include <linux/kernel.h>
2224
#include <linux/mfd/tmio.h>
2325
#include <linux/mmc/host.h>
@@ -273,14 +275,32 @@ static void __init ape6evm_add_standard_devices(void)
273275
sizeof(ape6evm_leds_pdata));
274276
}
275277

278+
static void __init ape6evm_legacy_init_time(void)
279+
{
280+
/* Do not invoke DT-based timers via clocksource_of_init() */
281+
}
282+
283+
static void __init ape6evm_legacy_init_irq(void)
284+
{
285+
void __iomem *gic_dist_base = ioremap_nocache(0xf1001000, 0x1000);
286+
void __iomem *gic_cpu_base = ioremap_nocache(0xf1002000, 0x1000);
287+
288+
gic_init(0, 29, gic_dist_base, gic_cpu_base);
289+
290+
/* Do not invoke DT-based interrupt code via irqchip_init() */
291+
}
292+
293+
276294
static const char *ape6evm_boards_compat_dt[] __initdata = {
277295
"renesas,ape6evm",
278296
NULL,
279297
};
280298

281299
DT_MACHINE_START(APE6EVM_DT, "ape6evm")
282300
.init_early = shmobile_init_delay,
301+
.init_irq = ape6evm_legacy_init_irq,
283302
.init_machine = ape6evm_add_standard_devices,
284303
.init_late = shmobile_init_late,
285304
.dt_compat = ape6evm_boards_compat_dt,
305+
.init_time = ape6evm_legacy_init_time,
286306
MACHINE_END

arch/arm/mach-shmobile/board-lager.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
#include <linux/input.h>
2222
#include <linux/interrupt.h>
2323
#include <linux/irq.h>
24+
#include <linux/irqchip.h>
25+
#include <linux/irqchip/arm-gic.h>
2426
#include <linux/kernel.h>
2527
#include <linux/leds.h>
2628
#include <linux/mfd/tmio.h>
@@ -811,6 +813,16 @@ static void __init lager_init(void)
811813
lager_ksz8041_fixup);
812814
}
813815

816+
static void __init lager_legacy_init_irq(void)
817+
{
818+
void __iomem *gic_dist_base = ioremap_nocache(0xf1001000, 0x1000);
819+
void __iomem *gic_cpu_base = ioremap_nocache(0xf1002000, 0x1000);
820+
821+
gic_init(0, 29, gic_dist_base, gic_cpu_base);
822+
823+
/* Do not invoke DT-based interrupt code via irqchip_init() */
824+
}
825+
814826
static const char * const lager_boards_compat_dt[] __initconst = {
815827
"renesas,lager",
816828
NULL,
@@ -819,6 +831,7 @@ static const char * const lager_boards_compat_dt[] __initconst = {
819831
DT_MACHINE_START(LAGER_DT, "lager")
820832
.smp = smp_ops(r8a7790_smp_ops),
821833
.init_early = shmobile_init_delay,
834+
.init_irq = lager_legacy_init_irq,
822835
.init_time = rcar_gen2_timer_init,
823836
.init_machine = lager_init,
824837
.init_late = shmobile_init_late,

arch/arm/mach-shmobile/setup-rcar-gen2.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,9 @@ void __init rcar_gen2_timer_init(void)
133133
#ifdef CONFIG_COMMON_CLK
134134
rcar_gen2_clocks_init(mode);
135135
#endif
136+
#ifdef CONFIG_ARCH_SHMOBILE_MULTI
136137
clocksource_of_init();
138+
#endif
137139
}
138140

139141
struct memory_reserve_config {

arch/arm/mach-shmobile/timer.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,18 @@ void __init shmobile_init_delay(void)
7070
if (!max_freq)
7171
return;
7272

73+
#ifdef CONFIG_ARCH_SHMOBILE_LEGACY
74+
/* Non-multiplatform r8a73a4 SoC cannot use arch timer due
75+
* to GIC being initialized from C and arch timer via DT */
76+
if (of_machine_is_compatible("renesas,r8a73a4"))
77+
has_arch_timer = false;
78+
79+
/* Non-multiplatform r8a7790 SoC cannot use arch timer due
80+
* to GIC being initialized from C and arch timer via DT */
81+
if (of_machine_is_compatible("renesas,r8a7790"))
82+
has_arch_timer = false;
83+
#endif
84+
7385
if (!has_arch_timer || !IS_ENABLED(CONFIG_ARM_ARCH_TIMER)) {
7486
if (is_a7_a8_a9)
7587
shmobile_setup_delay_hz(max_freq, 1, 3);

0 commit comments

Comments
 (0)