aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-01-19 14:21:31 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2018-01-19 14:21:31 -0500
commit6ec8765f55cc3e2d6543dfe64ebfd9b2ff327fa4 (patch)
tree62f9aed830a101bd0d36adddb00c1b7f329f6530
parent4917d5df3851d0d3febc8e4bbfd964132e746149 (diff)
parentb7563e2796f8b23c98afcfea7363194227fa089d (diff)
Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Arnd Bergmann: "We have various small DT fixes, and one important regression fix: The recent device tree bugfixes that were intended to address issues that 'dtc' started warning about in 4.15 fixed various USB PHY device nodes, but it turns out that we had code that depended on those nodes being incorrect and the probe failing with a particular error code. With the workaround we can also deal with correct device nodes. The DT fixes include: - Allwinner A10 and A20 had the display pipeline set up incorrectly (introduced in v4.15) - The Altera PMU lacked an interrupt-parent (never worked) - Pin muxing on the Openblocks A7 (never worked) - Clocks might get set up wrong on Armada 7K/8K (4.15 regression) We now have additional device tree patches to address all the remaining warnings introduced in 4.15, but decided to queue them for 4.16 instead, to avoid risking another regression like the USB PHY thing mentioned above. * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: phy: work around 'phys' references to usb-nop-xceiv devices ARM: sunxi_defconfig: Enable CMA arm64: dts: socfpga: add missing interrupt-parent ARM: dts: sun[47]i: Fix display backend 1 output to TCON0 remote endpoint ARM64: dts: marvell: armada-cp110: Fix clock resources for various node ARM: dts: da850-lcdk: Remove leading 0x and 0s from unit address ARM: dts: kirkwood: fix pin-muxing of MPP7 on OpenBlocks A7
-rw-r--r--arch/arm/boot/dts/da850-lcdk.dts4
-rw-r--r--arch/arm/boot/dts/kirkwood-openblocks_a7.dts10
-rw-r--r--arch/arm/boot/dts/sun4i-a10.dtsi2
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi2
-rw-r--r--arch/arm/configs/sunxi_defconfig2
-rw-r--r--arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi1
-rw-r--r--arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi13
-rw-r--r--arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi9
-rw-r--r--drivers/phy/phy-core.c4
9 files changed, 33 insertions, 14 deletions
diff --git a/arch/arm/boot/dts/da850-lcdk.dts b/arch/arm/boot/dts/da850-lcdk.dts
index eed89e659143..a1f4d6d5a569 100644
--- a/arch/arm/boot/dts/da850-lcdk.dts
+++ b/arch/arm/boot/dts/da850-lcdk.dts
@@ -293,12 +293,12 @@
293 label = "u-boot env"; 293 label = "u-boot env";
294 reg = <0 0x020000>; 294 reg = <0 0x020000>;
295 }; 295 };
296 partition@0x020000 { 296 partition@20000 {
297 /* The LCDK defaults to booting from this partition */ 297 /* The LCDK defaults to booting from this partition */
298 label = "u-boot"; 298 label = "u-boot";
299 reg = <0x020000 0x080000>; 299 reg = <0x020000 0x080000>;
300 }; 300 };
301 partition@0x0a0000 { 301 partition@a0000 {
302 label = "free space"; 302 label = "free space";
303 reg = <0x0a0000 0>; 303 reg = <0x0a0000 0>;
304 }; 304 };
diff --git a/arch/arm/boot/dts/kirkwood-openblocks_a7.dts b/arch/arm/boot/dts/kirkwood-openblocks_a7.dts
index cf2f5240e176..27cc913ca0f5 100644
--- a/arch/arm/boot/dts/kirkwood-openblocks_a7.dts
+++ b/arch/arm/boot/dts/kirkwood-openblocks_a7.dts
@@ -53,7 +53,8 @@
53 }; 53 };
54 54
55 pinctrl: pin-controller@10000 { 55 pinctrl: pin-controller@10000 {
56 pinctrl-0 = <&pmx_dip_switches &pmx_gpio_header>; 56 pinctrl-0 = <&pmx_dip_switches &pmx_gpio_header
57 &pmx_gpio_header_gpo>;
57 pinctrl-names = "default"; 58 pinctrl-names = "default";
58 59
59 pmx_uart0: pmx-uart0 { 60 pmx_uart0: pmx-uart0 {
@@ -85,11 +86,16 @@
85 * ground. 86 * ground.
86 */ 87 */
87 pmx_gpio_header: pmx-gpio-header { 88 pmx_gpio_header: pmx-gpio-header {
88 marvell,pins = "mpp17", "mpp7", "mpp29", "mpp28", 89 marvell,pins = "mpp17", "mpp29", "mpp28",
89 "mpp35", "mpp34", "mpp40"; 90 "mpp35", "mpp34", "mpp40";
90 marvell,function = "gpio"; 91 marvell,function = "gpio";
91 }; 92 };
92 93
94 pmx_gpio_header_gpo: pxm-gpio-header-gpo {
95 marvell,pins = "mpp7";
96 marvell,function = "gpo";
97 };
98
93 pmx_gpio_init: pmx-init { 99 pmx_gpio_init: pmx-init {
94 marvell,pins = "mpp38"; 100 marvell,pins = "mpp38";
95 marvell,function = "gpio"; 101 marvell,function = "gpio";
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index 5840f5c75c3b..4f2f2eea0755 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -1104,7 +1104,7 @@
1104 1104
1105 be1_out_tcon0: endpoint@0 { 1105 be1_out_tcon0: endpoint@0 {
1106 reg = <0>; 1106 reg = <0>;
1107 remote-endpoint = <&tcon1_in_be0>; 1107 remote-endpoint = <&tcon0_in_be1>;
1108 }; 1108 };
1109 1109
1110 be1_out_tcon1: endpoint@1 { 1110 be1_out_tcon1: endpoint@1 {
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index 59655e42e4b0..bd0cd3204273 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -1354,7 +1354,7 @@
1354 1354
1355 be1_out_tcon0: endpoint@0 { 1355 be1_out_tcon0: endpoint@0 {
1356 reg = <0>; 1356 reg = <0>;
1357 remote-endpoint = <&tcon1_in_be0>; 1357 remote-endpoint = <&tcon0_in_be1>;
1358 }; 1358 };
1359 1359
1360 be1_out_tcon1: endpoint@1 { 1360 be1_out_tcon1: endpoint@1 {
diff --git a/arch/arm/configs/sunxi_defconfig b/arch/arm/configs/sunxi_defconfig
index 5caaf971fb50..df433abfcb02 100644
--- a/arch/arm/configs/sunxi_defconfig
+++ b/arch/arm/configs/sunxi_defconfig
@@ -10,6 +10,7 @@ CONFIG_SMP=y
10CONFIG_NR_CPUS=8 10CONFIG_NR_CPUS=8
11CONFIG_AEABI=y 11CONFIG_AEABI=y
12CONFIG_HIGHMEM=y 12CONFIG_HIGHMEM=y
13CONFIG_CMA=y
13CONFIG_ARM_APPENDED_DTB=y 14CONFIG_ARM_APPENDED_DTB=y
14CONFIG_ARM_ATAG_DTB_COMPAT=y 15CONFIG_ARM_ATAG_DTB_COMPAT=y
15CONFIG_CPU_FREQ=y 16CONFIG_CPU_FREQ=y
@@ -33,6 +34,7 @@ CONFIG_CAN_SUN4I=y
33# CONFIG_WIRELESS is not set 34# CONFIG_WIRELESS is not set
34CONFIG_DEVTMPFS=y 35CONFIG_DEVTMPFS=y
35CONFIG_DEVTMPFS_MOUNT=y 36CONFIG_DEVTMPFS_MOUNT=y
37CONFIG_DMA_CMA=y
36CONFIG_BLK_DEV_SD=y 38CONFIG_BLK_DEV_SD=y
37CONFIG_ATA=y 39CONFIG_ATA=y
38CONFIG_AHCI_SUNXI=y 40CONFIG_AHCI_SUNXI=y
diff --git a/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi b/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
index 7c9bdc7ab50b..9db19314c60c 100644
--- a/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
+++ b/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
@@ -66,6 +66,7 @@
66 <&cpu1>, 66 <&cpu1>,
67 <&cpu2>, 67 <&cpu2>,
68 <&cpu3>; 68 <&cpu3>;
69 interrupt-parent = <&intc>;
69 }; 70 };
70 71
71 psci { 72 psci {
diff --git a/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
index e3b64d03fbd8..9c7724e82aff 100644
--- a/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
@@ -63,8 +63,10 @@
63 cpm_ethernet: ethernet@0 { 63 cpm_ethernet: ethernet@0 {
64 compatible = "marvell,armada-7k-pp22"; 64 compatible = "marvell,armada-7k-pp22";
65 reg = <0x0 0x100000>, <0x129000 0xb000>; 65 reg = <0x0 0x100000>, <0x129000 0xb000>;
66 clocks = <&cpm_clk 1 3>, <&cpm_clk 1 9>, <&cpm_clk 1 5>; 66 clocks = <&cpm_clk 1 3>, <&cpm_clk 1 9>,
67 clock-names = "pp_clk", "gop_clk", "mg_clk"; 67 <&cpm_clk 1 5>, <&cpm_clk 1 18>;
68 clock-names = "pp_clk", "gop_clk",
69 "mg_clk","axi_clk";
68 marvell,system-controller = <&cpm_syscon0>; 70 marvell,system-controller = <&cpm_syscon0>;
69 status = "disabled"; 71 status = "disabled";
70 dma-coherent; 72 dma-coherent;
@@ -155,7 +157,8 @@
155 #size-cells = <0>; 157 #size-cells = <0>;
156 compatible = "marvell,orion-mdio"; 158 compatible = "marvell,orion-mdio";
157 reg = <0x12a200 0x10>; 159 reg = <0x12a200 0x10>;
158 clocks = <&cpm_clk 1 9>, <&cpm_clk 1 5>; 160 clocks = <&cpm_clk 1 9>, <&cpm_clk 1 5>,
161 <&cpm_clk 1 6>, <&cpm_clk 1 18>;
159 status = "disabled"; 162 status = "disabled";
160 }; 163 };
161 164
@@ -338,8 +341,8 @@
338 compatible = "marvell,armada-cp110-sdhci"; 341 compatible = "marvell,armada-cp110-sdhci";
339 reg = <0x780000 0x300>; 342 reg = <0x780000 0x300>;
340 interrupts = <ICU_GRP_NSR 27 IRQ_TYPE_LEVEL_HIGH>; 343 interrupts = <ICU_GRP_NSR 27 IRQ_TYPE_LEVEL_HIGH>;
341 clock-names = "core"; 344 clock-names = "core","axi";
342 clocks = <&cpm_clk 1 4>; 345 clocks = <&cpm_clk 1 4>, <&cpm_clk 1 18>;
343 dma-coherent; 346 dma-coherent;
344 status = "disabled"; 347 status = "disabled";
345 }; 348 };
diff --git a/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
index 0d51096c69f8..87ac68b2cf37 100644
--- a/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
@@ -63,8 +63,10 @@
63 cps_ethernet: ethernet@0 { 63 cps_ethernet: ethernet@0 {
64 compatible = "marvell,armada-7k-pp22"; 64 compatible = "marvell,armada-7k-pp22";
65 reg = <0x0 0x100000>, <0x129000 0xb000>; 65 reg = <0x0 0x100000>, <0x129000 0xb000>;
66 clocks = <&cps_clk 1 3>, <&cps_clk 1 9>, <&cps_clk 1 5>; 66 clocks = <&cps_clk 1 3>, <&cps_clk 1 9>,
67 clock-names = "pp_clk", "gop_clk", "mg_clk"; 67 <&cps_clk 1 5>, <&cps_clk 1 18>;
68 clock-names = "pp_clk", "gop_clk",
69 "mg_clk", "axi_clk";
68 marvell,system-controller = <&cps_syscon0>; 70 marvell,system-controller = <&cps_syscon0>;
69 status = "disabled"; 71 status = "disabled";
70 dma-coherent; 72 dma-coherent;
@@ -155,7 +157,8 @@
155 #size-cells = <0>; 157 #size-cells = <0>;
156 compatible = "marvell,orion-mdio"; 158 compatible = "marvell,orion-mdio";
157 reg = <0x12a200 0x10>; 159 reg = <0x12a200 0x10>;
158 clocks = <&cps_clk 1 9>, <&cps_clk 1 5>; 160 clocks = <&cps_clk 1 9>, <&cps_clk 1 5>,
161 <&cps_clk 1 6>, <&cps_clk 1 18>;
159 status = "disabled"; 162 status = "disabled";
160 }; 163 };
161 164
diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
index b4964b067aec..8f6e8e28996d 100644
--- a/drivers/phy/phy-core.c
+++ b/drivers/phy/phy-core.c
@@ -410,6 +410,10 @@ static struct phy *_of_phy_get(struct device_node *np, int index)
410 if (ret) 410 if (ret)
411 return ERR_PTR(-ENODEV); 411 return ERR_PTR(-ENODEV);
412 412
413 /* This phy type handled by the usb-phy subsystem for now */
414 if (of_device_is_compatible(args.np, "usb-nop-xceiv"))
415 return ERR_PTR(-ENODEV);
416
413 mutex_lock(&phy_provider_mutex); 417 mutex_lock(&phy_provider_mutex);
414 phy_provider = of_phy_provider_lookup(args.np); 418 phy_provider = of_phy_provider_lookup(args.np);
415 if (IS_ERR(phy_provider) || !try_module_get(phy_provider->owner)) { 419 if (IS_ERR(phy_provider) || !try_module_get(phy_provider->owner)) {