diff options
58 files changed, 334 insertions, 296 deletions
diff --git a/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt b/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt index 3e5b9793341f..8682ab6d4a50 100644 --- a/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt +++ b/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt | |||
| @@ -8,8 +8,9 @@ This driver provides a simple power button event via an Interrupt. | |||
| 8 | Required properties: | 8 | Required properties: |
| 9 | - compatible: should be "ti,tps65217-pwrbutton" or "ti,tps65218-pwrbutton" | 9 | - compatible: should be "ti,tps65217-pwrbutton" or "ti,tps65218-pwrbutton" |
| 10 | 10 | ||
| 11 | Required properties for TPS65218: | 11 | Required properties: |
| 12 | - interrupts: should be one of the following | 12 | - interrupts: should be one of the following |
| 13 | - <2>: For controllers compatible with tps65217 | ||
| 13 | - <3 IRQ_TYPE_EDGE_BOTH>: For controllers compatible with tps65218 | 14 | - <3 IRQ_TYPE_EDGE_BOTH>: For controllers compatible with tps65218 |
| 14 | 15 | ||
| 15 | Examples: | 16 | Examples: |
| @@ -17,6 +18,7 @@ Examples: | |||
| 17 | &tps { | 18 | &tps { |
| 18 | tps65217-pwrbutton { | 19 | tps65217-pwrbutton { |
| 19 | compatible = "ti,tps65217-pwrbutton"; | 20 | compatible = "ti,tps65217-pwrbutton"; |
| 21 | interrupts = <2>; | ||
| 20 | }; | 22 | }; |
| 21 | }; | 23 | }; |
| 22 | 24 | ||
diff --git a/Documentation/devicetree/bindings/power/supply/tps65217_charger.txt b/Documentation/devicetree/bindings/power/supply/tps65217_charger.txt index 98d131acee95..a11072c5a866 100644 --- a/Documentation/devicetree/bindings/power/supply/tps65217_charger.txt +++ b/Documentation/devicetree/bindings/power/supply/tps65217_charger.txt | |||
| @@ -2,11 +2,16 @@ TPS65217 Charger | |||
| 2 | 2 | ||
| 3 | Required Properties: | 3 | Required Properties: |
| 4 | -compatible: "ti,tps65217-charger" | 4 | -compatible: "ti,tps65217-charger" |
| 5 | -interrupts: TPS65217 interrupt numbers for the AC and USB charger input change. | ||
| 6 | Should be <0> for the USB charger and <1> for the AC adapter. | ||
| 7 | -interrupt-names: Should be "USB" and "AC" | ||
| 5 | 8 | ||
| 6 | This node is a subnode of the tps65217 PMIC. | 9 | This node is a subnode of the tps65217 PMIC. |
| 7 | 10 | ||
| 8 | Example: | 11 | Example: |
| 9 | 12 | ||
| 10 | tps65217-charger { | 13 | tps65217-charger { |
| 11 | compatible = "ti,tps65090-charger"; | 14 | compatible = "ti,tps65217-charger"; |
| 15 | interrupts = <0>, <1>; | ||
| 16 | interrupt-names = "USB", "AC"; | ||
| 12 | }; | 17 | }; |
diff --git a/MAINTAINERS b/MAINTAINERS index ea11bb03f550..9267b8fad791 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -9849,7 +9849,7 @@ M: Mark Rutland <mark.rutland@arm.com> | |||
| 9849 | M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> | 9849 | M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> |
| 9850 | L: linux-arm-kernel@lists.infradead.org | 9850 | L: linux-arm-kernel@lists.infradead.org |
| 9851 | S: Maintained | 9851 | S: Maintained |
| 9852 | F: drivers/firmware/psci.c | 9852 | F: drivers/firmware/psci*.c |
| 9853 | F: include/linux/psci.h | 9853 | F: include/linux/psci.h |
| 9854 | F: include/uapi/linux/psci.h | 9854 | F: include/uapi/linux/psci.h |
| 9855 | 9855 | ||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 5fab553fd03a..186c4c214e0a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -1502,8 +1502,7 @@ source kernel/Kconfig.preempt | |||
| 1502 | 1502 | ||
| 1503 | config HZ_FIXED | 1503 | config HZ_FIXED |
| 1504 | int | 1504 | int |
| 1505 | default 200 if ARCH_EBSA110 || ARCH_S3C24XX || \ | 1505 | default 200 if ARCH_EBSA110 |
| 1506 | ARCH_S5PV210 || ARCH_EXYNOS4 | ||
| 1507 | default 128 if SOC_AT91RM9200 | 1506 | default 128 if SOC_AT91RM9200 |
| 1508 | default 0 | 1507 | default 0 |
| 1509 | 1508 | ||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index cccdbcb557b6..7327250f0bb6 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
| @@ -501,6 +501,7 @@ dtb-$(CONFIG_ARCH_OMAP3) += \ | |||
| 501 | am3517-evm.dtb \ | 501 | am3517-evm.dtb \ |
| 502 | am3517_mt_ventoux.dtb \ | 502 | am3517_mt_ventoux.dtb \ |
| 503 | logicpd-torpedo-37xx-devkit.dtb \ | 503 | logicpd-torpedo-37xx-devkit.dtb \ |
| 504 | logicpd-som-lv-37xx-devkit.dtb \ | ||
| 504 | omap3430-sdp.dtb \ | 505 | omap3430-sdp.dtb \ |
| 505 | omap3-beagle.dtb \ | 506 | omap3-beagle.dtb \ |
| 506 | omap3-beagle-xm.dtb \ | 507 | omap3-beagle-xm.dtb \ |
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index dc561d505bbe..3e32dd18fd25 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi | |||
| @@ -6,8 +6,6 @@ | |||
| 6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <dt-bindings/mfd/tps65217.h> | ||
| 10 | |||
| 11 | / { | 9 | / { |
| 12 | cpus { | 10 | cpus { |
| 13 | cpu@0 { | 11 | cpu@0 { |
| @@ -319,13 +317,13 @@ | |||
| 319 | ti,pmic-shutdown-controller; | 317 | ti,pmic-shutdown-controller; |
| 320 | 318 | ||
| 321 | charger { | 319 | charger { |
| 322 | interrupts = <TPS65217_IRQ_AC>, <TPS65217_IRQ_USB>; | 320 | interrupts = <0>, <1>; |
| 323 | interrupts-names = "AC", "USB"; | 321 | interrupt-names = "USB", "AC"; |
| 324 | status = "okay"; | 322 | status = "okay"; |
| 325 | }; | 323 | }; |
| 326 | 324 | ||
| 327 | pwrbutton { | 325 | pwrbutton { |
| 328 | interrupts = <TPS65217_IRQ_PB>; | 326 | interrupts = <2>; |
| 329 | status = "okay"; | 327 | status = "okay"; |
| 330 | }; | 328 | }; |
| 331 | 329 | ||
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index 64c8aa9057a3..18d72a245e88 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | interrupt-parent = <&intc>; | 16 | interrupt-parent = <&intc>; |
| 17 | #address-cells = <1>; | 17 | #address-cells = <1>; |
| 18 | #size-cells = <1>; | 18 | #size-cells = <1>; |
| 19 | chosen { }; | ||
| 19 | 20 | ||
| 20 | aliases { | 21 | aliases { |
| 21 | i2c0 = &i2c0; | 22 | i2c0 = &i2c0; |
diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi index ac55f93fc91e..2df9e6050c2f 100644 --- a/arch/arm/boot/dts/am4372.dtsi +++ b/arch/arm/boot/dts/am4372.dtsi | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | interrupt-parent = <&wakeupgen>; | 16 | interrupt-parent = <&wakeupgen>; |
| 17 | #address-cells = <1>; | 17 | #address-cells = <1>; |
| 18 | #size-cells = <1>; | 18 | #size-cells = <1>; |
| 19 | chosen { }; | ||
| 19 | 20 | ||
| 20 | memory@0 { | 21 | memory@0 { |
| 21 | device_type = "memory"; | 22 | device_type = "memory"; |
diff --git a/arch/arm/boot/dts/am571x-idk.dts b/arch/arm/boot/dts/am571x-idk.dts index d6e43e5184c1..ad68d1eb3bc3 100644 --- a/arch/arm/boot/dts/am571x-idk.dts +++ b/arch/arm/boot/dts/am571x-idk.dts | |||
| @@ -62,11 +62,6 @@ | |||
| 62 | linux,default-trigger = "mmc0"; | 62 | linux,default-trigger = "mmc0"; |
| 63 | }; | 63 | }; |
| 64 | }; | 64 | }; |
| 65 | |||
| 66 | extcon_usb2: extcon_usb2 { | ||
| 67 | compatible = "linux,extcon-usb-gpio"; | ||
| 68 | id-gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>; | ||
| 69 | }; | ||
| 70 | }; | 65 | }; |
| 71 | 66 | ||
| 72 | &mmc1 { | 67 | &mmc1 { |
| @@ -79,3 +74,8 @@ | |||
| 79 | &omap_dwc3_2 { | 74 | &omap_dwc3_2 { |
| 80 | extcon = <&extcon_usb2>; | 75 | extcon = <&extcon_usb2>; |
| 81 | }; | 76 | }; |
| 77 | |||
| 78 | &extcon_usb2 { | ||
| 79 | id-gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>; | ||
| 80 | vbus-gpio = <&gpio7 22 GPIO_ACTIVE_HIGH>; | ||
| 81 | }; | ||
diff --git a/arch/arm/boot/dts/am572x-idk.dts b/arch/arm/boot/dts/am572x-idk.dts index 27d9149cedba..8350b4b34b08 100644 --- a/arch/arm/boot/dts/am572x-idk.dts +++ b/arch/arm/boot/dts/am572x-idk.dts | |||
| @@ -23,11 +23,6 @@ | |||
| 23 | reg = <0x0 0x80000000 0x0 0x80000000>; | 23 | reg = <0x0 0x80000000 0x0 0x80000000>; |
| 24 | }; | 24 | }; |
| 25 | 25 | ||
| 26 | extcon_usb2: extcon_usb2 { | ||
| 27 | compatible = "linux,extcon-usb-gpio"; | ||
| 28 | id-gpio = <&gpio3 16 GPIO_ACTIVE_HIGH>; | ||
| 29 | }; | ||
| 30 | |||
| 31 | status-leds { | 26 | status-leds { |
| 32 | compatible = "gpio-leds"; | 27 | compatible = "gpio-leds"; |
| 33 | cpu0-led { | 28 | cpu0-led { |
| @@ -76,6 +71,11 @@ | |||
| 76 | extcon = <&extcon_usb2>; | 71 | extcon = <&extcon_usb2>; |
| 77 | }; | 72 | }; |
| 78 | 73 | ||
| 74 | &extcon_usb2 { | ||
| 75 | id-gpio = <&gpio3 16 GPIO_ACTIVE_HIGH>; | ||
| 76 | vbus-gpio = <&gpio3 26 GPIO_ACTIVE_HIGH>; | ||
| 77 | }; | ||
| 78 | |||
| 79 | &mmc1 { | 79 | &mmc1 { |
| 80 | status = "okay"; | 80 | status = "okay"; |
| 81 | vmmc-supply = <&v3_3d>; | 81 | vmmc-supply = <&v3_3d>; |
| @@ -87,3 +87,7 @@ | |||
| 87 | &sn65hvs882 { | 87 | &sn65hvs882 { |
| 88 | load-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>; | 88 | load-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>; |
| 89 | }; | 89 | }; |
| 90 | |||
| 91 | &pcie1 { | ||
| 92 | gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>; | ||
| 93 | }; | ||
diff --git a/arch/arm/boot/dts/am57xx-idk-common.dtsi b/arch/arm/boot/dts/am57xx-idk-common.dtsi index 555ae21f2b9a..814a720d5c3d 100644 --- a/arch/arm/boot/dts/am57xx-idk-common.dtsi +++ b/arch/arm/boot/dts/am57xx-idk-common.dtsi | |||
| @@ -303,6 +303,13 @@ | |||
| 303 | gpio-controller; | 303 | gpio-controller; |
| 304 | #gpio-cells = <2>; | 304 | #gpio-cells = <2>; |
| 305 | }; | 305 | }; |
| 306 | |||
| 307 | extcon_usb2: tps659038_usb { | ||
| 308 | compatible = "ti,palmas-usb-vid"; | ||
| 309 | ti,enable-vbus-detection; | ||
| 310 | ti,enable-id-detection; | ||
| 311 | /* ID & VBUS GPIOs provided in board dts */ | ||
| 312 | }; | ||
| 306 | }; | 313 | }; |
| 307 | }; | 314 | }; |
| 308 | 315 | ||
| @@ -369,7 +376,7 @@ | |||
| 369 | }; | 376 | }; |
| 370 | 377 | ||
| 371 | &usb2 { | 378 | &usb2 { |
| 372 | dr_mode = "otg"; | 379 | dr_mode = "peripheral"; |
| 373 | }; | 380 | }; |
| 374 | 381 | ||
| 375 | &mmc2 { | 382 | &mmc2 { |
diff --git a/arch/arm/boot/dts/dm814x.dtsi b/arch/arm/boot/dts/dm814x.dtsi index 1facc5f12cef..81b8cecb5820 100644 --- a/arch/arm/boot/dts/dm814x.dtsi +++ b/arch/arm/boot/dts/dm814x.dtsi | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | interrupt-parent = <&intc>; | 12 | interrupt-parent = <&intc>; |
| 13 | #address-cells = <1>; | 13 | #address-cells = <1>; |
| 14 | #size-cells = <1>; | 14 | #size-cells = <1>; |
| 15 | chosen { }; | ||
| 15 | 16 | ||
| 16 | aliases { | 17 | aliases { |
| 17 | i2c0 = &i2c1; | 18 | i2c0 = &i2c1; |
diff --git a/arch/arm/boot/dts/dm816x.dtsi b/arch/arm/boot/dts/dm816x.dtsi index 61dd2f6b02bc..6db652ae9bd5 100644 --- a/arch/arm/boot/dts/dm816x.dtsi +++ b/arch/arm/boot/dts/dm816x.dtsi | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | interrupt-parent = <&intc>; | 12 | interrupt-parent = <&intc>; |
| 13 | #address-cells = <1>; | 13 | #address-cells = <1>; |
| 14 | #size-cells = <1>; | 14 | #size-cells = <1>; |
| 15 | chosen { }; | ||
| 15 | 16 | ||
| 16 | aliases { | 17 | aliases { |
| 17 | i2c0 = &i2c1; | 18 | i2c0 = &i2c1; |
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi index addb7530cfbe..1faf24acd521 100644 --- a/arch/arm/boot/dts/dra7.dtsi +++ b/arch/arm/boot/dts/dra7.dtsi | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | 18 | ||
| 19 | compatible = "ti,dra7xx"; | 19 | compatible = "ti,dra7xx"; |
| 20 | interrupt-parent = <&crossbar_mpu>; | 20 | interrupt-parent = <&crossbar_mpu>; |
| 21 | chosen { }; | ||
| 21 | 22 | ||
| 22 | aliases { | 23 | aliases { |
| 23 | i2c0 = &i2c1; | 24 | i2c0 = &i2c1; |
diff --git a/arch/arm/boot/dts/dra72-evm-tps65917.dtsi b/arch/arm/boot/dts/dra72-evm-tps65917.dtsi index ee6dac44edf1..e6df676886c0 100644 --- a/arch/arm/boot/dts/dra72-evm-tps65917.dtsi +++ b/arch/arm/boot/dts/dra72-evm-tps65917.dtsi | |||
| @@ -132,3 +132,19 @@ | |||
| 132 | ti,palmas-long-press-seconds = <6>; | 132 | ti,palmas-long-press-seconds = <6>; |
| 133 | }; | 133 | }; |
| 134 | }; | 134 | }; |
| 135 | |||
| 136 | &usb2_phy1 { | ||
| 137 | phy-supply = <&ldo4_reg>; | ||
| 138 | }; | ||
| 139 | |||
| 140 | &usb2_phy2 { | ||
| 141 | phy-supply = <&ldo4_reg>; | ||
| 142 | }; | ||
| 143 | |||
| 144 | &dss { | ||
| 145 | vdda_video-supply = <&ldo5_reg>; | ||
| 146 | }; | ||
| 147 | |||
| 148 | &mmc1 { | ||
| 149 | vmmc_aux-supply = <&ldo1_reg>; | ||
| 150 | }; | ||
diff --git a/arch/arm/boot/dts/imx31.dtsi b/arch/arm/boot/dts/imx31.dtsi index 685916e3d8a1..85cd8be22f71 100644 --- a/arch/arm/boot/dts/imx31.dtsi +++ b/arch/arm/boot/dts/imx31.dtsi | |||
| @@ -31,11 +31,11 @@ | |||
| 31 | }; | 31 | }; |
| 32 | }; | 32 | }; |
| 33 | 33 | ||
| 34 | avic: avic-interrupt-controller@60000000 { | 34 | avic: interrupt-controller@68000000 { |
| 35 | compatible = "fsl,imx31-avic", "fsl,avic"; | 35 | compatible = "fsl,imx31-avic", "fsl,avic"; |
| 36 | interrupt-controller; | 36 | interrupt-controller; |
| 37 | #interrupt-cells = <1>; | 37 | #interrupt-cells = <1>; |
| 38 | reg = <0x60000000 0x100000>; | 38 | reg = <0x68000000 0x100000>; |
| 39 | }; | 39 | }; |
| 40 | 40 | ||
| 41 | soc { | 41 | soc { |
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi index e476d01959ea..26d060484728 100644 --- a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi +++ b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi | |||
| @@ -533,7 +533,6 @@ | |||
| 533 | MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17071 | 533 | MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17071 |
| 534 | MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17071 | 534 | MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17071 |
| 535 | MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17071 | 535 | MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17071 |
| 536 | MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x000b0 | ||
| 537 | >; | 536 | >; |
| 538 | }; | 537 | }; |
| 539 | 538 | ||
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index 53e6e63cbb02..89b834f3fa17 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi | |||
| @@ -1100,6 +1100,7 @@ | |||
| 1100 | interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>; | 1100 | interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>; |
| 1101 | clocks = <&clks IMX6QDL_CLK_EIM_SLOW>; | 1101 | clocks = <&clks IMX6QDL_CLK_EIM_SLOW>; |
| 1102 | fsl,weim-cs-gpr = <&gpr>; | 1102 | fsl,weim-cs-gpr = <&gpr>; |
| 1103 | status = "disabled"; | ||
| 1103 | }; | 1104 | }; |
| 1104 | 1105 | ||
| 1105 | ocotp: ocotp@021bc000 { | 1106 | ocotp: ocotp@021bc000 { |
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi index 4fd6de29f07d..19cbd879c448 100644 --- a/arch/arm/boot/dts/imx6sl.dtsi +++ b/arch/arm/boot/dts/imx6sl.dtsi | |||
| @@ -900,6 +900,7 @@ | |||
| 900 | reg = <0x021b8000 0x4000>; | 900 | reg = <0x021b8000 0x4000>; |
| 901 | interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>; | 901 | interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>; |
| 902 | fsl,weim-cs-gpr = <&gpr>; | 902 | fsl,weim-cs-gpr = <&gpr>; |
| 903 | status = "disabled"; | ||
| 903 | }; | 904 | }; |
| 904 | 905 | ||
| 905 | ocotp: ocotp@021bc000 { | 906 | ocotp: ocotp@021bc000 { |
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi index 076a30f9bcae..10f333016197 100644 --- a/arch/arm/boot/dts/imx6sx.dtsi +++ b/arch/arm/boot/dts/imx6sx.dtsi | |||
| @@ -977,6 +977,7 @@ | |||
| 977 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | 977 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; |
| 978 | clocks = <&clks IMX6SX_CLK_EIM_SLOW>; | 978 | clocks = <&clks IMX6SX_CLK_EIM_SLOW>; |
| 979 | fsl,weim-cs-gpr = <&gpr>; | 979 | fsl,weim-cs-gpr = <&gpr>; |
| 980 | status = "disabled"; | ||
| 980 | }; | 981 | }; |
| 981 | 982 | ||
| 982 | ocotp: ocotp@021bc000 { | 983 | ocotp: ocotp@021bc000 { |
diff --git a/arch/arm/boot/dts/omap2.dtsi b/arch/arm/boot/dts/omap2.dtsi index 4f793a025a72..f1d6de8b3c19 100644 --- a/arch/arm/boot/dts/omap2.dtsi +++ b/arch/arm/boot/dts/omap2.dtsi | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | interrupt-parent = <&intc>; | 17 | interrupt-parent = <&intc>; |
| 18 | #address-cells = <1>; | 18 | #address-cells = <1>; |
| 19 | #size-cells = <1>; | 19 | #size-cells = <1>; |
| 20 | chosen { }; | ||
| 20 | 21 | ||
| 21 | aliases { | 22 | aliases { |
| 22 | serial0 = &uart1; | 23 | serial0 = &uart1; |
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts index 87ca50b53002..4d448f145ed1 100644 --- a/arch/arm/boot/dts/omap3-n900.dts +++ b/arch/arm/boot/dts/omap3-n900.dts | |||
| @@ -734,6 +734,8 @@ | |||
| 734 | vmmc_aux-supply = <&vsim>; | 734 | vmmc_aux-supply = <&vsim>; |
| 735 | bus-width = <8>; | 735 | bus-width = <8>; |
| 736 | non-removable; | 736 | non-removable; |
| 737 | no-sdio; | ||
| 738 | no-sd; | ||
| 737 | }; | 739 | }; |
| 738 | 740 | ||
| 739 | &mmc3 { | 741 | &mmc3 { |
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi index ecf5eb584c75..a3ff4933dbc1 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | interrupt-parent = <&intc>; | 17 | interrupt-parent = <&intc>; |
| 18 | #address-cells = <1>; | 18 | #address-cells = <1>; |
| 19 | #size-cells = <1>; | 19 | #size-cells = <1>; |
| 20 | chosen { }; | ||
| 20 | 21 | ||
| 21 | aliases { | 22 | aliases { |
| 22 | i2c0 = &i2c1; | 23 | i2c0 = &i2c1; |
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi index 8087456b5fbe..578c53f08309 100644 --- a/arch/arm/boot/dts/omap4.dtsi +++ b/arch/arm/boot/dts/omap4.dtsi | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | interrupt-parent = <&wakeupgen>; | 15 | interrupt-parent = <&wakeupgen>; |
| 16 | #address-cells = <1>; | 16 | #address-cells = <1>; |
| 17 | #size-cells = <1>; | 17 | #size-cells = <1>; |
| 18 | chosen { }; | ||
| 18 | 19 | ||
| 19 | aliases { | 20 | aliases { |
| 20 | i2c0 = &i2c1; | 21 | i2c0 = &i2c1; |
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index 968c67a49dbd..7cd92babc41a 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | 17 | ||
| 18 | compatible = "ti,omap5"; | 18 | compatible = "ti,omap5"; |
| 19 | interrupt-parent = <&wakeupgen>; | 19 | interrupt-parent = <&wakeupgen>; |
| 20 | chosen { }; | ||
| 20 | 21 | ||
| 21 | aliases { | 22 | aliases { |
| 22 | i2c0 = &i2c1; | 23 | i2c0 = &i2c1; |
diff --git a/arch/arm/boot/dts/qcom-apq8064.dtsi b/arch/arm/boot/dts/qcom-apq8064.dtsi index 268bd470c865..407a4610f4a7 100644 --- a/arch/arm/boot/dts/qcom-apq8064.dtsi +++ b/arch/arm/boot/dts/qcom-apq8064.dtsi | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | #include <dt-bindings/clock/qcom,gcc-msm8960.h> | 4 | #include <dt-bindings/clock/qcom,gcc-msm8960.h> |
| 5 | #include <dt-bindings/reset/qcom,gcc-msm8960.h> | 5 | #include <dt-bindings/reset/qcom,gcc-msm8960.h> |
| 6 | #include <dt-bindings/clock/qcom,mmcc-msm8960.h> | 6 | #include <dt-bindings/clock/qcom,mmcc-msm8960.h> |
| 7 | #include <dt-bindings/clock/qcom,rpmcc.h> | ||
| 7 | #include <dt-bindings/soc/qcom,gsbi.h> | 8 | #include <dt-bindings/soc/qcom,gsbi.h> |
| 8 | #include <dt-bindings/interrupt-controller/irq.h> | 9 | #include <dt-bindings/interrupt-controller/irq.h> |
| 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 10 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| @@ -303,6 +304,9 @@ | |||
| 303 | firmware { | 304 | firmware { |
| 304 | scm { | 305 | scm { |
| 305 | compatible = "qcom,scm-apq8064"; | 306 | compatible = "qcom,scm-apq8064"; |
| 307 | |||
| 308 | clocks = <&rpmcc RPM_DAYTONA_FABRIC_CLK>; | ||
| 309 | clock-names = "core"; | ||
| 306 | }; | 310 | }; |
| 307 | }; | 311 | }; |
| 308 | 312 | ||
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts index 102838fcc588..15f4fd3f4695 100644 --- a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts +++ b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts | |||
| @@ -81,7 +81,7 @@ | |||
| 81 | #address-cells = <0>; | 81 | #address-cells = <0>; |
| 82 | interrupt-controller; | 82 | interrupt-controller; |
| 83 | reg = <0 0x2c001000 0 0x1000>, | 83 | reg = <0 0x2c001000 0 0x1000>, |
| 84 | <0 0x2c002000 0 0x1000>, | 84 | <0 0x2c002000 0 0x2000>, |
| 85 | <0 0x2c004000 0 0x2000>, | 85 | <0 0x2c004000 0 0x2000>, |
| 86 | <0 0x2c006000 0 0x2000>; | 86 | <0 0x2c006000 0 0x2000>; |
| 87 | interrupts = <1 9 0xf04>; | 87 | interrupts = <1 9 0xf04>; |
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts index 45d08cc37b01..bd107c5a0226 100644 --- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts +++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | |||
| @@ -131,7 +131,7 @@ | |||
| 131 | #address-cells = <0>; | 131 | #address-cells = <0>; |
| 132 | interrupt-controller; | 132 | interrupt-controller; |
| 133 | reg = <0 0x2c001000 0 0x1000>, | 133 | reg = <0 0x2c001000 0 0x1000>, |
| 134 | <0 0x2c002000 0 0x1000>, | 134 | <0 0x2c002000 0 0x2000>, |
| 135 | <0 0x2c004000 0 0x2000>, | 135 | <0 0x2c004000 0 0x2000>, |
| 136 | <0 0x2c006000 0 0x2000>; | 136 | <0 0x2c006000 0 0x2000>; |
| 137 | interrupts = <1 9 0xf04>; | 137 | interrupts = <1 9 0xf04>; |
diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts index 7ea617e47fe4..958b4c42d320 100644 --- a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts +++ b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts | |||
| @@ -153,7 +153,8 @@ | |||
| 153 | switch0phy1: switch1phy0@1 { | 153 | switch0phy1: switch1phy0@1 { |
| 154 | reg = <1>; | 154 | reg = <1>; |
| 155 | interrupt-parent = <&switch0>; | 155 | interrupt-parent = <&switch0>; |
| 156 | interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; }; | 156 | interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; |
| 157 | }; | ||
| 157 | switch0phy2: switch1phy0@2 { | 158 | switch0phy2: switch1phy0@2 { |
| 158 | reg = <2>; | 159 | reg = <2>; |
| 159 | interrupt-parent = <&switch0>; | 160 | interrupt-parent = <&switch0>; |
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c index df42c93a93d6..f5dce9b4e617 100644 --- a/arch/arm/mach-davinci/clock.c +++ b/arch/arm/mach-davinci/clock.c | |||
| @@ -31,10 +31,10 @@ static LIST_HEAD(clocks); | |||
| 31 | static DEFINE_MUTEX(clocks_mutex); | 31 | static DEFINE_MUTEX(clocks_mutex); |
| 32 | static DEFINE_SPINLOCK(clockfw_lock); | 32 | static DEFINE_SPINLOCK(clockfw_lock); |
| 33 | 33 | ||
| 34 | static void __clk_enable(struct clk *clk) | 34 | void davinci_clk_enable(struct clk *clk) |
| 35 | { | 35 | { |
| 36 | if (clk->parent) | 36 | if (clk->parent) |
| 37 | __clk_enable(clk->parent); | 37 | davinci_clk_enable(clk->parent); |
| 38 | if (clk->usecount++ == 0) { | 38 | if (clk->usecount++ == 0) { |
| 39 | if (clk->flags & CLK_PSC) | 39 | if (clk->flags & CLK_PSC) |
| 40 | davinci_psc_config(clk->domain, clk->gpsc, clk->lpsc, | 40 | davinci_psc_config(clk->domain, clk->gpsc, clk->lpsc, |
| @@ -44,7 +44,7 @@ static void __clk_enable(struct clk *clk) | |||
| 44 | } | 44 | } |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | static void __clk_disable(struct clk *clk) | 47 | void davinci_clk_disable(struct clk *clk) |
| 48 | { | 48 | { |
| 49 | if (WARN_ON(clk->usecount == 0)) | 49 | if (WARN_ON(clk->usecount == 0)) |
| 50 | return; | 50 | return; |
| @@ -56,7 +56,7 @@ static void __clk_disable(struct clk *clk) | |||
| 56 | clk->clk_disable(clk); | 56 | clk->clk_disable(clk); |
| 57 | } | 57 | } |
| 58 | if (clk->parent) | 58 | if (clk->parent) |
| 59 | __clk_disable(clk->parent); | 59 | davinci_clk_disable(clk->parent); |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | int davinci_clk_reset(struct clk *clk, bool reset) | 62 | int davinci_clk_reset(struct clk *clk, bool reset) |
| @@ -103,7 +103,7 @@ int clk_enable(struct clk *clk) | |||
| 103 | return -EINVAL; | 103 | return -EINVAL; |
| 104 | 104 | ||
| 105 | spin_lock_irqsave(&clockfw_lock, flags); | 105 | spin_lock_irqsave(&clockfw_lock, flags); |
| 106 | __clk_enable(clk); | 106 | davinci_clk_enable(clk); |
| 107 | spin_unlock_irqrestore(&clockfw_lock, flags); | 107 | spin_unlock_irqrestore(&clockfw_lock, flags); |
| 108 | 108 | ||
| 109 | return 0; | 109 | return 0; |
| @@ -118,7 +118,7 @@ void clk_disable(struct clk *clk) | |||
| 118 | return; | 118 | return; |
| 119 | 119 | ||
| 120 | spin_lock_irqsave(&clockfw_lock, flags); | 120 | spin_lock_irqsave(&clockfw_lock, flags); |
| 121 | __clk_disable(clk); | 121 | davinci_clk_disable(clk); |
| 122 | spin_unlock_irqrestore(&clockfw_lock, flags); | 122 | spin_unlock_irqrestore(&clockfw_lock, flags); |
| 123 | } | 123 | } |
| 124 | EXPORT_SYMBOL(clk_disable); | 124 | EXPORT_SYMBOL(clk_disable); |
diff --git a/arch/arm/mach-davinci/clock.h b/arch/arm/mach-davinci/clock.h index e2a5437a1aee..fa2b83752e03 100644 --- a/arch/arm/mach-davinci/clock.h +++ b/arch/arm/mach-davinci/clock.h | |||
| @@ -132,6 +132,8 @@ int davinci_set_sysclk_rate(struct clk *clk, unsigned long rate); | |||
| 132 | int davinci_set_refclk_rate(unsigned long rate); | 132 | int davinci_set_refclk_rate(unsigned long rate); |
| 133 | int davinci_simple_set_rate(struct clk *clk, unsigned long rate); | 133 | int davinci_simple_set_rate(struct clk *clk, unsigned long rate); |
| 134 | int davinci_clk_reset(struct clk *clk, bool reset); | 134 | int davinci_clk_reset(struct clk *clk, bool reset); |
| 135 | void davinci_clk_enable(struct clk *clk); | ||
| 136 | void davinci_clk_disable(struct clk *clk); | ||
| 135 | 137 | ||
| 136 | extern struct platform_device davinci_wdt_device; | 138 | extern struct platform_device davinci_wdt_device; |
| 137 | extern void davinci_watchdog_reset(struct platform_device *); | 139 | extern void davinci_watchdog_reset(struct platform_device *); |
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c index e770c97ea45c..1d873d15b545 100644 --- a/arch/arm/mach-davinci/da850.c +++ b/arch/arm/mach-davinci/da850.c | |||
| @@ -319,6 +319,16 @@ static struct clk emac_clk = { | |||
| 319 | .gpsc = 1, | 319 | .gpsc = 1, |
| 320 | }; | 320 | }; |
| 321 | 321 | ||
| 322 | /* | ||
| 323 | * In order to avoid adding the emac_clk to the clock lookup table twice (and | ||
| 324 | * screwing up the linked list in the process) create a separate clock for | ||
| 325 | * mdio inheriting the rate from emac_clk. | ||
| 326 | */ | ||
| 327 | static struct clk mdio_clk = { | ||
| 328 | .name = "mdio", | ||
| 329 | .parent = &emac_clk, | ||
| 330 | }; | ||
| 331 | |||
| 322 | static struct clk mcasp_clk = { | 332 | static struct clk mcasp_clk = { |
| 323 | .name = "mcasp", | 333 | .name = "mcasp", |
| 324 | .parent = &async3_clk, | 334 | .parent = &async3_clk, |
| @@ -367,6 +377,16 @@ static struct clk aemif_clk = { | |||
| 367 | .flags = ALWAYS_ENABLED, | 377 | .flags = ALWAYS_ENABLED, |
| 368 | }; | 378 | }; |
| 369 | 379 | ||
| 380 | /* | ||
| 381 | * In order to avoid adding the aemif_clk to the clock lookup table twice (and | ||
| 382 | * screwing up the linked list in the process) create a separate clock for | ||
| 383 | * nand inheriting the rate from aemif_clk. | ||
| 384 | */ | ||
| 385 | static struct clk aemif_nand_clk = { | ||
| 386 | .name = "nand", | ||
| 387 | .parent = &aemif_clk, | ||
| 388 | }; | ||
| 389 | |||
| 370 | static struct clk usb11_clk = { | 390 | static struct clk usb11_clk = { |
| 371 | .name = "usb11", | 391 | .name = "usb11", |
| 372 | .parent = &pll0_sysclk4, | 392 | .parent = &pll0_sysclk4, |
| @@ -529,7 +549,7 @@ static struct clk_lookup da850_clks[] = { | |||
| 529 | CLK(NULL, "arm", &arm_clk), | 549 | CLK(NULL, "arm", &arm_clk), |
| 530 | CLK(NULL, "rmii", &rmii_clk), | 550 | CLK(NULL, "rmii", &rmii_clk), |
| 531 | CLK("davinci_emac.1", NULL, &emac_clk), | 551 | CLK("davinci_emac.1", NULL, &emac_clk), |
| 532 | CLK("davinci_mdio.0", "fck", &emac_clk), | 552 | CLK("davinci_mdio.0", "fck", &mdio_clk), |
| 533 | CLK("davinci-mcasp.0", NULL, &mcasp_clk), | 553 | CLK("davinci-mcasp.0", NULL, &mcasp_clk), |
| 534 | CLK("davinci-mcbsp.0", NULL, &mcbsp0_clk), | 554 | CLK("davinci-mcbsp.0", NULL, &mcbsp0_clk), |
| 535 | CLK("davinci-mcbsp.1", NULL, &mcbsp1_clk), | 555 | CLK("davinci-mcbsp.1", NULL, &mcbsp1_clk), |
| @@ -537,7 +557,15 @@ static struct clk_lookup da850_clks[] = { | |||
| 537 | CLK("da830-mmc.0", NULL, &mmcsd0_clk), | 557 | CLK("da830-mmc.0", NULL, &mmcsd0_clk), |
| 538 | CLK("da830-mmc.1", NULL, &mmcsd1_clk), | 558 | CLK("da830-mmc.1", NULL, &mmcsd1_clk), |
| 539 | CLK("ti-aemif", NULL, &aemif_clk), | 559 | CLK("ti-aemif", NULL, &aemif_clk), |
| 540 | CLK(NULL, "aemif", &aemif_clk), | 560 | /* |
| 561 | * The only user of this clock is davinci_nand and it get's it through | ||
| 562 | * con_id. The nand node itself is created from within the aemif | ||
| 563 | * driver to guarantee that it's probed after the aemif timing | ||
| 564 | * parameters are configured. of_dev_auxdata is not accessible from | ||
| 565 | * the aemif driver and can't be passed to of_platform_populate(). For | ||
| 566 | * that reason we're leaving the dev_id here as NULL. | ||
| 567 | */ | ||
| 568 | CLK(NULL, "aemif", &aemif_nand_clk), | ||
| 541 | CLK("ohci-da8xx", "usb11", &usb11_clk), | 569 | CLK("ohci-da8xx", "usb11", &usb11_clk), |
| 542 | CLK("musb-da8xx", "usb20", &usb20_clk), | 570 | CLK("musb-da8xx", "usb20", &usb20_clk), |
| 543 | CLK("spi_davinci.0", NULL, &spi0_clk), | 571 | CLK("spi_davinci.0", NULL, &spi0_clk), |
diff --git a/arch/arm/mach-davinci/usb-da8xx.c b/arch/arm/mach-davinci/usb-da8xx.c index c6feecf7ae24..9a6af0bd5dc3 100644 --- a/arch/arm/mach-davinci/usb-da8xx.c +++ b/arch/arm/mach-davinci/usb-da8xx.c | |||
| @@ -22,6 +22,8 @@ | |||
| 22 | #define DA8XX_USB0_BASE 0x01e00000 | 22 | #define DA8XX_USB0_BASE 0x01e00000 |
| 23 | #define DA8XX_USB1_BASE 0x01e25000 | 23 | #define DA8XX_USB1_BASE 0x01e25000 |
| 24 | 24 | ||
| 25 | static struct clk *usb20_clk; | ||
| 26 | |||
| 25 | static struct platform_device da8xx_usb_phy = { | 27 | static struct platform_device da8xx_usb_phy = { |
| 26 | .name = "da8xx-usb-phy", | 28 | .name = "da8xx-usb-phy", |
| 27 | .id = -1, | 29 | .id = -1, |
| @@ -158,26 +160,13 @@ int __init da8xx_register_usb_refclkin(int rate) | |||
| 158 | 160 | ||
| 159 | static void usb20_phy_clk_enable(struct clk *clk) | 161 | static void usb20_phy_clk_enable(struct clk *clk) |
| 160 | { | 162 | { |
| 161 | struct clk *usb20_clk; | ||
| 162 | int err; | ||
| 163 | u32 val; | 163 | u32 val; |
| 164 | u32 timeout = 500000; /* 500 msec */ | 164 | u32 timeout = 500000; /* 500 msec */ |
| 165 | 165 | ||
| 166 | val = readl(DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP2_REG)); | 166 | val = readl(DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP2_REG)); |
| 167 | 167 | ||
| 168 | usb20_clk = clk_get(&da8xx_usb20_dev.dev, "usb20"); | ||
| 169 | if (IS_ERR(usb20_clk)) { | ||
| 170 | pr_err("could not get usb20 clk: %ld\n", PTR_ERR(usb20_clk)); | ||
| 171 | return; | ||
| 172 | } | ||
| 173 | |||
| 174 | /* The USB 2.O PLL requires that the USB 2.O PSC is enabled as well. */ | 168 | /* The USB 2.O PLL requires that the USB 2.O PSC is enabled as well. */ |
| 175 | err = clk_prepare_enable(usb20_clk); | 169 | davinci_clk_enable(usb20_clk); |
| 176 | if (err) { | ||
| 177 | pr_err("failed to enable usb20 clk: %d\n", err); | ||
| 178 | clk_put(usb20_clk); | ||
| 179 | return; | ||
| 180 | } | ||
| 181 | 170 | ||
| 182 | /* | 171 | /* |
| 183 | * Turn on the USB 2.0 PHY, but just the PLL, and not OTG. The USB 1.1 | 172 | * Turn on the USB 2.0 PHY, but just the PLL, and not OTG. The USB 1.1 |
| @@ -197,8 +186,7 @@ static void usb20_phy_clk_enable(struct clk *clk) | |||
| 197 | 186 | ||
| 198 | pr_err("Timeout waiting for USB 2.0 PHY clock good\n"); | 187 | pr_err("Timeout waiting for USB 2.0 PHY clock good\n"); |
| 199 | done: | 188 | done: |
| 200 | clk_disable_unprepare(usb20_clk); | 189 | davinci_clk_disable(usb20_clk); |
| 201 | clk_put(usb20_clk); | ||
| 202 | } | 190 | } |
| 203 | 191 | ||
| 204 | static void usb20_phy_clk_disable(struct clk *clk) | 192 | static void usb20_phy_clk_disable(struct clk *clk) |
| @@ -285,11 +273,19 @@ static struct clk_lookup usb20_phy_clk_lookup = | |||
| 285 | int __init da8xx_register_usb20_phy_clk(bool use_usb_refclkin) | 273 | int __init da8xx_register_usb20_phy_clk(bool use_usb_refclkin) |
| 286 | { | 274 | { |
| 287 | struct clk *parent; | 275 | struct clk *parent; |
| 288 | int ret = 0; | 276 | int ret; |
| 277 | |||
| 278 | usb20_clk = clk_get(&da8xx_usb20_dev.dev, "usb20"); | ||
| 279 | ret = PTR_ERR_OR_ZERO(usb20_clk); | ||
| 280 | if (ret) | ||
| 281 | return ret; | ||
| 289 | 282 | ||
| 290 | parent = clk_get(NULL, use_usb_refclkin ? "usb_refclkin" : "pll0_aux"); | 283 | parent = clk_get(NULL, use_usb_refclkin ? "usb_refclkin" : "pll0_aux"); |
| 291 | if (IS_ERR(parent)) | 284 | ret = PTR_ERR_OR_ZERO(parent); |
| 292 | return PTR_ERR(parent); | 285 | if (ret) { |
| 286 | clk_put(usb20_clk); | ||
| 287 | return ret; | ||
| 288 | } | ||
| 293 | 289 | ||
| 294 | usb20_phy_clk.parent = parent; | 290 | usb20_phy_clk.parent = parent; |
| 295 | ret = clk_register(&usb20_phy_clk); | 291 | ret = clk_register(&usb20_phy_clk); |
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c index 98ffe1e62ad5..a5d68411a037 100644 --- a/arch/arm/mach-exynos/platsmp.c +++ b/arch/arm/mach-exynos/platsmp.c | |||
| @@ -385,36 +385,6 @@ fail: | |||
| 385 | return pen_release != -1 ? ret : 0; | 385 | return pen_release != -1 ? ret : 0; |
| 386 | } | 386 | } |
| 387 | 387 | ||
| 388 | /* | ||
| 389 | * Initialise the CPU possible map early - this describes the CPUs | ||
| 390 | * which may be present or become present in the system. | ||
| 391 | */ | ||
| 392 | |||
| 393 | static void __init exynos_smp_init_cpus(void) | ||
| 394 | { | ||
| 395 | void __iomem *scu_base = scu_base_addr(); | ||
| 396 | unsigned int i, ncores; | ||
| 397 | |||
| 398 | if (read_cpuid_part() == ARM_CPU_PART_CORTEX_A9) | ||
| 399 | ncores = scu_base ? scu_get_core_count(scu_base) : 1; | ||
| 400 | else | ||
| 401 | /* | ||
| 402 | * CPU Nodes are passed thru DT and set_cpu_possible | ||
| 403 | * is set by "arm_dt_init_cpu_maps". | ||
| 404 | */ | ||
| 405 | return; | ||
| 406 | |||
| 407 | /* sanity check */ | ||
| 408 | if (ncores > nr_cpu_ids) { | ||
| 409 | pr_warn("SMP: %u cores greater than maximum (%u), clipping\n", | ||
| 410 | ncores, nr_cpu_ids); | ||
| 411 | ncores = nr_cpu_ids; | ||
| 412 | } | ||
| 413 | |||
| 414 | for (i = 0; i < ncores; i++) | ||
| 415 | set_cpu_possible(i, true); | ||
| 416 | } | ||
| 417 | |||
| 418 | static void __init exynos_smp_prepare_cpus(unsigned int max_cpus) | 388 | static void __init exynos_smp_prepare_cpus(unsigned int max_cpus) |
| 419 | { | 389 | { |
| 420 | int i; | 390 | int i; |
| @@ -479,7 +449,6 @@ static void exynos_cpu_die(unsigned int cpu) | |||
| 479 | #endif /* CONFIG_HOTPLUG_CPU */ | 449 | #endif /* CONFIG_HOTPLUG_CPU */ |
| 480 | 450 | ||
| 481 | const struct smp_operations exynos_smp_ops __initconst = { | 451 | const struct smp_operations exynos_smp_ops __initconst = { |
| 482 | .smp_init_cpus = exynos_smp_init_cpus, | ||
| 483 | .smp_prepare_cpus = exynos_smp_prepare_cpus, | 452 | .smp_prepare_cpus = exynos_smp_prepare_cpus, |
| 484 | .smp_secondary_init = exynos_secondary_init, | 453 | .smp_secondary_init = exynos_secondary_init, |
| 485 | .smp_boot_secondary = exynos_boot_secondary, | 454 | .smp_boot_secondary = exynos_boot_secondary, |
diff --git a/arch/arm/mach-imx/mach-imx1.c b/arch/arm/mach-imx/mach-imx1.c index de5ab8d88549..3a8406e45b65 100644 --- a/arch/arm/mach-imx/mach-imx1.c +++ b/arch/arm/mach-imx/mach-imx1.c | |||
| @@ -37,7 +37,6 @@ static const char * const imx1_dt_board_compat[] __initconst = { | |||
| 37 | }; | 37 | }; |
| 38 | 38 | ||
| 39 | DT_MACHINE_START(IMX1_DT, "Freescale i.MX1 (Device Tree Support)") | 39 | DT_MACHINE_START(IMX1_DT, "Freescale i.MX1 (Device Tree Support)") |
| 40 | .map_io = debug_ll_io_init, | ||
| 41 | .init_early = imx1_init_early, | 40 | .init_early = imx1_init_early, |
| 42 | .init_irq = imx1_init_irq, | 41 | .init_irq = imx1_init_irq, |
| 43 | .dt_compat = imx1_dt_board_compat, | 42 | .dt_compat = imx1_dt_board_compat, |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 469894082fea..093458b62c8d 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
| @@ -7,7 +7,7 @@ ccflags-y := -I$(srctree)/$(src)/include \ | |||
| 7 | 7 | ||
| 8 | # Common support | 8 | # Common support |
| 9 | obj-y := id.o io.o control.o devices.o fb.o timer.o pm.o \ | 9 | obj-y := id.o io.o control.o devices.o fb.o timer.o pm.o \ |
| 10 | common.o gpio.o dma.o wd_timer.o display.o i2c.o hdq1w.o omap_hwmod.o \ | 10 | common.o dma.o wd_timer.o display.o i2c.o hdq1w.o omap_hwmod.o \ |
| 11 | omap_device.o omap-headsmp.o sram.o drm.o | 11 | omap_device.o omap-headsmp.o sram.o drm.o |
| 12 | 12 | ||
| 13 | hwmod-common = omap_hwmod.o omap_hwmod_reset.o \ | 13 | hwmod-common = omap_hwmod.o omap_hwmod_reset.o \ |
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 36d9943205ca..dc9e34e670a2 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
| @@ -304,7 +304,7 @@ DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)") | |||
| 304 | .init_late = am43xx_init_late, | 304 | .init_late = am43xx_init_late, |
| 305 | .init_irq = omap_gic_of_init, | 305 | .init_irq = omap_gic_of_init, |
| 306 | .init_machine = omap_generic_init, | 306 | .init_machine = omap_generic_init, |
| 307 | .init_time = omap4_local_timer_init, | 307 | .init_time = omap3_gptimer_timer_init, |
| 308 | .dt_compat = am43_boards_compat, | 308 | .dt_compat = am43_boards_compat, |
| 309 | .restart = omap44xx_restart, | 309 | .restart = omap44xx_restart, |
| 310 | MACHINE_END | 310 | MACHINE_END |
diff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c deleted file mode 100644 index 7a577145b68b..000000000000 --- a/arch/arm/mach-omap2/gpio.c +++ /dev/null | |||
| @@ -1,160 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * OMAP2+ specific gpio initialization | ||
| 3 | * | ||
| 4 | * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ | ||
| 5 | * | ||
| 6 | * Author: | ||
| 7 | * Charulatha V <charu@ti.com> | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or | ||
| 10 | * modify it under the terms of the GNU General Public License as | ||
| 11 | * published by the Free Software Foundation version 2. | ||
| 12 | * | ||
| 13 | * This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
| 14 | * kind, whether express or implied; without even the implied warranty | ||
| 15 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | * GNU General Public License for more details. | ||
| 17 | */ | ||
| 18 | |||
| 19 | #include <linux/gpio.h> | ||
| 20 | #include <linux/err.h> | ||
| 21 | #include <linux/slab.h> | ||
| 22 | #include <linux/interrupt.h> | ||
| 23 | #include <linux/of.h> | ||
| 24 | #include <linux/platform_data/gpio-omap.h> | ||
| 25 | |||
| 26 | #include "soc.h" | ||
| 27 | #include "omap_hwmod.h" | ||
| 28 | #include "omap_device.h" | ||
| 29 | #include "omap-pm.h" | ||
| 30 | |||
| 31 | #include "powerdomain.h" | ||
| 32 | |||
| 33 | static int __init omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused) | ||
| 34 | { | ||
| 35 | struct platform_device *pdev; | ||
| 36 | struct omap_gpio_platform_data *pdata; | ||
| 37 | struct omap_gpio_dev_attr *dev_attr; | ||
| 38 | char *name = "omap_gpio"; | ||
| 39 | int id; | ||
| 40 | struct powerdomain *pwrdm; | ||
| 41 | |||
| 42 | /* | ||
| 43 | * extract the device id from name field available in the | ||
| 44 | * hwmod database and use the same for constructing ids for | ||
| 45 | * gpio devices. | ||
| 46 | * CAUTION: Make sure the name in the hwmod database does | ||
| 47 | * not change. If changed, make corresponding change here | ||
| 48 | * or make use of static variable mechanism to handle this. | ||
| 49 | */ | ||
| 50 | sscanf(oh->name, "gpio%d", &id); | ||
| 51 | |||
| 52 | pdata = kzalloc(sizeof(struct omap_gpio_platform_data), GFP_KERNEL); | ||
| 53 | if (!pdata) { | ||
| 54 | pr_err("gpio%d: Memory allocation failed\n", id); | ||
| 55 | return -ENOMEM; | ||
| 56 | } | ||
| 57 | |||
| 58 | dev_attr = (struct omap_gpio_dev_attr *)oh->dev_attr; | ||
| 59 | pdata->bank_width = dev_attr->bank_width; | ||
| 60 | pdata->dbck_flag = dev_attr->dbck_flag; | ||
| 61 | pdata->get_context_loss_count = omap_pm_get_dev_context_loss_count; | ||
| 62 | pdata->regs = kzalloc(sizeof(struct omap_gpio_reg_offs), GFP_KERNEL); | ||
| 63 | if (!pdata->regs) { | ||
| 64 | pr_err("gpio%d: Memory allocation failed\n", id); | ||
| 65 | kfree(pdata); | ||
| 66 | return -ENOMEM; | ||
| 67 | } | ||
| 68 | |||
| 69 | switch (oh->class->rev) { | ||
| 70 | case 0: | ||
| 71 | if (id == 1) | ||
| 72 | /* non-wakeup GPIO pins for OMAP2 Bank1 */ | ||
| 73 | pdata->non_wakeup_gpios = 0xe203ffc0; | ||
| 74 | else if (id == 2) | ||
| 75 | /* non-wakeup GPIO pins for OMAP2 Bank2 */ | ||
| 76 | pdata->non_wakeup_gpios = 0x08700040; | ||
| 77 | /* fall through */ | ||
| 78 | |||
| 79 | case 1: | ||
| 80 | pdata->regs->revision = OMAP24XX_GPIO_REVISION; | ||
| 81 | pdata->regs->direction = OMAP24XX_GPIO_OE; | ||
| 82 | pdata->regs->datain = OMAP24XX_GPIO_DATAIN; | ||
| 83 | pdata->regs->dataout = OMAP24XX_GPIO_DATAOUT; | ||
| 84 | pdata->regs->set_dataout = OMAP24XX_GPIO_SETDATAOUT; | ||
| 85 | pdata->regs->clr_dataout = OMAP24XX_GPIO_CLEARDATAOUT; | ||
| 86 | pdata->regs->irqstatus = OMAP24XX_GPIO_IRQSTATUS1; | ||
| 87 | pdata->regs->irqstatus2 = OMAP24XX_GPIO_IRQSTATUS2; | ||
| 88 | pdata->regs->irqenable = OMAP24XX_GPIO_IRQENABLE1; | ||
| 89 | pdata->regs->irqenable2 = OMAP24XX_GPIO_IRQENABLE2; | ||
| 90 | pdata->regs->set_irqenable = OMAP24XX_GPIO_SETIRQENABLE1; | ||
| 91 | pdata->regs->clr_irqenable = OMAP24XX_GPIO_CLEARIRQENABLE1; | ||
| 92 | pdata->regs->debounce = OMAP24XX_GPIO_DEBOUNCE_VAL; | ||
| 93 | pdata->regs->debounce_en = OMAP24XX_GPIO_DEBOUNCE_EN; | ||
| 94 | pdata->regs->ctrl = OMAP24XX_GPIO_CTRL; | ||
| 95 | pdata->regs->wkup_en = OMAP24XX_GPIO_WAKE_EN; | ||
| 96 | pdata->regs->leveldetect0 = OMAP24XX_GPIO_LEVELDETECT0; | ||
| 97 | pdata->regs->leveldetect1 = OMAP24XX_GPIO_LEVELDETECT1; | ||
| 98 | pdata->regs->risingdetect = OMAP24XX_GPIO_RISINGDETECT; | ||
| 99 | pdata->regs->fallingdetect = OMAP24XX_GPIO_FALLINGDETECT; | ||
| 100 | break; | ||
| 101 | case 2: | ||
| 102 | pdata->regs->revision = OMAP4_GPIO_REVISION; | ||
| 103 | pdata->regs->direction = OMAP4_GPIO_OE; | ||
| 104 | pdata->regs->datain = OMAP4_GPIO_DATAIN; | ||
| 105 | pdata->regs->dataout = OMAP4_GPIO_DATAOUT; | ||
| 106 | pdata->regs->set_dataout = OMAP4_GPIO_SETDATAOUT; | ||
| 107 | pdata->regs->clr_dataout = OMAP4_GPIO_CLEARDATAOUT; | ||
| 108 | pdata->regs->irqstatus_raw0 = OMAP4_GPIO_IRQSTATUSRAW0; | ||
| 109 | pdata->regs->irqstatus_raw1 = OMAP4_GPIO_IRQSTATUSRAW1; | ||
| 110 | pdata->regs->irqstatus = OMAP4_GPIO_IRQSTATUS0; | ||
| 111 | pdata->regs->irqstatus2 = OMAP4_GPIO_IRQSTATUS1; | ||
| 112 | pdata->regs->irqenable = OMAP4_GPIO_IRQSTATUSSET0; | ||
| 113 | pdata->regs->irqenable2 = OMAP4_GPIO_IRQSTATUSSET1; | ||
| 114 | pdata->regs->set_irqenable = OMAP4_GPIO_IRQSTATUSSET0; | ||
| 115 | pdata->regs->clr_irqenable = OMAP4_GPIO_IRQSTATUSCLR0; | ||
| 116 | pdata->regs->debounce = OMAP4_GPIO_DEBOUNCINGTIME; | ||
| 117 | pdata->regs->debounce_en = OMAP4_GPIO_DEBOUNCENABLE; | ||
| 118 | pdata->regs->ctrl = OMAP4_GPIO_CTRL; | ||
| 119 | pdata->regs->wkup_en = OMAP4_GPIO_IRQWAKEN0; | ||
| 120 | pdata->regs->leveldetect0 = OMAP4_GPIO_LEVELDETECT0; | ||
| 121 | pdata->regs->leveldetect1 = OMAP4_GPIO_LEVELDETECT1; | ||
| 122 | pdata->regs->risingdetect = OMAP4_GPIO_RISINGDETECT; | ||
| 123 | pdata->regs->fallingdetect = OMAP4_GPIO_FALLINGDETECT; | ||
| 124 | break; | ||
| 125 | default: | ||
| 126 | WARN(1, "Invalid gpio bank_type\n"); | ||
| 127 | kfree(pdata->regs); | ||
| 128 | kfree(pdata); | ||
| 129 | return -EINVAL; | ||
| 130 | } | ||
| 131 | |||
| 132 | pwrdm = omap_hwmod_get_pwrdm(oh); | ||
| 133 | pdata->loses_context = pwrdm_can_ever_lose_context(pwrdm); | ||
| 134 | |||
| 135 | pdev = omap_device_build(name, id - 1, oh, pdata, sizeof(*pdata)); | ||
| 136 | kfree(pdata); | ||
| 137 | |||
| 138 | if (IS_ERR(pdev)) { | ||
| 139 | WARN(1, "Can't build omap_device for %s:%s.\n", | ||
| 140 | name, oh->name); | ||
| 141 | return PTR_ERR(pdev); | ||
| 142 | } | ||
| 143 | |||
| 144 | return 0; | ||
| 145 | } | ||
| 146 | |||
| 147 | /* | ||
| 148 | * gpio_init needs to be done before | ||
| 149 | * machine_init functions access gpio APIs. | ||
| 150 | * Hence gpio_init is a omap_postcore_initcall. | ||
| 151 | */ | ||
| 152 | static int __init omap2_gpio_init(void) | ||
| 153 | { | ||
| 154 | /* If dtb is there, the devices will be created dynamically */ | ||
| 155 | if (of_have_populated_dt()) | ||
| 156 | return -ENODEV; | ||
| 157 | |||
| 158 | return omap_hwmod_for_each_by_class("gpio", omap2_gpio_dev_init, NULL); | ||
| 159 | } | ||
| 160 | omap_postcore_initcall(omap2_gpio_init); | ||
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 759e1d45ba25..e8b988714a09 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
| @@ -741,14 +741,14 @@ static int _init_main_clk(struct omap_hwmod *oh) | |||
| 741 | int ret = 0; | 741 | int ret = 0; |
| 742 | char name[MOD_CLK_MAX_NAME_LEN]; | 742 | char name[MOD_CLK_MAX_NAME_LEN]; |
| 743 | struct clk *clk; | 743 | struct clk *clk; |
| 744 | static const char modck[] = "_mod_ck"; | ||
| 744 | 745 | ||
| 745 | /* +7 magic comes from '_mod_ck' suffix */ | 746 | if (strlen(oh->name) >= MOD_CLK_MAX_NAME_LEN - strlen(modck)) |
| 746 | if (strlen(oh->name) + 7 > MOD_CLK_MAX_NAME_LEN) | ||
| 747 | pr_warn("%s: warning: cropping name for %s\n", __func__, | 747 | pr_warn("%s: warning: cropping name for %s\n", __func__, |
| 748 | oh->name); | 748 | oh->name); |
| 749 | 749 | ||
| 750 | strncpy(name, oh->name, MOD_CLK_MAX_NAME_LEN - 7); | 750 | strlcpy(name, oh->name, MOD_CLK_MAX_NAME_LEN - strlen(modck)); |
| 751 | strcat(name, "_mod_ck"); | 751 | strlcat(name, modck, MOD_CLK_MAX_NAME_LEN); |
| 752 | 752 | ||
| 753 | clk = clk_get(NULL, name); | 753 | clk = clk_get(NULL, name); |
| 754 | if (!IS_ERR(clk)) { | 754 | if (!IS_ERR(clk)) { |
diff --git a/arch/arm/mach-omap2/omap_hwmod_common_data.h b/arch/arm/mach-omap2/omap_hwmod_common_data.h index cdfbb44ceb0c..f22e9cb39f4a 100644 --- a/arch/arm/mach-omap2/omap_hwmod_common_data.h +++ b/arch/arm/mach-omap2/omap_hwmod_common_data.h | |||
| @@ -121,10 +121,6 @@ extern struct omap_hwmod_irq_info omap2_uart3_mpu_irqs[]; | |||
| 121 | extern struct omap_hwmod_irq_info omap2_dispc_irqs[]; | 121 | extern struct omap_hwmod_irq_info omap2_dispc_irqs[]; |
| 122 | extern struct omap_hwmod_irq_info omap2_i2c1_mpu_irqs[]; | 122 | extern struct omap_hwmod_irq_info omap2_i2c1_mpu_irqs[]; |
| 123 | extern struct omap_hwmod_irq_info omap2_i2c2_mpu_irqs[]; | 123 | extern struct omap_hwmod_irq_info omap2_i2c2_mpu_irqs[]; |
| 124 | extern struct omap_hwmod_irq_info omap2_gpio1_irqs[]; | ||
| 125 | extern struct omap_hwmod_irq_info omap2_gpio2_irqs[]; | ||
| 126 | extern struct omap_hwmod_irq_info omap2_gpio3_irqs[]; | ||
| 127 | extern struct omap_hwmod_irq_info omap2_gpio4_irqs[]; | ||
| 128 | extern struct omap_hwmod_irq_info omap2_dma_system_irqs[]; | 124 | extern struct omap_hwmod_irq_info omap2_dma_system_irqs[]; |
| 129 | extern struct omap_hwmod_irq_info omap2_mcspi1_mpu_irqs[]; | 125 | extern struct omap_hwmod_irq_info omap2_mcspi1_mpu_irqs[]; |
| 130 | extern struct omap_hwmod_irq_info omap2_mcspi2_mpu_irqs[]; | 126 | extern struct omap_hwmod_irq_info omap2_mcspi2_mpu_irqs[]; |
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c index 5b2f5138d938..2b138b65129a 100644 --- a/arch/arm/mach-omap2/prm_common.c +++ b/arch/arm/mach-omap2/prm_common.c | |||
| @@ -295,10 +295,8 @@ int omap_prcm_register_chain_handler(struct omap_prcm_irq_setup *irq_setup) | |||
| 295 | GFP_KERNEL); | 295 | GFP_KERNEL); |
| 296 | 296 | ||
| 297 | if (!prcm_irq_chips || !prcm_irq_setup->saved_mask || | 297 | if (!prcm_irq_chips || !prcm_irq_setup->saved_mask || |
| 298 | !prcm_irq_setup->priority_mask) { | 298 | !prcm_irq_setup->priority_mask) |
| 299 | pr_err("PRCM: kzalloc failed\n"); | ||
| 300 | goto err; | 299 | goto err; |
| 301 | } | ||
| 302 | 300 | ||
| 303 | memset(mask, 0, sizeof(mask)); | 301 | memset(mask, 0, sizeof(mask)); |
| 304 | 302 | ||
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 56128da23c3a..07dd692c4737 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
| @@ -510,18 +510,19 @@ void __init omap3_secure_sync32k_timer_init(void) | |||
| 510 | } | 510 | } |
| 511 | #endif /* CONFIG_ARCH_OMAP3 */ | 511 | #endif /* CONFIG_ARCH_OMAP3 */ |
| 512 | 512 | ||
| 513 | #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX) | 513 | #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX) || \ |
| 514 | defined(CONFIG_SOC_AM43XX) | ||
| 514 | void __init omap3_gptimer_timer_init(void) | 515 | void __init omap3_gptimer_timer_init(void) |
| 515 | { | 516 | { |
| 516 | __omap_sync32k_timer_init(2, "timer_sys_ck", NULL, | 517 | __omap_sync32k_timer_init(2, "timer_sys_ck", NULL, |
| 517 | 1, "timer_sys_ck", "ti,timer-alwon", true); | 518 | 1, "timer_sys_ck", "ti,timer-alwon", true); |
| 518 | 519 | if (of_have_populated_dt()) | |
| 519 | clocksource_probe(); | 520 | clocksource_probe(); |
| 520 | } | 521 | } |
| 521 | #endif | 522 | #endif |
| 522 | 523 | ||
| 523 | #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \ | 524 | #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \ |
| 524 | defined(CONFIG_SOC_DRA7XX) || defined(CONFIG_SOC_AM43XX) | 525 | defined(CONFIG_SOC_DRA7XX) |
| 525 | static void __init omap4_sync32k_timer_init(void) | 526 | static void __init omap4_sync32k_timer_init(void) |
| 526 | { | 527 | { |
| 527 | __omap_sync32k_timer_init(1, "timer_32k_ck", "ti,timer-alwon", | 528 | __omap_sync32k_timer_init(1, "timer_32k_ck", "ti,timer-alwon", |
diff --git a/arch/arm/mach-s3c24xx/common.c b/arch/arm/mach-s3c24xx/common.c index f6c3f151d0d4..b59f4f4f256f 100644 --- a/arch/arm/mach-s3c24xx/common.c +++ b/arch/arm/mach-s3c24xx/common.c | |||
| @@ -345,10 +345,40 @@ static struct s3c24xx_dma_channel s3c2410_dma_channels[DMACH_MAX] = { | |||
| 345 | [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), }, | 345 | [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), }, |
| 346 | }; | 346 | }; |
| 347 | 347 | ||
| 348 | static const struct dma_slave_map s3c2410_dma_slave_map[] = { | ||
| 349 | { "s3c2410-sdi", "rx-tx", (void *)DMACH_SDI }, | ||
| 350 | { "s3c2410-spi.0", "rx", (void *)DMACH_SPI0_RX }, | ||
| 351 | { "s3c2410-spi.0", "tx", (void *)DMACH_SPI0_TX }, | ||
| 352 | { "s3c2410-spi.1", "rx", (void *)DMACH_SPI1_RX }, | ||
| 353 | { "s3c2410-spi.1", "tx", (void *)DMACH_SPI1_TX }, | ||
| 354 | /* | ||
| 355 | * The DMA request source[1] (DMACH_UARTx_SRC2) are | ||
| 356 | * not used in the UART driver. | ||
| 357 | */ | ||
| 358 | { "s3c2410-uart.0", "rx", (void *)DMACH_UART0 }, | ||
| 359 | { "s3c2410-uart.0", "tx", (void *)DMACH_UART0 }, | ||
| 360 | { "s3c2410-uart.1", "rx", (void *)DMACH_UART1 }, | ||
| 361 | { "s3c2410-uart.1", "tx", (void *)DMACH_UART1 }, | ||
| 362 | { "s3c2410-uart.2", "rx", (void *)DMACH_UART2 }, | ||
| 363 | { "s3c2410-uart.2", "tx", (void *)DMACH_UART2 }, | ||
| 364 | { "s3c24xx-iis", "rx", (void *)DMACH_I2S_IN }, | ||
| 365 | { "s3c24xx-iis", "tx", (void *)DMACH_I2S_OUT }, | ||
| 366 | { "s3c-hsudc", "rx0", (void *)DMACH_USB_EP1 }, | ||
| 367 | { "s3c-hsudc", "tx0", (void *)DMACH_USB_EP1 }, | ||
| 368 | { "s3c-hsudc", "rx1", (void *)DMACH_USB_EP2 }, | ||
| 369 | { "s3c-hsudc", "tx1", (void *)DMACH_USB_EP2 }, | ||
| 370 | { "s3c-hsudc", "rx2", (void *)DMACH_USB_EP3 }, | ||
| 371 | { "s3c-hsudc", "tx2", (void *)DMACH_USB_EP3 }, | ||
| 372 | { "s3c-hsudc", "rx3", (void *)DMACH_USB_EP4 }, | ||
| 373 | { "s3c-hsudc", "tx3", (void *)DMACH_USB_EP4 } | ||
| 374 | }; | ||
| 375 | |||
| 348 | static struct s3c24xx_dma_platdata s3c2410_dma_platdata = { | 376 | static struct s3c24xx_dma_platdata s3c2410_dma_platdata = { |
| 349 | .num_phy_channels = 4, | 377 | .num_phy_channels = 4, |
| 350 | .channels = s3c2410_dma_channels, | 378 | .channels = s3c2410_dma_channels, |
| 351 | .num_channels = DMACH_MAX, | 379 | .num_channels = DMACH_MAX, |
| 380 | .slave_map = s3c2410_dma_slave_map, | ||
| 381 | .slavecnt = ARRAY_SIZE(s3c2410_dma_slave_map), | ||
| 352 | }; | 382 | }; |
| 353 | 383 | ||
| 354 | struct platform_device s3c2410_device_dma = { | 384 | struct platform_device s3c2410_device_dma = { |
| @@ -388,10 +418,36 @@ static struct s3c24xx_dma_channel s3c2412_dma_channels[DMACH_MAX] = { | |||
| 388 | [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, 16 }, | 418 | [DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, 16 }, |
| 389 | }; | 419 | }; |
| 390 | 420 | ||
| 421 | static const struct dma_slave_map s3c2412_dma_slave_map[] = { | ||
| 422 | { "s3c2412-sdi", "rx-tx", (void *)DMACH_SDI }, | ||
| 423 | { "s3c2412-spi.0", "rx", (void *)DMACH_SPI0_RX }, | ||
| 424 | { "s3c2412-spi.0", "tx", (void *)DMACH_SPI0_TX }, | ||
| 425 | { "s3c2412-spi.1", "rx", (void *)DMACH_SPI1_RX }, | ||
| 426 | { "s3c2412-spi.1", "tx", (void *)DMACH_SPI1_TX }, | ||
| 427 | { "s3c2440-uart.0", "rx", (void *)DMACH_UART0 }, | ||
| 428 | { "s3c2440-uart.0", "tx", (void *)DMACH_UART0 }, | ||
| 429 | { "s3c2440-uart.1", "rx", (void *)DMACH_UART1 }, | ||
| 430 | { "s3c2440-uart.1", "tx", (void *)DMACH_UART1 }, | ||
| 431 | { "s3c2440-uart.2", "rx", (void *)DMACH_UART2 }, | ||
| 432 | { "s3c2440-uart.2", "tx", (void *)DMACH_UART2 }, | ||
| 433 | { "s3c2412-iis", "rx", (void *)DMACH_I2S_IN }, | ||
| 434 | { "s3c2412-iis", "tx", (void *)DMACH_I2S_OUT }, | ||
| 435 | { "s3c-hsudc", "rx0", (void *)DMACH_USB_EP1 }, | ||
| 436 | { "s3c-hsudc", "tx0", (void *)DMACH_USB_EP1 }, | ||
| 437 | { "s3c-hsudc", "rx1", (void *)DMACH_USB_EP2 }, | ||
| 438 | { "s3c-hsudc", "tx1", (void *)DMACH_USB_EP2 }, | ||
| 439 | { "s3c-hsudc", "rx2", (void *)DMACH_USB_EP3 }, | ||
| 440 | { "s3c-hsudc", "tx2", (void *)DMACH_USB_EP3 }, | ||
| 441 | { "s3c-hsudc", "rx3", (void *)DMACH_USB_EP4 }, | ||
| 442 | { "s3c-hsudc", "tx3", (void *)DMACH_USB_EP4 } | ||
| 443 | }; | ||
| 444 | |||
| 391 | static struct s3c24xx_dma_platdata s3c2412_dma_platdata = { | 445 | static struct s3c24xx_dma_platdata s3c2412_dma_platdata = { |
| 392 | .num_phy_channels = 4, | 446 | .num_phy_channels = 4, |
| 393 | .channels = s3c2412_dma_channels, | 447 | .channels = s3c2412_dma_channels, |
| 394 | .num_channels = DMACH_MAX, | 448 | .num_channels = DMACH_MAX, |
| 449 | .slave_map = s3c2412_dma_slave_map, | ||
| 450 | .slavecnt = ARRAY_SIZE(s3c2412_dma_slave_map), | ||
| 395 | }; | 451 | }; |
| 396 | 452 | ||
| 397 | struct platform_device s3c2412_device_dma = { | 453 | struct platform_device s3c2412_device_dma = { |
| @@ -534,10 +590,30 @@ static struct s3c24xx_dma_channel s3c2443_dma_channels[DMACH_MAX] = { | |||
| 534 | [DMACH_MIC_IN] = { S3C24XX_DMA_APB, true, 29 }, | 590 | [DMACH_MIC_IN] = { S3C24XX_DMA_APB, true, 29 }, |
| 535 | }; | 591 | }; |
| 536 | 592 | ||
| 593 | static const struct dma_slave_map s3c2443_dma_slave_map[] = { | ||
| 594 | { "s3c2440-sdi", "rx-tx", (void *)DMACH_SDI }, | ||
| 595 | { "s3c2443-spi.0", "rx", (void *)DMACH_SPI0_RX }, | ||
| 596 | { "s3c2443-spi.0", "tx", (void *)DMACH_SPI0_TX }, | ||
| 597 | { "s3c2443-spi.1", "rx", (void *)DMACH_SPI1_RX }, | ||
| 598 | { "s3c2443-spi.1", "tx", (void *)DMACH_SPI1_TX }, | ||
| 599 | { "s3c2440-uart.0", "rx", (void *)DMACH_UART0 }, | ||
| 600 | { "s3c2440-uart.0", "tx", (void *)DMACH_UART0 }, | ||
| 601 | { "s3c2440-uart.1", "rx", (void *)DMACH_UART1 }, | ||
| 602 | { "s3c2440-uart.1", "tx", (void *)DMACH_UART1 }, | ||
| 603 | { "s3c2440-uart.2", "rx", (void *)DMACH_UART2 }, | ||
| 604 | { "s3c2440-uart.2", "tx", (void *)DMACH_UART2 }, | ||
| 605 | { "s3c2440-uart.3", "rx", (void *)DMACH_UART3 }, | ||
| 606 | { "s3c2440-uart.3", "tx", (void *)DMACH_UART3 }, | ||
| 607 | { "s3c24xx-iis", "rx", (void *)DMACH_I2S_IN }, | ||
| 608 | { "s3c24xx-iis", "tx", (void *)DMACH_I2S_OUT }, | ||
| 609 | }; | ||
| 610 | |||
| 537 | static struct s3c24xx_dma_platdata s3c2443_dma_platdata = { | 611 | static struct s3c24xx_dma_platdata s3c2443_dma_platdata = { |
| 538 | .num_phy_channels = 6, | 612 | .num_phy_channels = 6, |
| 539 | .channels = s3c2443_dma_channels, | 613 | .channels = s3c2443_dma_channels, |
| 540 | .num_channels = DMACH_MAX, | 614 | .num_channels = DMACH_MAX, |
| 615 | .slave_map = s3c2443_dma_slave_map, | ||
| 616 | .slavecnt = ARRAY_SIZE(s3c2443_dma_slave_map), | ||
| 541 | }; | 617 | }; |
| 542 | 618 | ||
| 543 | struct platform_device s3c2443_device_dma = { | 619 | struct platform_device s3c2443_device_dma = { |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi index fc033c0d2a0f..eada0b58ba1c 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi | |||
| @@ -356,5 +356,21 @@ | |||
| 356 | status = "disabled"; | 356 | status = "disabled"; |
| 357 | }; | 357 | }; |
| 358 | }; | 358 | }; |
| 359 | |||
| 360 | vpu: vpu@d0100000 { | ||
| 361 | compatible = "amlogic,meson-gx-vpu"; | ||
| 362 | reg = <0x0 0xd0100000 0x0 0x100000>, | ||
| 363 | <0x0 0xc883c000 0x0 0x1000>, | ||
| 364 | <0x0 0xc8838000 0x0 0x1000>; | ||
| 365 | reg-names = "vpu", "hhi", "dmc"; | ||
| 366 | interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>; | ||
| 367 | #address-cells = <1>; | ||
| 368 | #size-cells = <0>; | ||
| 369 | |||
| 370 | /* CVBS VDAC output port */ | ||
| 371 | cvbs_vdac_port: port@0 { | ||
| 372 | reg = <0>; | ||
| 373 | }; | ||
| 374 | }; | ||
| 359 | }; | 375 | }; |
| 360 | }; | 376 | }; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts index 969682092e0f..4cbd626a9e88 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts | |||
| @@ -142,6 +142,16 @@ | |||
| 142 | clocks = <&wifi32k>; | 142 | clocks = <&wifi32k>; |
| 143 | clock-names = "ext_clock"; | 143 | clock-names = "ext_clock"; |
| 144 | }; | 144 | }; |
| 145 | |||
| 146 | cvbs-connector { | ||
| 147 | compatible = "composite-video-connector"; | ||
| 148 | |||
| 149 | port { | ||
| 150 | cvbs_connector_in: endpoint { | ||
| 151 | remote-endpoint = <&cvbs_vdac_out>; | ||
| 152 | }; | ||
| 153 | }; | ||
| 154 | }; | ||
| 145 | }; | 155 | }; |
| 146 | 156 | ||
| 147 | &uart_AO { | 157 | &uart_AO { |
| @@ -229,3 +239,9 @@ | |||
| 229 | clocks = <&clkc CLKID_FCLK_DIV4>; | 239 | clocks = <&clkc CLKID_FCLK_DIV4>; |
| 230 | clock-names = "clkin0"; | 240 | clock-names = "clkin0"; |
| 231 | }; | 241 | }; |
| 242 | |||
| 243 | &cvbs_vdac_port { | ||
| 244 | cvbs_vdac_out: endpoint { | ||
| 245 | remote-endpoint = <&cvbs_connector_in>; | ||
| 246 | }; | ||
| 247 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi index 203be28978d5..4a96e0f6f926 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi | |||
| @@ -125,6 +125,16 @@ | |||
| 125 | clocks = <&wifi32k>; | 125 | clocks = <&wifi32k>; |
| 126 | clock-names = "ext_clock"; | 126 | clock-names = "ext_clock"; |
| 127 | }; | 127 | }; |
| 128 | |||
| 129 | cvbs-connector { | ||
| 130 | compatible = "composite-video-connector"; | ||
| 131 | |||
| 132 | port { | ||
| 133 | cvbs_connector_in: endpoint { | ||
| 134 | remote-endpoint = <&cvbs_vdac_out>; | ||
| 135 | }; | ||
| 136 | }; | ||
| 137 | }; | ||
| 128 | }; | 138 | }; |
| 129 | 139 | ||
| 130 | /* This UART is brought out to the DB9 connector */ | 140 | /* This UART is brought out to the DB9 connector */ |
| @@ -234,3 +244,9 @@ | |||
| 234 | clocks = <&clkc CLKID_FCLK_DIV4>; | 244 | clocks = <&clkc CLKID_FCLK_DIV4>; |
| 235 | clock-names = "clkin0"; | 245 | clock-names = "clkin0"; |
| 236 | }; | 246 | }; |
| 247 | |||
| 248 | &cvbs_vdac_port { | ||
| 249 | cvbs_vdac_out: endpoint { | ||
| 250 | remote-endpoint = <&cvbs_connector_in>; | ||
| 251 | }; | ||
| 252 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi index 51edd5b5c460..596240c38a9c 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | |||
| @@ -506,3 +506,7 @@ | |||
| 506 | <&clkc CLKID_FCLK_DIV2>; | 506 | <&clkc CLKID_FCLK_DIV2>; |
| 507 | clock-names = "core", "clkin0", "clkin1"; | 507 | clock-names = "core", "clkin0", "clkin1"; |
| 508 | }; | 508 | }; |
| 509 | |||
| 510 | &vpu { | ||
| 511 | compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu"; | ||
| 512 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-nexbox-a95x.dts index e99101ae9664..cea4a3eded9b 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-nexbox-a95x.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-nexbox-a95x.dts | |||
| @@ -117,6 +117,16 @@ | |||
| 117 | clocks = <&wifi32k>; | 117 | clocks = <&wifi32k>; |
| 118 | clock-names = "ext_clock"; | 118 | clock-names = "ext_clock"; |
| 119 | }; | 119 | }; |
| 120 | |||
| 121 | cvbs-connector { | ||
| 122 | compatible = "composite-video-connector"; | ||
| 123 | |||
| 124 | port { | ||
| 125 | cvbs_connector_in: endpoint { | ||
| 126 | remote-endpoint = <&cvbs_vdac_out>; | ||
| 127 | }; | ||
| 128 | }; | ||
| 129 | }; | ||
| 120 | }; | 130 | }; |
| 121 | 131 | ||
| 122 | &uart_AO { | 132 | &uart_AO { |
| @@ -203,3 +213,9 @@ | |||
| 203 | clocks = <&clkc CLKID_FCLK_DIV4>; | 213 | clocks = <&clkc CLKID_FCLK_DIV4>; |
| 204 | clock-names = "clkin0"; | 214 | clock-names = "clkin0"; |
| 205 | }; | 215 | }; |
| 216 | |||
| 217 | &cvbs_vdac_port { | ||
| 218 | cvbs_vdac_out: endpoint { | ||
| 219 | remote-endpoint = <&cvbs_connector_in>; | ||
| 220 | }; | ||
| 221 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi index 9f89b99c4806..69216246275d 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | |||
| @@ -43,7 +43,7 @@ | |||
| 43 | 43 | ||
| 44 | #include "meson-gx.dtsi" | 44 | #include "meson-gx.dtsi" |
| 45 | #include <dt-bindings/clock/gxbb-clkc.h> | 45 | #include <dt-bindings/clock/gxbb-clkc.h> |
| 46 | #include <dt-bindings/gpio/meson-gxbb-gpio.h> | 46 | #include <dt-bindings/gpio/meson-gxl-gpio.h> |
| 47 | 47 | ||
| 48 | / { | 48 | / { |
| 49 | compatible = "amlogic,meson-gxl"; | 49 | compatible = "amlogic,meson-gxl"; |
| @@ -299,3 +299,7 @@ | |||
| 299 | <&clkc CLKID_FCLK_DIV2>; | 299 | <&clkc CLKID_FCLK_DIV2>; |
| 300 | clock-names = "core", "clkin0", "clkin1"; | 300 | clock-names = "core", "clkin0", "clkin1"; |
| 301 | }; | 301 | }; |
| 302 | |||
| 303 | &vpu { | ||
| 304 | compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu"; | ||
| 305 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts index f859d75db8bd..5a337d339df1 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts | |||
| @@ -90,6 +90,16 @@ | |||
| 90 | compatible = "mmc-pwrseq-emmc"; | 90 | compatible = "mmc-pwrseq-emmc"; |
| 91 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | 91 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; |
| 92 | }; | 92 | }; |
| 93 | |||
| 94 | cvbs-connector { | ||
| 95 | compatible = "composite-video-connector"; | ||
| 96 | |||
| 97 | port { | ||
| 98 | cvbs_connector_in: endpoint { | ||
| 99 | remote-endpoint = <&cvbs_vdac_out>; | ||
| 100 | }; | ||
| 101 | }; | ||
| 102 | }; | ||
| 93 | }; | 103 | }; |
| 94 | 104 | ||
| 95 | /* This UART is brought out to the DB9 connector */ | 105 | /* This UART is brought out to the DB9 connector */ |
| @@ -167,3 +177,9 @@ | |||
| 167 | max-speed = <1000>; | 177 | max-speed = <1000>; |
| 168 | }; | 178 | }; |
| 169 | }; | 179 | }; |
| 180 | |||
| 181 | &cvbs_vdac_port { | ||
| 182 | cvbs_vdac_out: endpoint { | ||
| 183 | remote-endpoint = <&cvbs_connector_in>; | ||
| 184 | }; | ||
| 185 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi index c1974bbbddea..eb2f0c3e5e53 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi | |||
| @@ -112,3 +112,7 @@ | |||
| 112 | }; | 112 | }; |
| 113 | }; | 113 | }; |
| 114 | }; | 114 | }; |
| 115 | |||
| 116 | &vpu { | ||
| 117 | compatible = "amlogic,meson-gxm-vpu", "amlogic,meson-gx-vpu"; | ||
| 118 | }; | ||
diff --git a/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts b/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts index a852e28a40e1..a83ed2c6bbf7 100644 --- a/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts +++ b/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts | |||
| @@ -81,7 +81,7 @@ | |||
| 81 | #address-cells = <0>; | 81 | #address-cells = <0>; |
| 82 | interrupt-controller; | 82 | interrupt-controller; |
| 83 | reg = <0x0 0x2c001000 0 0x1000>, | 83 | reg = <0x0 0x2c001000 0 0x1000>, |
| 84 | <0x0 0x2c002000 0 0x1000>, | 84 | <0x0 0x2c002000 0 0x2000>, |
| 85 | <0x0 0x2c004000 0 0x2000>, | 85 | <0x0 0x2c004000 0 0x2000>, |
| 86 | <0x0 0x2c006000 0 0x2000>; | 86 | <0x0 0x2c006000 0 0x2000>; |
| 87 | interrupts = <1 9 0xf04>; | 87 | interrupts = <1 9 0xf04>; |
diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi index 9d1d7ad9b075..29ed6b61c737 100644 --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi | |||
| @@ -64,6 +64,16 @@ | |||
| 64 | reg = <0x0 0x86000000 0x0 0x200000>; | 64 | reg = <0x0 0x86000000 0x0 0x200000>; |
| 65 | no-map; | 65 | no-map; |
| 66 | }; | 66 | }; |
| 67 | |||
| 68 | memory@85800000 { | ||
| 69 | reg = <0x0 0x85800000 0x0 0x800000>; | ||
| 70 | no-map; | ||
| 71 | }; | ||
| 72 | |||
| 73 | memory@86200000 { | ||
| 74 | reg = <0x0 0x86200000 0x0 0x2600000>; | ||
| 75 | no-map; | ||
| 76 | }; | ||
| 67 | }; | 77 | }; |
| 68 | 78 | ||
| 69 | cpus { | 79 | cpus { |
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts index 6ffb0517421a..dbea2c3d8f0c 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | |||
| @@ -169,7 +169,7 @@ | |||
| 169 | power-source = <3300>; | 169 | power-source = <3300>; |
| 170 | }; | 170 | }; |
| 171 | 171 | ||
| 172 | sdhi0_pins_uhs: sd0 { | 172 | sdhi0_pins_uhs: sd0_uhs { |
| 173 | groups = "sdhi0_data4", "sdhi0_ctrl"; | 173 | groups = "sdhi0_data4", "sdhi0_ctrl"; |
| 174 | function = "sdhi0"; | 174 | function = "sdhi0"; |
| 175 | power-source = <1800>; | 175 | power-source = <1800>; |
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index 869dded0f09f..33b744d54739 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig | |||
| @@ -331,6 +331,7 @@ CONFIG_DRM_VC4=m | |||
| 331 | CONFIG_DRM_PANEL_SIMPLE=m | 331 | CONFIG_DRM_PANEL_SIMPLE=m |
| 332 | CONFIG_DRM_I2C_ADV7511=m | 332 | CONFIG_DRM_I2C_ADV7511=m |
| 333 | CONFIG_DRM_HISI_KIRIN=m | 333 | CONFIG_DRM_HISI_KIRIN=m |
| 334 | CONFIG_DRM_MESON=m | ||
| 334 | CONFIG_FB=y | 335 | CONFIG_FB=y |
| 335 | CONFIG_FB_ARMCLCD=y | 336 | CONFIG_FB_ARMCLCD=y |
| 336 | CONFIG_BACKLIGHT_GENERIC=m | 337 | CONFIG_BACKLIGHT_GENERIC=m |
diff --git a/drivers/firmware/arm_scpi.c b/drivers/firmware/arm_scpi.c index 70e13230d8db..9ad0b1934be9 100644 --- a/drivers/firmware/arm_scpi.c +++ b/drivers/firmware/arm_scpi.c | |||
| @@ -721,11 +721,17 @@ static int scpi_sensor_get_value(u16 sensor, u64 *val) | |||
| 721 | 721 | ||
| 722 | ret = scpi_send_message(CMD_SENSOR_VALUE, &id, sizeof(id), | 722 | ret = scpi_send_message(CMD_SENSOR_VALUE, &id, sizeof(id), |
| 723 | &buf, sizeof(buf)); | 723 | &buf, sizeof(buf)); |
| 724 | if (!ret) | 724 | if (ret) |
| 725 | return ret; | ||
| 726 | |||
| 727 | if (scpi_info->is_legacy) | ||
| 728 | /* only 32-bits supported, hi_val can be junk */ | ||
| 729 | *val = le32_to_cpu(buf.lo_val); | ||
| 730 | else | ||
| 725 | *val = (u64)le32_to_cpu(buf.hi_val) << 32 | | 731 | *val = (u64)le32_to_cpu(buf.hi_val) << 32 | |
| 726 | le32_to_cpu(buf.lo_val); | 732 | le32_to_cpu(buf.lo_val); |
| 727 | 733 | ||
| 728 | return ret; | 734 | return 0; |
| 729 | } | 735 | } |
| 730 | 736 | ||
| 731 | static int scpi_device_get_power_state(u16 dev_id) | 737 | static int scpi_device_get_power_state(u16 dev_id) |
diff --git a/drivers/firmware/psci_checker.c b/drivers/firmware/psci_checker.c index 44bdb78f837b..29d58feaf675 100644 --- a/drivers/firmware/psci_checker.c +++ b/drivers/firmware/psci_checker.c | |||
| @@ -270,8 +270,7 @@ static int suspend_test_thread(void *arg) | |||
| 270 | struct cpuidle_device *dev; | 270 | struct cpuidle_device *dev; |
| 271 | struct cpuidle_driver *drv; | 271 | struct cpuidle_driver *drv; |
| 272 | /* No need for an actual callback, we just want to wake up the CPU. */ | 272 | /* No need for an actual callback, we just want to wake up the CPU. */ |
| 273 | struct timer_list wakeup_timer = | 273 | struct timer_list wakeup_timer; |
| 274 | TIMER_INITIALIZER(dummy_callback, 0, 0); | ||
| 275 | 274 | ||
| 276 | /* Wait for the main thread to give the start signal. */ | 275 | /* Wait for the main thread to give the start signal. */ |
| 277 | wait_for_completion(&suspend_threads_started); | 276 | wait_for_completion(&suspend_threads_started); |
| @@ -287,6 +286,7 @@ static int suspend_test_thread(void *arg) | |||
| 287 | pr_info("CPU %d entering suspend cycles, states 1 through %d\n", | 286 | pr_info("CPU %d entering suspend cycles, states 1 through %d\n", |
| 288 | cpu, drv->state_count - 1); | 287 | cpu, drv->state_count - 1); |
| 289 | 288 | ||
| 289 | setup_timer_on_stack(&wakeup_timer, dummy_callback, 0); | ||
| 290 | for (i = 0; i < NUM_SUSPEND_CYCLE; ++i) { | 290 | for (i = 0; i < NUM_SUSPEND_CYCLE; ++i) { |
| 291 | int index; | 291 | int index; |
| 292 | /* | 292 | /* |
diff --git a/include/dt-bindings/mfd/tps65217.h b/include/dt-bindings/mfd/tps65217.h deleted file mode 100644 index cafb9e60cf12..000000000000 --- a/include/dt-bindings/mfd/tps65217.h +++ /dev/null | |||
| @@ -1,26 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * This header provides macros for TI TPS65217 DT bindings. | ||
| 3 | * | ||
| 4 | * Copyright (C) 2016 Texas Instruments | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | * | ||
| 10 | * This program is distributed in the hope that it will be useful, but | ||
| 11 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 13 | * General Public License for more details. | ||
| 14 | * | ||
| 15 | * You should have received a copy of the GNU General Public License along with | ||
| 16 | * this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 17 | */ | ||
| 18 | |||
| 19 | #ifndef __DT_BINDINGS_TPS65217_H__ | ||
| 20 | #define __DT_BINDINGS_TPS65217_H__ | ||
| 21 | |||
| 22 | #define TPS65217_IRQ_USB 0 | ||
| 23 | #define TPS65217_IRQ_AC 1 | ||
| 24 | #define TPS65217_IRQ_PB 2 | ||
| 25 | |||
| 26 | #endif | ||
