aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-05-19 22:56:15 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2018-05-19 22:56:15 -0400
commit203ec2fed17ade9582277570eb234be52085f8c5 (patch)
tree124a02703beedb88b9603904d17aa44737233e2e
parent0b449a441dac919444face9e3b6ca6aaec30791d (diff)
parent709f490d5b594b9548577d2285ffeaad8a278b10 (diff)
Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Olof Johansson: "A handful of fixes. I've been queuing them up a bit too long so the list is longer than it otherwise would have been spread out across a few -rcs. In general, it's a scattering of fixes across several platforms, nothing truly serious enough to point out. There's a slightly larger batch of them for the Davinci platforms due to work to bring them back to life after some time, so there's a handful of regressions, some of them going back very far, others more recent. There's also a few patches fixing DT on Renesas platforms since they changed some bindings without remaining backwards compatible, splitting up describing LVDS as a proper bridge instead of having it as part of the display unit. We could push for them to be backwards compatible with old device trees, but it's likely to regress eventually if nobody's actually using said compatibility" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (36 commits) ARM: davinci: board-dm646x-evm: set VPIF capture card name ARM: davinci: board-dm646x-evm: pass correct I2C adapter id for VPIF ARM: davinci: dm646x: fix timer interrupt generation ARM: keystone: fix platform_domain_notifier array overrun arm64: dts: exynos: Fix interrupt type for I2S1 device on Exynos5433 ARM: dts: imx51-zii-rdu1: fix touchscreen bindings firmware: arm_scmi: Use after free in scmi_create_protocol_device() ARM: dts: cygnus: fix irq type for arm global timer Revert "ARM: dts: logicpd-som-lv: Fix pinmux controller references" tee: check shm references are consistent in offset/size tee: shm: fix use-after-free via temporarily dropped reference ARM: dts: imx7s: Pass the 'fsl,sec-era' property ARM: dts: tegra20: Revert "Fix ULPI regression on Tegra20" ARM: dts: correct missing "compatible" entry for ti81xx SoCs ARM: OMAP1: ams-delta: fix deferred_fiq handler arm64: tegra: Make BCM89610 PHY interrupt as active low ARM: davinci: fix GPIO lookup for I2C ARM: dts: logicpd-som-lv: Fix pinmux controller references ARM: dts: logicpd-som-lv: Fix Audio Mute ARM: dts: logicpd-som-lv: Fix WL127x Startup Issues ...
-rw-r--r--Documentation/devicetree/bindings/net/marvell-pp2.txt9
-rw-r--r--arch/arm/boot/dts/bcm-cygnus.dtsi2
-rw-r--r--arch/arm/boot/dts/da850-lcdk.dts4
-rw-r--r--arch/arm/boot/dts/da850.dtsi13
-rw-r--r--arch/arm/boot/dts/dm8148-evm.dts2
-rw-r--r--arch/arm/boot/dts/dm8148-t410.dts2
-rw-r--r--arch/arm/boot/dts/dm8168-evm.dts2
-rw-r--r--arch/arm/boot/dts/dra62x-j5eco-evm.dts2
-rw-r--r--arch/arm/boot/dts/imx51-zii-rdu1.dts6
-rw-r--r--arch/arm/boot/dts/imx7s.dtsi1
-rw-r--r--arch/arm/boot/dts/logicpd-som-lv.dtsi11
-rw-r--r--arch/arm/boot/dts/r8a7790-lager.dts22
-rw-r--r--arch/arm/boot/dts/r8a7790.dtsi65
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch.dts12
-rw-r--r--arch/arm/boot/dts/r8a7791-porter.dts16
-rw-r--r--arch/arm/boot/dts/r8a7791.dtsi36
-rw-r--r--arch/arm/boot/dts/r8a7793-gose.dts10
-rw-r--r--arch/arm/boot/dts/r8a7793.dtsi37
-rw-r--r--arch/arm/boot/dts/tegra20.dtsi2
-rw-r--r--arch/arm/mach-davinci/board-da830-evm.c9
-rw-r--r--arch/arm/mach-davinci/board-da850-evm.c9
-rw-r--r--arch/arm/mach-davinci/board-dm355-evm.c15
-rw-r--r--arch/arm/mach-davinci/board-dm644x-evm.c10
-rw-r--r--arch/arm/mach-davinci/board-dm646x-evm.c5
-rw-r--r--arch/arm/mach-davinci/board-omapl138-hawk.c10
-rw-r--r--arch/arm/mach-davinci/dm646x.c3
-rw-r--r--arch/arm/mach-keystone/pm_domain.c1
-rw-r--r--arch/arm/mach-omap1/ams-delta-fiq.c28
-rw-r--r--arch/arm/mach-omap2/powerdomain.c4
-rw-r--r--arch/arm64/boot/dts/exynos/exynos5433.dtsi2
-rw-r--r--arch/arm64/boot/dts/marvell/armada-cp110.dtsi7
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi2
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi2
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts8
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi2
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi2
-rw-r--r--drivers/firmware/arm_scmi/driver.c1
-rw-r--r--drivers/reset/reset-uniphier.c6
-rw-r--r--drivers/tee/tee_core.c11
-rw-r--r--drivers/tee/tee_shm.c5
40 files changed, 300 insertions, 96 deletions
diff --git a/Documentation/devicetree/bindings/net/marvell-pp2.txt b/Documentation/devicetree/bindings/net/marvell-pp2.txt
index 1814fa13f6ab..fc019df0d863 100644
--- a/Documentation/devicetree/bindings/net/marvell-pp2.txt
+++ b/Documentation/devicetree/bindings/net/marvell-pp2.txt
@@ -21,9 +21,10 @@ Required properties:
21 - main controller clock (for both armada-375-pp2 and armada-7k-pp2) 21 - main controller clock (for both armada-375-pp2 and armada-7k-pp2)
22 - GOP clock (for both armada-375-pp2 and armada-7k-pp2) 22 - GOP clock (for both armada-375-pp2 and armada-7k-pp2)
23 - MG clock (only for armada-7k-pp2) 23 - MG clock (only for armada-7k-pp2)
24 - MG Core clock (only for armada-7k-pp2)
24 - AXI clock (only for armada-7k-pp2) 25 - AXI clock (only for armada-7k-pp2)
25- clock-names: names of used clocks, must be "pp_clk", "gop_clk", "mg_clk" 26- clock-names: names of used clocks, must be "pp_clk", "gop_clk", "mg_clk",
26 and "axi_clk" (the 2 latter only for armada-7k-pp2). 27 "mg_core_clk" and "axi_clk" (the 3 latter only for armada-7k-pp2).
27 28
28The ethernet ports are represented by subnodes. At least one port is 29The ethernet ports are represented by subnodes. At least one port is
29required. 30required.
@@ -80,8 +81,8 @@ cpm_ethernet: ethernet@0 {
80 compatible = "marvell,armada-7k-pp22"; 81 compatible = "marvell,armada-7k-pp22";
81 reg = <0x0 0x100000>, <0x129000 0xb000>; 82 reg = <0x0 0x100000>, <0x129000 0xb000>;
82 clocks = <&cpm_syscon0 1 3>, <&cpm_syscon0 1 9>, 83 clocks = <&cpm_syscon0 1 3>, <&cpm_syscon0 1 9>,
83 <&cpm_syscon0 1 5>, <&cpm_syscon0 1 18>; 84 <&cpm_syscon0 1 5>, <&cpm_syscon0 1 6>, <&cpm_syscon0 1 18>;
84 clock-names = "pp_clk", "gop_clk", "gp_clk", "axi_clk"; 85 clock-names = "pp_clk", "gop_clk", "mg_clk", "mg_core_clk", "axi_clk";
85 86
86 eth0: eth0 { 87 eth0: eth0 {
87 interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>, 88 interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/arch/arm/boot/dts/bcm-cygnus.dtsi b/arch/arm/boot/dts/bcm-cygnus.dtsi
index 699fdf94d139..9fe4f5a6379e 100644
--- a/arch/arm/boot/dts/bcm-cygnus.dtsi
+++ b/arch/arm/boot/dts/bcm-cygnus.dtsi
@@ -69,7 +69,7 @@
69 timer@20200 { 69 timer@20200 {
70 compatible = "arm,cortex-a9-global-timer"; 70 compatible = "arm,cortex-a9-global-timer";
71 reg = <0x20200 0x100>; 71 reg = <0x20200 0x100>;
72 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; 72 interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
73 clocks = <&periph_clk>; 73 clocks = <&periph_clk>;
74 }; 74 };
75 75
diff --git a/arch/arm/boot/dts/da850-lcdk.dts b/arch/arm/boot/dts/da850-lcdk.dts
index a1f4d6d5a569..0edf769ea95c 100644
--- a/arch/arm/boot/dts/da850-lcdk.dts
+++ b/arch/arm/boot/dts/da850-lcdk.dts
@@ -21,8 +21,8 @@
21 stdout-path = "serial2:115200n8"; 21 stdout-path = "serial2:115200n8";
22 }; 22 };
23 23
24 memory { 24 memory@c0000000 {
25 device_type = "memory"; 25 /* 128 MB DDR2 SDRAM @ 0xc0000000 */
26 reg = <0xc0000000 0x08000000>; 26 reg = <0xc0000000 0x08000000>;
27 }; 27 };
28 28
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
index c66cf7895363..12010002dbdb 100644
--- a/arch/arm/boot/dts/da850.dtsi
+++ b/arch/arm/boot/dts/da850.dtsi
@@ -7,10 +7,19 @@
7 * Free Software Foundation; either version 2 of the License, or (at your 7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version. 8 * option) any later version.
9 */ 9 */
10#include "skeleton.dtsi"
11#include <dt-bindings/interrupt-controller/irq.h> 10#include <dt-bindings/interrupt-controller/irq.h>
12 11
13/ { 12/ {
13 #address-cells = <1>;
14 #size-cells = <1>;
15 chosen { };
16 aliases { };
17
18 memory@c0000000 {
19 device_type = "memory";
20 reg = <0xc0000000 0x0>;
21 };
22
14 arm { 23 arm {
15 #address-cells = <1>; 24 #address-cells = <1>;
16 #size-cells = <1>; 25 #size-cells = <1>;
@@ -46,8 +55,6 @@
46 pmx_core: pinmux@14120 { 55 pmx_core: pinmux@14120 {
47 compatible = "pinctrl-single"; 56 compatible = "pinctrl-single";
48 reg = <0x14120 0x50>; 57 reg = <0x14120 0x50>;
49 #address-cells = <1>;
50 #size-cells = <0>;
51 #pinctrl-cells = <2>; 58 #pinctrl-cells = <2>;
52 pinctrl-single,bit-per-mux; 59 pinctrl-single,bit-per-mux;
53 pinctrl-single,register-width = <32>; 60 pinctrl-single,register-width = <32>;
diff --git a/arch/arm/boot/dts/dm8148-evm.dts b/arch/arm/boot/dts/dm8148-evm.dts
index d6657b3bae84..85d7b5148b0a 100644
--- a/arch/arm/boot/dts/dm8148-evm.dts
+++ b/arch/arm/boot/dts/dm8148-evm.dts
@@ -10,7 +10,7 @@
10 10
11/ { 11/ {
12 model = "DM8148 EVM"; 12 model = "DM8148 EVM";
13 compatible = "ti,dm8148-evm", "ti,dm8148"; 13 compatible = "ti,dm8148-evm", "ti,dm8148", "ti,dm814";
14 14
15 memory@80000000 { 15 memory@80000000 {
16 device_type = "memory"; 16 device_type = "memory";
diff --git a/arch/arm/boot/dts/dm8148-t410.dts b/arch/arm/boot/dts/dm8148-t410.dts
index 63883b3479f9..6418f9cdbe83 100644
--- a/arch/arm/boot/dts/dm8148-t410.dts
+++ b/arch/arm/boot/dts/dm8148-t410.dts
@@ -9,7 +9,7 @@
9 9
10/ { 10/ {
11 model = "HP t410 Smart Zero Client"; 11 model = "HP t410 Smart Zero Client";
12 compatible = "hp,t410", "ti,dm8148"; 12 compatible = "hp,t410", "ti,dm8148", "ti,dm814";
13 13
14 memory@80000000 { 14 memory@80000000 {
15 device_type = "memory"; 15 device_type = "memory";
diff --git a/arch/arm/boot/dts/dm8168-evm.dts b/arch/arm/boot/dts/dm8168-evm.dts
index c72a2132aa82..1d030d567307 100644
--- a/arch/arm/boot/dts/dm8168-evm.dts
+++ b/arch/arm/boot/dts/dm8168-evm.dts
@@ -10,7 +10,7 @@
10 10
11/ { 11/ {
12 model = "DM8168 EVM"; 12 model = "DM8168 EVM";
13 compatible = "ti,dm8168-evm", "ti,dm8168"; 13 compatible = "ti,dm8168-evm", "ti,dm8168", "ti,dm816";
14 14
15 memory@80000000 { 15 memory@80000000 {
16 device_type = "memory"; 16 device_type = "memory";
diff --git a/arch/arm/boot/dts/dra62x-j5eco-evm.dts b/arch/arm/boot/dts/dra62x-j5eco-evm.dts
index fee0547f7302..31b824ad5d29 100644
--- a/arch/arm/boot/dts/dra62x-j5eco-evm.dts
+++ b/arch/arm/boot/dts/dra62x-j5eco-evm.dts
@@ -10,7 +10,7 @@
10 10
11/ { 11/ {
12 model = "DRA62x J5 Eco EVM"; 12 model = "DRA62x J5 Eco EVM";
13 compatible = "ti,dra62x-j5eco-evm", "ti,dra62x", "ti,dm8148"; 13 compatible = "ti,dra62x-j5eco-evm", "ti,dra62x", "ti,dm8148", "ti,dm814";
14 14
15 memory@80000000 { 15 memory@80000000 {
16 device_type = "memory"; 16 device_type = "memory";
diff --git a/arch/arm/boot/dts/imx51-zii-rdu1.dts b/arch/arm/boot/dts/imx51-zii-rdu1.dts
index 0c99ac04ad08..6464f2560e06 100644
--- a/arch/arm/boot/dts/imx51-zii-rdu1.dts
+++ b/arch/arm/boot/dts/imx51-zii-rdu1.dts
@@ -523,7 +523,7 @@
523 }; 523 };
524 524
525 touchscreen@20 { 525 touchscreen@20 {
526 compatible = "syna,rmi4_i2c"; 526 compatible = "syna,rmi4-i2c";
527 reg = <0x20>; 527 reg = <0x20>;
528 pinctrl-names = "default"; 528 pinctrl-names = "default";
529 pinctrl-0 = <&pinctrl_ts>; 529 pinctrl-0 = <&pinctrl_ts>;
@@ -541,8 +541,8 @@
541 541
542 rmi4-f11@11 { 542 rmi4-f11@11 {
543 reg = <0x11>; 543 reg = <0x11>;
544 touch-inverted-y; 544 touchscreen-inverted-y;
545 touch-swapped-x-y; 545 touchscreen-swapped-x-y;
546 syna,sensor-type = <1>; 546 syna,sensor-type = <1>;
547 }; 547 };
548 }; 548 };
diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
index 4d42335c0dee..ce85b3ca1a55 100644
--- a/arch/arm/boot/dts/imx7s.dtsi
+++ b/arch/arm/boot/dts/imx7s.dtsi
@@ -868,6 +868,7 @@
868 868
869 crypto: caam@30900000 { 869 crypto: caam@30900000 {
870 compatible = "fsl,sec-v4.0"; 870 compatible = "fsl,sec-v4.0";
871 fsl,sec-era = <8>;
871 #address-cells = <1>; 872 #address-cells = <1>;
872 #size-cells = <1>; 873 #size-cells = <1>;
873 reg = <0x30900000 0x40000>; 874 reg = <0x30900000 0x40000>;
diff --git a/arch/arm/boot/dts/logicpd-som-lv.dtsi b/arch/arm/boot/dts/logicpd-som-lv.dtsi
index b47cac23a04b..6fa7bba3e801 100644
--- a/arch/arm/boot/dts/logicpd-som-lv.dtsi
+++ b/arch/arm/boot/dts/logicpd-som-lv.dtsi
@@ -26,7 +26,7 @@
26 gpio = <&gpio1 3 0>; /* gpio_3 */ 26 gpio = <&gpio1 3 0>; /* gpio_3 */
27 startup-delay-us = <70000>; 27 startup-delay-us = <70000>;
28 enable-active-high; 28 enable-active-high;
29 vin-supply = <&vmmc2>; 29 vin-supply = <&vaux3>;
30 }; 30 };
31 31
32 /* HS USB Host PHY on PORT 1 */ 32 /* HS USB Host PHY on PORT 1 */
@@ -82,6 +82,7 @@
82 twl_audio: audio { 82 twl_audio: audio {
83 compatible = "ti,twl4030-audio"; 83 compatible = "ti,twl4030-audio";
84 codec { 84 codec {
85 ti,hs_extmute_gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
85 }; 86 };
86 }; 87 };
87 }; 88 };
@@ -199,6 +200,7 @@
199 pinctrl-single,pins = < 200 pinctrl-single,pins = <
200 OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */ 201 OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */
201 OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0) /* i2c1_sda.i2c1_sda */ 202 OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0) /* i2c1_sda.i2c1_sda */
203 OMAP3_CORE1_IOPAD(0x20ba, PIN_OUTPUT | MUX_MODE4) /* gpmc_ncs6.gpio_57 */
202 >; 204 >;
203 }; 205 };
204}; 206};
@@ -213,7 +215,7 @@
213 }; 215 };
214 wl127x_gpio: pinmux_wl127x_gpio_pin { 216 wl127x_gpio: pinmux_wl127x_gpio_pin {
215 pinctrl-single,pins = < 217 pinctrl-single,pins = <
216 OMAP3_WKUP_IOPAD(0x2a0c, PIN_INPUT | MUX_MODE4) /* sys_boot0.gpio_2 */ 218 OMAP3_WKUP_IOPAD(0x2a0a, PIN_INPUT | MUX_MODE4) /* sys_boot0.gpio_2 */
217 OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE4) /* sys_boot1.gpio_3 */ 219 OMAP3_WKUP_IOPAD(0x2a0c, PIN_OUTPUT | MUX_MODE4) /* sys_boot1.gpio_3 */
218 >; 220 >;
219 }; 221 };
@@ -260,6 +262,11 @@
260#include "twl4030.dtsi" 262#include "twl4030.dtsi"
261#include "twl4030_omap3.dtsi" 263#include "twl4030_omap3.dtsi"
262 264
265&vaux3 {
266 regulator-min-microvolt = <2800000>;
267 regulator-max-microvolt = <2800000>;
268};
269
263&twl { 270&twl {
264 twl_power: power { 271 twl_power: power {
265 compatible = "ti,twl4030-power-idle-osc-off", "ti,twl4030-power-idle"; 272 compatible = "ti,twl4030-power-idle-osc-off", "ti,twl4030-power-idle";
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index 063fdb65dc60..f07f9018c3e7 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -379,7 +379,7 @@
379 port@0 { 379 port@0 {
380 reg = <0>; 380 reg = <0>;
381 adv7511_in: endpoint { 381 adv7511_in: endpoint {
382 remote-endpoint = <&du_out_lvds0>; 382 remote-endpoint = <&lvds0_out>;
383 }; 383 };
384 }; 384 };
385 385
@@ -467,10 +467,8 @@
467 status = "okay"; 467 status = "okay";
468 468
469 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 722>, 469 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 722>,
470 <&cpg CPG_MOD 726>, <&cpg CPG_MOD 725>,
471 <&x13_clk>, <&x2_clk>; 470 <&x13_clk>, <&x2_clk>;
472 clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1", 471 clock-names = "du.0", "du.1", "du.2", "dclkin.0", "dclkin.1";
473 "dclkin.0", "dclkin.1";
474 472
475 ports { 473 ports {
476 port@0 { 474 port@0 {
@@ -478,12 +476,26 @@
478 remote-endpoint = <&adv7123_in>; 476 remote-endpoint = <&adv7123_in>;
479 }; 477 };
480 }; 478 };
479 };
480};
481
482&lvds0 {
483 status = "okay";
484
485 ports {
481 port@1 { 486 port@1 {
482 endpoint { 487 endpoint {
483 remote-endpoint = <&adv7511_in>; 488 remote-endpoint = <&adv7511_in>;
484 }; 489 };
485 }; 490 };
486 port@2 { 491 };
492};
493
494&lvds1 {
495 status = "okay";
496
497 ports {
498 port@1 {
487 lvds_connector: endpoint { 499 lvds_connector: endpoint {
488 }; 500 };
489 }; 501 };
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index e4367cecad18..05a0fc23ac88 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -1627,18 +1627,13 @@
1627 1627
1628 du: display@feb00000 { 1628 du: display@feb00000 {
1629 compatible = "renesas,du-r8a7790"; 1629 compatible = "renesas,du-r8a7790";
1630 reg = <0 0xfeb00000 0 0x70000>, 1630 reg = <0 0xfeb00000 0 0x70000>;
1631 <0 0xfeb90000 0 0x1c>,
1632 <0 0xfeb94000 0 0x1c>;
1633 reg-names = "du", "lvds.0", "lvds.1";
1634 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 1631 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
1635 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>, 1632 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
1636 <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>; 1633 <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>;
1637 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, 1634 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
1638 <&cpg CPG_MOD 722>, <&cpg CPG_MOD 726>, 1635 <&cpg CPG_MOD 722>;
1639 <&cpg CPG_MOD 725>; 1636 clock-names = "du.0", "du.1", "du.2";
1640 clock-names = "du.0", "du.1", "du.2", "lvds.0",
1641 "lvds.1";
1642 status = "disabled"; 1637 status = "disabled";
1643 1638
1644 ports { 1639 ports {
@@ -1653,11 +1648,65 @@
1653 port@1 { 1648 port@1 {
1654 reg = <1>; 1649 reg = <1>;
1655 du_out_lvds0: endpoint { 1650 du_out_lvds0: endpoint {
1651 remote-endpoint = <&lvds0_in>;
1656 }; 1652 };
1657 }; 1653 };
1658 port@2 { 1654 port@2 {
1659 reg = <2>; 1655 reg = <2>;
1660 du_out_lvds1: endpoint { 1656 du_out_lvds1: endpoint {
1657 remote-endpoint = <&lvds1_in>;
1658 };
1659 };
1660 };
1661 };
1662
1663 lvds0: lvds@feb90000 {
1664 compatible = "renesas,r8a7790-lvds";
1665 reg = <0 0xfeb90000 0 0x1c>;
1666 clocks = <&cpg CPG_MOD 726>;
1667 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1668 resets = <&cpg 726>;
1669 status = "disabled";
1670
1671 ports {
1672 #address-cells = <1>;
1673 #size-cells = <0>;
1674
1675 port@0 {
1676 reg = <0>;
1677 lvds0_in: endpoint {
1678 remote-endpoint = <&du_out_lvds0>;
1679 };
1680 };
1681 port@1 {
1682 reg = <1>;
1683 lvds0_out: endpoint {
1684 };
1685 };
1686 };
1687 };
1688
1689 lvds1: lvds@feb94000 {
1690 compatible = "renesas,r8a7790-lvds";
1691 reg = <0 0xfeb94000 0 0x1c>;
1692 clocks = <&cpg CPG_MOD 725>;
1693 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1694 resets = <&cpg 725>;
1695 status = "disabled";
1696
1697 ports {
1698 #address-cells = <1>;
1699 #size-cells = <0>;
1700
1701 port@0 {
1702 reg = <0>;
1703 lvds1_in: endpoint {
1704 remote-endpoint = <&du_out_lvds1>;
1705 };
1706 };
1707 port@1 {
1708 reg = <1>;
1709 lvds1_out: endpoint {
1661 }; 1710 };
1662 }; 1711 };
1663 }; 1712 };
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index f40321a1c917..9d7213a0b8b8 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -468,10 +468,9 @@
468 pinctrl-names = "default"; 468 pinctrl-names = "default";
469 status = "okay"; 469 status = "okay";
470 470
471 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>, 471 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
472 <&x13_clk>, <&x2_clk>; 472 <&x13_clk>, <&x2_clk>;
473 clock-names = "du.0", "du.1", "lvds.0", 473 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
474 "dclkin.0", "dclkin.1";
475 474
476 ports { 475 ports {
477 port@0 { 476 port@0 {
@@ -479,6 +478,13 @@
479 remote-endpoint = <&adv7511_in>; 478 remote-endpoint = <&adv7511_in>;
480 }; 479 };
481 }; 480 };
481 };
482};
483
484&lvds0 {
485 status = "okay";
486
487 ports {
482 port@1 { 488 port@1 {
483 lvds_connector: endpoint { 489 lvds_connector: endpoint {
484 }; 490 };
diff --git a/arch/arm/boot/dts/r8a7791-porter.dts b/arch/arm/boot/dts/r8a7791-porter.dts
index c14e6fe9e4f6..ae9ed9ff53ef 100644
--- a/arch/arm/boot/dts/r8a7791-porter.dts
+++ b/arch/arm/boot/dts/r8a7791-porter.dts
@@ -441,10 +441,9 @@
441 pinctrl-names = "default"; 441 pinctrl-names = "default";
442 status = "okay"; 442 status = "okay";
443 443
444 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>, 444 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
445 <&x3_clk>, <&x16_clk>; 445 <&x3_clk>, <&x16_clk>;
446 clock-names = "du.0", "du.1", "lvds.0", 446 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
447 "dclkin.0", "dclkin.1";
448 447
449 ports { 448 ports {
450 port@0 { 449 port@0 {
@@ -455,6 +454,17 @@
455 }; 454 };
456}; 455};
457 456
457&lvds0 {
458 status = "okay";
459
460 ports {
461 port@1 {
462 lvds_connector: endpoint {
463 };
464 };
465 };
466};
467
458&rcar_sound { 468&rcar_sound {
459 pinctrl-0 = <&ssi_pins &audio_clk_pins>; 469 pinctrl-0 = <&ssi_pins &audio_clk_pins>;
460 pinctrl-names = "default"; 470 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index f11dab71b03a..506b20885413 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -1633,15 +1633,12 @@
1633 1633
1634 du: display@feb00000 { 1634 du: display@feb00000 {
1635 compatible = "renesas,du-r8a7791"; 1635 compatible = "renesas,du-r8a7791";
1636 reg = <0 0xfeb00000 0 0x40000>, 1636 reg = <0 0xfeb00000 0 0x40000>;
1637 <0 0xfeb90000 0 0x1c>;
1638 reg-names = "du", "lvds.0";
1639 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 1637 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
1640 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; 1638 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
1641 clocks = <&cpg CPG_MOD 724>, 1639 clocks = <&cpg CPG_MOD 724>,
1642 <&cpg CPG_MOD 723>, 1640 <&cpg CPG_MOD 723>;
1643 <&cpg CPG_MOD 726>; 1641 clock-names = "du.0", "du.1";
1644 clock-names = "du.0", "du.1", "lvds.0";
1645 status = "disabled"; 1642 status = "disabled";
1646 1643
1647 ports { 1644 ports {
@@ -1656,6 +1653,33 @@
1656 port@1 { 1653 port@1 {
1657 reg = <1>; 1654 reg = <1>;
1658 du_out_lvds0: endpoint { 1655 du_out_lvds0: endpoint {
1656 remote-endpoint = <&lvds0_in>;
1657 };
1658 };
1659 };
1660 };
1661
1662 lvds0: lvds@feb90000 {
1663 compatible = "renesas,r8a7791-lvds";
1664 reg = <0 0xfeb90000 0 0x1c>;
1665 clocks = <&cpg CPG_MOD 726>;
1666 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1667 resets = <&cpg 726>;
1668 status = "disabled";
1669
1670 ports {
1671 #address-cells = <1>;
1672 #size-cells = <0>;
1673
1674 port@0 {
1675 reg = <0>;
1676 lvds0_in: endpoint {
1677 remote-endpoint = <&du_out_lvds0>;
1678 };
1679 };
1680 port@1 {
1681 reg = <1>;
1682 lvds0_out: endpoint {
1659 }; 1683 };
1660 }; 1684 };
1661 }; 1685 };
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
index 9ed6961f2d9a..96e117d8b2cc 100644
--- a/arch/arm/boot/dts/r8a7793-gose.dts
+++ b/arch/arm/boot/dts/r8a7793-gose.dts
@@ -447,10 +447,9 @@
447 pinctrl-names = "default"; 447 pinctrl-names = "default";
448 status = "okay"; 448 status = "okay";
449 449
450 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>, 450 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
451 <&x13_clk>, <&x2_clk>; 451 <&x13_clk>, <&x2_clk>;
452 clock-names = "du.0", "du.1", "lvds.0", 452 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
453 "dclkin.0", "dclkin.1";
454 453
455 ports { 454 ports {
456 port@0 { 455 port@0 {
@@ -458,6 +457,11 @@
458 remote-endpoint = <&adv7511_in>; 457 remote-endpoint = <&adv7511_in>;
459 }; 458 };
460 }; 459 };
460 };
461};
462
463&lvds0 {
464 ports {
461 port@1 { 465 port@1 {
462 lvds_connector: endpoint { 466 lvds_connector: endpoint {
463 }; 467 };
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index f9c5a557107d..4f526030dc7c 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -1292,15 +1292,12 @@
1292 1292
1293 du: display@feb00000 { 1293 du: display@feb00000 {
1294 compatible = "renesas,du-r8a7793"; 1294 compatible = "renesas,du-r8a7793";
1295 reg = <0 0xfeb00000 0 0x40000>, 1295 reg = <0 0xfeb00000 0 0x40000>;
1296 <0 0xfeb90000 0 0x1c>;
1297 reg-names = "du", "lvds.0";
1298 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 1296 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
1299 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; 1297 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
1300 clocks = <&cpg CPG_MOD 724>, 1298 clocks = <&cpg CPG_MOD 724>,
1301 <&cpg CPG_MOD 723>, 1299 <&cpg CPG_MOD 723>;
1302 <&cpg CPG_MOD 726>; 1300 clock-names = "du.0", "du.1";
1303 clock-names = "du.0", "du.1", "lvds.0";
1304 status = "disabled"; 1301 status = "disabled";
1305 1302
1306 ports { 1303 ports {
@@ -1315,6 +1312,34 @@
1315 port@1 { 1312 port@1 {
1316 reg = <1>; 1313 reg = <1>;
1317 du_out_lvds0: endpoint { 1314 du_out_lvds0: endpoint {
1315 remote-endpoint = <&lvds0_in>;
1316 };
1317 };
1318 };
1319 };
1320
1321 lvds0: lvds@feb90000 {
1322 compatible = "renesas,r8a7793-lvds";
1323 reg = <0 0xfeb90000 0 0x1c>;
1324 clocks = <&cpg CPG_MOD 726>;
1325 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
1326 resets = <&cpg 726>;
1327
1328 status = "disabled";
1329
1330 ports {
1331 #address-cells = <1>;
1332 #size-cells = <0>;
1333
1334 port@0 {
1335 reg = <0>;
1336 lvds0_in: endpoint {
1337 remote-endpoint = <&du_out_lvds0>;
1338 };
1339 };
1340 port@1 {
1341 reg = <1>;
1342 lvds0_out: endpoint {
1318 }; 1343 };
1319 }; 1344 };
1320 }; 1345 };
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi
index 0a7136462a1a..983dd5c14794 100644
--- a/arch/arm/boot/dts/tegra20.dtsi
+++ b/arch/arm/boot/dts/tegra20.dtsi
@@ -741,7 +741,7 @@
741 phy_type = "ulpi"; 741 phy_type = "ulpi";
742 clocks = <&tegra_car TEGRA20_CLK_USB2>, 742 clocks = <&tegra_car TEGRA20_CLK_USB2>,
743 <&tegra_car TEGRA20_CLK_PLL_U>, 743 <&tegra_car TEGRA20_CLK_PLL_U>,
744 <&tegra_car TEGRA20_CLK_PLL_P_OUT4>; 744 <&tegra_car TEGRA20_CLK_CDEV2>;
745 clock-names = "reg", "pll_u", "ulpi-link"; 745 clock-names = "reg", "pll_u", "ulpi-link";
746 resets = <&tegra_car 58>, <&tegra_car 22>; 746 resets = <&tegra_car 58>, <&tegra_car 22>;
747 reset-names = "usb", "utmi-pads"; 747 reset-names = "usb", "utmi-pads";
diff --git a/arch/arm/mach-davinci/board-da830-evm.c b/arch/arm/mach-davinci/board-da830-evm.c
index 004f9c8de032..d1e8ce7b4bd2 100644
--- a/arch/arm/mach-davinci/board-da830-evm.c
+++ b/arch/arm/mach-davinci/board-da830-evm.c
@@ -205,12 +205,17 @@ static const short da830_evm_mmc_sd_pins[] = {
205 -1 205 -1
206}; 206};
207 207
208#define DA830_MMCSD_WP_PIN GPIO_TO_PIN(2, 1)
209#define DA830_MMCSD_CD_PIN GPIO_TO_PIN(2, 2)
210
208static struct gpiod_lookup_table mmc_gpios_table = { 211static struct gpiod_lookup_table mmc_gpios_table = {
209 .dev_id = "da830-mmc.0", 212 .dev_id = "da830-mmc.0",
210 .table = { 213 .table = {
211 /* gpio chip 1 contains gpio range 32-63 */ 214 /* gpio chip 1 contains gpio range 32-63 */
212 GPIO_LOOKUP("davinci_gpio.1", 2, "cd", GPIO_ACTIVE_LOW), 215 GPIO_LOOKUP("davinci_gpio.0", DA830_MMCSD_CD_PIN, "cd",
213 GPIO_LOOKUP("davinci_gpio.1", 1, "wp", GPIO_ACTIVE_LOW), 216 GPIO_ACTIVE_LOW),
217 GPIO_LOOKUP("davinci_gpio.0", DA830_MMCSD_WP_PIN, "wp",
218 GPIO_ACTIVE_LOW),
214 }, 219 },
215}; 220};
216 221
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
index 3063478bcc36..158ed9a1483f 100644
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -763,12 +763,17 @@ static const short da850_evm_mcasp_pins[] __initconst = {
763 -1 763 -1
764}; 764};
765 765
766#define DA850_MMCSD_CD_PIN GPIO_TO_PIN(4, 0)
767#define DA850_MMCSD_WP_PIN GPIO_TO_PIN(4, 1)
768
766static struct gpiod_lookup_table mmc_gpios_table = { 769static struct gpiod_lookup_table mmc_gpios_table = {
767 .dev_id = "da830-mmc.0", 770 .dev_id = "da830-mmc.0",
768 .table = { 771 .table = {
769 /* gpio chip 2 contains gpio range 64-95 */ 772 /* gpio chip 2 contains gpio range 64-95 */
770 GPIO_LOOKUP("davinci_gpio.2", 0, "cd", GPIO_ACTIVE_LOW), 773 GPIO_LOOKUP("davinci_gpio.0", DA850_MMCSD_CD_PIN, "cd",
771 GPIO_LOOKUP("davinci_gpio.2", 1, "wp", GPIO_ACTIVE_LOW), 774 GPIO_ACTIVE_LOW),
775 GPIO_LOOKUP("davinci_gpio.0", DA850_MMCSD_WP_PIN, "wp",
776 GPIO_ACTIVE_LOW),
772 }, 777 },
773}; 778};
774 779
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c
index cb30637d9eaf..23ab9e8bc04c 100644
--- a/arch/arm/mach-davinci/board-dm355-evm.c
+++ b/arch/arm/mach-davinci/board-dm355-evm.c
@@ -19,6 +19,7 @@
19#include <linux/gpio.h> 19#include <linux/gpio.h>
20#include <linux/gpio/machine.h> 20#include <linux/gpio/machine.h>
21#include <linux/clk.h> 21#include <linux/clk.h>
22#include <linux/dm9000.h>
22#include <linux/videodev2.h> 23#include <linux/videodev2.h>
23#include <media/i2c/tvp514x.h> 24#include <media/i2c/tvp514x.h>
24#include <linux/spi/spi.h> 25#include <linux/spi/spi.h>
@@ -109,12 +110,15 @@ static struct platform_device davinci_nand_device = {
109 }, 110 },
110}; 111};
111 112
113#define DM355_I2C_SDA_PIN GPIO_TO_PIN(0, 15)
114#define DM355_I2C_SCL_PIN GPIO_TO_PIN(0, 14)
115
112static struct gpiod_lookup_table i2c_recovery_gpiod_table = { 116static struct gpiod_lookup_table i2c_recovery_gpiod_table = {
113 .dev_id = "i2c_davinci", 117 .dev_id = "i2c_davinci.1",
114 .table = { 118 .table = {
115 GPIO_LOOKUP("davinci_gpio", 15, "sda", 119 GPIO_LOOKUP("davinci_gpio.0", DM355_I2C_SDA_PIN, "sda",
116 GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), 120 GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
117 GPIO_LOOKUP("davinci_gpio", 14, "scl", 121 GPIO_LOOKUP("davinci_gpio.0", DM355_I2C_SCL_PIN, "scl",
118 GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), 122 GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
119 }, 123 },
120}; 124};
@@ -179,11 +183,16 @@ static struct resource dm355evm_dm9000_rsrc[] = {
179 }, 183 },
180}; 184};
181 185
186static struct dm9000_plat_data dm335evm_dm9000_platdata;
187
182static struct platform_device dm355evm_dm9000 = { 188static struct platform_device dm355evm_dm9000 = {
183 .name = "dm9000", 189 .name = "dm9000",
184 .id = -1, 190 .id = -1,
185 .resource = dm355evm_dm9000_rsrc, 191 .resource = dm355evm_dm9000_rsrc,
186 .num_resources = ARRAY_SIZE(dm355evm_dm9000_rsrc), 192 .num_resources = ARRAY_SIZE(dm355evm_dm9000_rsrc),
193 .dev = {
194 .platform_data = &dm335evm_dm9000_platdata,
195 },
187}; 196};
188 197
189static struct tvp514x_platform_data tvp5146_pdata = { 198static struct tvp514x_platform_data tvp5146_pdata = {
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c
index 95b55aae1366..509e64ab1994 100644
--- a/arch/arm/mach-davinci/board-dm644x-evm.c
+++ b/arch/arm/mach-davinci/board-dm644x-evm.c
@@ -17,6 +17,7 @@
17#include <linux/i2c.h> 17#include <linux/i2c.h>
18#include <linux/platform_data/pcf857x.h> 18#include <linux/platform_data/pcf857x.h>
19#include <linux/platform_data/at24.h> 19#include <linux/platform_data/at24.h>
20#include <linux/platform_data/gpio-davinci.h>
20#include <linux/mtd/mtd.h> 21#include <linux/mtd/mtd.h>
21#include <linux/mtd/rawnand.h> 22#include <linux/mtd/rawnand.h>
22#include <linux/mtd/partitions.h> 23#include <linux/mtd/partitions.h>
@@ -596,12 +597,15 @@ static struct i2c_board_info __initdata i2c_info[] = {
596 }, 597 },
597}; 598};
598 599
600#define DM644X_I2C_SDA_PIN GPIO_TO_PIN(2, 12)
601#define DM644X_I2C_SCL_PIN GPIO_TO_PIN(2, 11)
602
599static struct gpiod_lookup_table i2c_recovery_gpiod_table = { 603static struct gpiod_lookup_table i2c_recovery_gpiod_table = {
600 .dev_id = "i2c_davinci", 604 .dev_id = "i2c_davinci.1",
601 .table = { 605 .table = {
602 GPIO_LOOKUP("davinci_gpio", 44, "sda", 606 GPIO_LOOKUP("davinci_gpio.0", DM644X_I2C_SDA_PIN, "sda",
603 GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), 607 GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
604 GPIO_LOOKUP("davinci_gpio", 43, "scl", 608 GPIO_LOOKUP("davinci_gpio.0", DM644X_I2C_SCL_PIN, "scl",
605 GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), 609 GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
606 }, 610 },
607}; 611};
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c
index 2d37f5b0e1f5..a3c0d1e87647 100644
--- a/arch/arm/mach-davinci/board-dm646x-evm.c
+++ b/arch/arm/mach-davinci/board-dm646x-evm.c
@@ -532,11 +532,12 @@ static struct vpif_display_config dm646x_vpif_display_config = {
532 .set_clock = set_vpif_clock, 532 .set_clock = set_vpif_clock,
533 .subdevinfo = dm646x_vpif_subdev, 533 .subdevinfo = dm646x_vpif_subdev,
534 .subdev_count = ARRAY_SIZE(dm646x_vpif_subdev), 534 .subdev_count = ARRAY_SIZE(dm646x_vpif_subdev),
535 .i2c_adapter_id = 1,
535 .chan_config[0] = { 536 .chan_config[0] = {
536 .outputs = dm6467_ch0_outputs, 537 .outputs = dm6467_ch0_outputs,
537 .output_count = ARRAY_SIZE(dm6467_ch0_outputs), 538 .output_count = ARRAY_SIZE(dm6467_ch0_outputs),
538 }, 539 },
539 .card_name = "DM646x EVM", 540 .card_name = "DM646x EVM Video Display",
540}; 541};
541 542
542/** 543/**
@@ -674,6 +675,7 @@ static struct vpif_capture_config dm646x_vpif_capture_cfg = {
674 .setup_input_channel_mode = setup_vpif_input_channel_mode, 675 .setup_input_channel_mode = setup_vpif_input_channel_mode,
675 .subdev_info = vpif_capture_sdev_info, 676 .subdev_info = vpif_capture_sdev_info,
676 .subdev_count = ARRAY_SIZE(vpif_capture_sdev_info), 677 .subdev_count = ARRAY_SIZE(vpif_capture_sdev_info),
678 .i2c_adapter_id = 1,
677 .chan_config[0] = { 679 .chan_config[0] = {
678 .inputs = dm6467_ch0_inputs, 680 .inputs = dm6467_ch0_inputs,
679 .input_count = ARRAY_SIZE(dm6467_ch0_inputs), 681 .input_count = ARRAY_SIZE(dm6467_ch0_inputs),
@@ -694,6 +696,7 @@ static struct vpif_capture_config dm646x_vpif_capture_cfg = {
694 .fid_pol = 0, 696 .fid_pol = 0,
695 }, 697 },
696 }, 698 },
699 .card_name = "DM646x EVM Video Capture",
697}; 700};
698 701
699static void __init evm_init_video(void) 702static void __init evm_init_video(void)
diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c
index 0d32042b728f..be8b892a6ea7 100644
--- a/arch/arm/mach-davinci/board-omapl138-hawk.c
+++ b/arch/arm/mach-davinci/board-omapl138-hawk.c
@@ -123,12 +123,16 @@ static const short hawk_mmcsd0_pins[] = {
123 -1 123 -1
124}; 124};
125 125
126#define DA850_HAWK_MMCSD_CD_PIN GPIO_TO_PIN(3, 12)
127#define DA850_HAWK_MMCSD_WP_PIN GPIO_TO_PIN(3, 13)
128
126static struct gpiod_lookup_table mmc_gpios_table = { 129static struct gpiod_lookup_table mmc_gpios_table = {
127 .dev_id = "da830-mmc.0", 130 .dev_id = "da830-mmc.0",
128 .table = { 131 .table = {
129 /* CD: gpio3_12: gpio60: chip 1 contains gpio range 32-63*/ 132 GPIO_LOOKUP("davinci_gpio.0", DA850_HAWK_MMCSD_CD_PIN, "cd",
130 GPIO_LOOKUP("davinci_gpio.0", 28, "cd", GPIO_ACTIVE_LOW), 133 GPIO_ACTIVE_LOW),
131 GPIO_LOOKUP("davinci_gpio.0", 29, "wp", GPIO_ACTIVE_LOW), 134 GPIO_LOOKUP("davinci_gpio.0", DA850_HAWK_MMCSD_WP_PIN, "wp",
135 GPIO_ACTIVE_LOW),
132 }, 136 },
133}; 137};
134 138
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
index 109ab1fa0d2c..c32ca27ab343 100644
--- a/arch/arm/mach-davinci/dm646x.c
+++ b/arch/arm/mach-davinci/dm646x.c
@@ -488,7 +488,8 @@ static u8 dm646x_default_priorities[DAVINCI_N_AINTC_IRQ] = {
488 [IRQ_DM646X_MCASP0TXINT] = 7, 488 [IRQ_DM646X_MCASP0TXINT] = 7,
489 [IRQ_DM646X_MCASP0RXINT] = 7, 489 [IRQ_DM646X_MCASP0RXINT] = 7,
490 [IRQ_DM646X_RESERVED_3] = 7, 490 [IRQ_DM646X_RESERVED_3] = 7,
491 [IRQ_DM646X_MCASP1TXINT] = 7, /* clockevent */ 491 [IRQ_DM646X_MCASP1TXINT] = 7,
492 [IRQ_TINT0_TINT12] = 7, /* clockevent */
492 [IRQ_TINT0_TINT34] = 7, /* clocksource */ 493 [IRQ_TINT0_TINT34] = 7, /* clocksource */
493 [IRQ_TINT1_TINT12] = 7, /* DSP timer */ 494 [IRQ_TINT1_TINT12] = 7, /* DSP timer */
494 [IRQ_TINT1_TINT34] = 7, /* system tick */ 495 [IRQ_TINT1_TINT34] = 7, /* system tick */
diff --git a/arch/arm/mach-keystone/pm_domain.c b/arch/arm/mach-keystone/pm_domain.c
index fe57e2692629..abca83d22ff3 100644
--- a/arch/arm/mach-keystone/pm_domain.c
+++ b/arch/arm/mach-keystone/pm_domain.c
@@ -29,6 +29,7 @@ static struct dev_pm_domain keystone_pm_domain = {
29 29
30static struct pm_clk_notifier_block platform_domain_notifier = { 30static struct pm_clk_notifier_block platform_domain_notifier = {
31 .pm_domain = &keystone_pm_domain, 31 .pm_domain = &keystone_pm_domain,
32 .con_ids = { NULL },
32}; 33};
33 34
34static const struct of_device_id of_keystone_table[] = { 35static const struct of_device_id of_keystone_table[] = {
diff --git a/arch/arm/mach-omap1/ams-delta-fiq.c b/arch/arm/mach-omap1/ams-delta-fiq.c
index 793a24a53c52..d7ca9e2b40d2 100644
--- a/arch/arm/mach-omap1/ams-delta-fiq.c
+++ b/arch/arm/mach-omap1/ams-delta-fiq.c
@@ -58,22 +58,24 @@ static irqreturn_t deferred_fiq(int irq, void *dev_id)
58 irq_num = gpio_to_irq(gpio); 58 irq_num = gpio_to_irq(gpio);
59 fiq_count = fiq_buffer[FIQ_CNT_INT_00 + gpio]; 59 fiq_count = fiq_buffer[FIQ_CNT_INT_00 + gpio];
60 60
61 while (irq_counter[gpio] < fiq_count) { 61 if (irq_counter[gpio] < fiq_count &&
62 if (gpio != AMS_DELTA_GPIO_PIN_KEYBRD_CLK) { 62 gpio != AMS_DELTA_GPIO_PIN_KEYBRD_CLK) {
63 struct irq_data *d = irq_get_irq_data(irq_num); 63 struct irq_data *d = irq_get_irq_data(irq_num);
64 64
65 /* 65 /*
66 * It looks like handle_edge_irq() that 66 * handle_simple_irq() that OMAP GPIO edge
67 * OMAP GPIO edge interrupts default to, 67 * interrupts default to since commit 80ac93c27441
68 * expects interrupt already unmasked. 68 * requires interrupt already acked and unmasked.
69 */ 69 */
70 if (irq_chip && irq_chip->irq_unmask) 70 if (irq_chip) {
71 if (irq_chip->irq_ack)
72 irq_chip->irq_ack(d);
73 if (irq_chip->irq_unmask)
71 irq_chip->irq_unmask(d); 74 irq_chip->irq_unmask(d);
72 } 75 }
73 generic_handle_irq(irq_num);
74
75 irq_counter[gpio]++;
76 } 76 }
77 for (; irq_counter[gpio] < fiq_count; irq_counter[gpio]++)
78 generic_handle_irq(irq_num);
77 } 79 }
78 return IRQ_HANDLED; 80 return IRQ_HANDLED;
79} 81}
diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
index 76eb6ec5f157..1e6a967cd2d5 100644
--- a/arch/arm/mach-omap2/powerdomain.c
+++ b/arch/arm/mach-omap2/powerdomain.c
@@ -188,7 +188,7 @@ static int _pwrdm_state_switch(struct powerdomain *pwrdm, int flag)
188 ((prev & OMAP_POWERSTATE_MASK) << 0)); 188 ((prev & OMAP_POWERSTATE_MASK) << 0));
189 trace_power_domain_target_rcuidle(pwrdm->name, 189 trace_power_domain_target_rcuidle(pwrdm->name,
190 trace_state, 190 trace_state,
191 smp_processor_id()); 191 raw_smp_processor_id());
192 } 192 }
193 break; 193 break;
194 default: 194 default:
@@ -518,7 +518,7 @@ int pwrdm_set_next_pwrst(struct powerdomain *pwrdm, u8 pwrst)
518 if (arch_pwrdm && arch_pwrdm->pwrdm_set_next_pwrst) { 518 if (arch_pwrdm && arch_pwrdm->pwrdm_set_next_pwrst) {
519 /* Trace the pwrdm desired target state */ 519 /* Trace the pwrdm desired target state */
520 trace_power_domain_target_rcuidle(pwrdm->name, pwrst, 520 trace_power_domain_target_rcuidle(pwrdm->name, pwrst,
521 smp_processor_id()); 521 raw_smp_processor_id());
522 /* Program the pwrdm desired target state */ 522 /* Program the pwrdm desired target state */
523 ret = arch_pwrdm->pwrdm_set_next_pwrst(pwrdm, pwrst); 523 ret = arch_pwrdm->pwrdm_set_next_pwrst(pwrdm, pwrst);
524 } 524 }
diff --git a/arch/arm64/boot/dts/exynos/exynos5433.dtsi b/arch/arm64/boot/dts/exynos/exynos5433.dtsi
index c0231d077fa6..1ad8677f6a0a 100644
--- a/arch/arm64/boot/dts/exynos/exynos5433.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos5433.dtsi
@@ -1317,7 +1317,7 @@
1317 reg = <0x14d60000 0x100>; 1317 reg = <0x14d60000 0x100>;
1318 dmas = <&pdma0 31 &pdma0 30>; 1318 dmas = <&pdma0 31 &pdma0 30>;
1319 dma-names = "tx", "rx"; 1319 dma-names = "tx", "rx";
1320 interrupts = <GIC_SPI 435 IRQ_TYPE_NONE>; 1320 interrupts = <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH>;
1321 clocks = <&cmu_peric CLK_PCLK_I2S1>, 1321 clocks = <&cmu_peric CLK_PCLK_I2S1>,
1322 <&cmu_peric CLK_PCLK_I2S1>, 1322 <&cmu_peric CLK_PCLK_I2S1>,
1323 <&cmu_peric CLK_SCLK_I2S1>; 1323 <&cmu_peric CLK_SCLK_I2S1>;
diff --git a/arch/arm64/boot/dts/marvell/armada-cp110.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110.dtsi
index 48cad7919efa..ed2f1237ea1e 100644
--- a/arch/arm64/boot/dts/marvell/armada-cp110.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-cp110.dtsi
@@ -38,9 +38,10 @@
38 compatible = "marvell,armada-7k-pp22"; 38 compatible = "marvell,armada-7k-pp22";
39 reg = <0x0 0x100000>, <0x129000 0xb000>; 39 reg = <0x0 0x100000>, <0x129000 0xb000>;
40 clocks = <&CP110_LABEL(clk) 1 3>, <&CP110_LABEL(clk) 1 9>, 40 clocks = <&CP110_LABEL(clk) 1 3>, <&CP110_LABEL(clk) 1 9>,
41 <&CP110_LABEL(clk) 1 5>, <&CP110_LABEL(clk) 1 18>; 41 <&CP110_LABEL(clk) 1 5>, <&CP110_LABEL(clk) 1 6>,
42 <&CP110_LABEL(clk) 1 18>;
42 clock-names = "pp_clk", "gop_clk", 43 clock-names = "pp_clk", "gop_clk",
43 "mg_clk", "axi_clk"; 44 "mg_clk", "mg_core_clk", "axi_clk";
44 marvell,system-controller = <&CP110_LABEL(syscon0)>; 45 marvell,system-controller = <&CP110_LABEL(syscon0)>;
45 status = "disabled"; 46 status = "disabled";
46 dma-coherent; 47 dma-coherent;
@@ -141,6 +142,8 @@
141 #size-cells = <0>; 142 #size-cells = <0>;
142 compatible = "marvell,xmdio"; 143 compatible = "marvell,xmdio";
143 reg = <0x12a600 0x10>; 144 reg = <0x12a600 0x10>;
145 clocks = <&CP110_LABEL(clk) 1 5>,
146 <&CP110_LABEL(clk) 1 6>, <&CP110_LABEL(clk) 1 18>;
144 status = "disabled"; 147 status = "disabled";
145 }; 148 };
146 149
diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi b/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi
index a8baad7b80df..13f57fff1477 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi
@@ -46,7 +46,7 @@
46 compatible = "ethernet-phy-ieee802.3-c22"; 46 compatible = "ethernet-phy-ieee802.3-c22";
47 reg = <0x0>; 47 reg = <0x0>;
48 interrupt-parent = <&gpio>; 48 interrupt-parent = <&gpio>;
49 interrupts = <TEGRA_MAIN_GPIO(M, 5) IRQ_TYPE_LEVEL_HIGH>; 49 interrupts = <TEGRA_MAIN_GPIO(M, 5) IRQ_TYPE_LEVEL_LOW>;
50 }; 50 };
51 }; 51 };
52 }; 52 };
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
index e62bda1cf2d9..c32dd3419c87 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
@@ -414,7 +414,7 @@
414 mmc-ddr-1_8v; 414 mmc-ddr-1_8v;
415 mmc-hs200-1_8v; 415 mmc-hs200-1_8v;
416 mmc-pwrseq = <&emmc_pwrseq>; 416 mmc-pwrseq = <&emmc_pwrseq>;
417 cdns,phy-input-delay-legacy = <4>; 417 cdns,phy-input-delay-legacy = <9>;
418 cdns,phy-input-delay-mmc-highspeed = <2>; 418 cdns,phy-input-delay-mmc-highspeed = <2>;
419 cdns,phy-input-delay-mmc-ddr = <3>; 419 cdns,phy-input-delay-mmc-ddr = <3>;
420 cdns,phy-dll-delay-sdclk = <21>; 420 cdns,phy-dll-delay-sdclk = <21>;
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts b/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
index 2c1a92fafbfb..440c2e6a638b 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
@@ -67,3 +67,11 @@
67 reg = <0>; 67 reg = <0>;
68 }; 68 };
69}; 69};
70
71&pinctrl_ether_rgmii {
72 tx {
73 pins = "RGMII_TXCLK", "RGMII_TXD0", "RGMII_TXD1",
74 "RGMII_TXD2", "RGMII_TXD3", "RGMII_TXCTL";
75 drive-strength = <9>;
76 };
77};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
index 9efe20d07589..3a5ed789c056 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
@@ -519,7 +519,7 @@
519 mmc-ddr-1_8v; 519 mmc-ddr-1_8v;
520 mmc-hs200-1_8v; 520 mmc-hs200-1_8v;
521 mmc-pwrseq = <&emmc_pwrseq>; 521 mmc-pwrseq = <&emmc_pwrseq>;
522 cdns,phy-input-delay-legacy = <4>; 522 cdns,phy-input-delay-legacy = <9>;
523 cdns,phy-input-delay-mmc-highspeed = <2>; 523 cdns,phy-input-delay-mmc-highspeed = <2>;
524 cdns,phy-input-delay-mmc-ddr = <3>; 524 cdns,phy-input-delay-mmc-ddr = <3>;
525 cdns,phy-dll-delay-sdclk = <21>; 525 cdns,phy-dll-delay-sdclk = <21>;
diff --git a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
index 7c8f710d9bfa..e85d6ddea3c2 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
+++ b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
@@ -334,7 +334,7 @@
334 mmc-ddr-1_8v; 334 mmc-ddr-1_8v;
335 mmc-hs200-1_8v; 335 mmc-hs200-1_8v;
336 mmc-pwrseq = <&emmc_pwrseq>; 336 mmc-pwrseq = <&emmc_pwrseq>;
337 cdns,phy-input-delay-legacy = <4>; 337 cdns,phy-input-delay-legacy = <9>;
338 cdns,phy-input-delay-mmc-highspeed = <2>; 338 cdns,phy-input-delay-mmc-highspeed = <2>;
339 cdns,phy-input-delay-mmc-ddr = <3>; 339 cdns,phy-input-delay-mmc-ddr = <3>;
340 cdns,phy-dll-delay-sdclk = <21>; 340 cdns,phy-dll-delay-sdclk = <21>;
diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c
index 14b147135a0c..2455be8cbc4f 100644
--- a/drivers/firmware/arm_scmi/driver.c
+++ b/drivers/firmware/arm_scmi/driver.c
@@ -778,6 +778,7 @@ scmi_create_protocol_device(struct device_node *np, struct scmi_info *info,
778 if (scmi_mbox_chan_setup(info, &sdev->dev, prot_id)) { 778 if (scmi_mbox_chan_setup(info, &sdev->dev, prot_id)) {
779 dev_err(&sdev->dev, "failed to setup transport\n"); 779 dev_err(&sdev->dev, "failed to setup transport\n");
780 scmi_device_destroy(sdev); 780 scmi_device_destroy(sdev);
781 return;
781 } 782 }
782 783
783 /* setup handle now as the transport is ready */ 784 /* setup handle now as the transport is ready */
diff --git a/drivers/reset/reset-uniphier.c b/drivers/reset/reset-uniphier.c
index 360e06b20c53..ac18f2f27881 100644
--- a/drivers/reset/reset-uniphier.c
+++ b/drivers/reset/reset-uniphier.c
@@ -110,7 +110,7 @@ static const struct uniphier_reset_data uniphier_ld20_sys_reset_data[] = {
110 UNIPHIER_RESETX(4, 0x200c, 2), /* eMMC */ 110 UNIPHIER_RESETX(4, 0x200c, 2), /* eMMC */
111 UNIPHIER_RESETX(6, 0x200c, 6), /* Ether */ 111 UNIPHIER_RESETX(6, 0x200c, 6), /* Ether */
112 UNIPHIER_RESETX(8, 0x200c, 8), /* STDMAC (HSC) */ 112 UNIPHIER_RESETX(8, 0x200c, 8), /* STDMAC (HSC) */
113 UNIPHIER_RESETX(12, 0x200c, 5), /* GIO (PCIe, USB3) */ 113 UNIPHIER_RESETX(14, 0x200c, 5), /* USB30 */
114 UNIPHIER_RESETX(16, 0x200c, 12), /* USB30-PHY0 */ 114 UNIPHIER_RESETX(16, 0x200c, 12), /* USB30-PHY0 */
115 UNIPHIER_RESETX(17, 0x200c, 13), /* USB30-PHY1 */ 115 UNIPHIER_RESETX(17, 0x200c, 13), /* USB30-PHY1 */
116 UNIPHIER_RESETX(18, 0x200c, 14), /* USB30-PHY2 */ 116 UNIPHIER_RESETX(18, 0x200c, 14), /* USB30-PHY2 */
@@ -127,8 +127,8 @@ static const struct uniphier_reset_data uniphier_pxs3_sys_reset_data[] = {
127 UNIPHIER_RESETX(6, 0x200c, 9), /* Ether0 */ 127 UNIPHIER_RESETX(6, 0x200c, 9), /* Ether0 */
128 UNIPHIER_RESETX(7, 0x200c, 10), /* Ether1 */ 128 UNIPHIER_RESETX(7, 0x200c, 10), /* Ether1 */
129 UNIPHIER_RESETX(8, 0x200c, 12), /* STDMAC */ 129 UNIPHIER_RESETX(8, 0x200c, 12), /* STDMAC */
130 UNIPHIER_RESETX(12, 0x200c, 4), /* USB30 link (GIO0) */ 130 UNIPHIER_RESETX(12, 0x200c, 4), /* USB30 link */
131 UNIPHIER_RESETX(13, 0x200c, 5), /* USB31 link (GIO1) */ 131 UNIPHIER_RESETX(13, 0x200c, 5), /* USB31 link */
132 UNIPHIER_RESETX(16, 0x200c, 16), /* USB30-PHY0 */ 132 UNIPHIER_RESETX(16, 0x200c, 16), /* USB30-PHY0 */
133 UNIPHIER_RESETX(17, 0x200c, 18), /* USB30-PHY1 */ 133 UNIPHIER_RESETX(17, 0x200c, 18), /* USB30-PHY1 */
134 UNIPHIER_RESETX(18, 0x200c, 20), /* USB30-PHY2 */ 134 UNIPHIER_RESETX(18, 0x200c, 20), /* USB30-PHY2 */
diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c
index 0124a91c8d71..dd46b758852a 100644
--- a/drivers/tee/tee_core.c
+++ b/drivers/tee/tee_core.c
@@ -238,6 +238,17 @@ static int params_from_user(struct tee_context *ctx, struct tee_param *params,
238 if (IS_ERR(shm)) 238 if (IS_ERR(shm))
239 return PTR_ERR(shm); 239 return PTR_ERR(shm);
240 240
241 /*
242 * Ensure offset + size does not overflow offset
243 * and does not overflow the size of the referred
244 * shared memory object.
245 */
246 if ((ip.a + ip.b) < ip.a ||
247 (ip.a + ip.b) > shm->size) {
248 tee_shm_put(shm);
249 return -EINVAL;
250 }
251
241 params[n].u.memref.shm_offs = ip.a; 252 params[n].u.memref.shm_offs = ip.a;
242 params[n].u.memref.size = ip.b; 253 params[n].u.memref.size = ip.b;
243 params[n].u.memref.shm = shm; 254 params[n].u.memref.shm = shm;
diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c
index 556960a1bab3..07d3be6f0780 100644
--- a/drivers/tee/tee_shm.c
+++ b/drivers/tee/tee_shm.c
@@ -360,9 +360,10 @@ int tee_shm_get_fd(struct tee_shm *shm)
360 if (!(shm->flags & TEE_SHM_DMA_BUF)) 360 if (!(shm->flags & TEE_SHM_DMA_BUF))
361 return -EINVAL; 361 return -EINVAL;
362 362
363 get_dma_buf(shm->dmabuf);
363 fd = dma_buf_fd(shm->dmabuf, O_CLOEXEC); 364 fd = dma_buf_fd(shm->dmabuf, O_CLOEXEC);
364 if (fd >= 0) 365 if (fd < 0)
365 get_dma_buf(shm->dmabuf); 366 dma_buf_put(shm->dmabuf);
366 return fd; 367 return fd;
367} 368}
368 369