diff options
Diffstat (limited to 'arch/arm')
95 files changed, 608 insertions, 260 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index e25419817791..15949459611f 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -1578,6 +1578,7 @@ config BL_SWITCHER_DUMMY_IF | |||
| 1578 | 1578 | ||
| 1579 | choice | 1579 | choice |
| 1580 | prompt "Memory split" | 1580 | prompt "Memory split" |
| 1581 | depends on MMU | ||
| 1581 | default VMSPLIT_3G | 1582 | default VMSPLIT_3G |
| 1582 | help | 1583 | help |
| 1583 | Select the desired split between kernel and user memory. | 1584 | Select the desired split between kernel and user memory. |
| @@ -1595,6 +1596,7 @@ endchoice | |||
| 1595 | 1596 | ||
| 1596 | config PAGE_OFFSET | 1597 | config PAGE_OFFSET |
| 1597 | hex | 1598 | hex |
| 1599 | default PHYS_OFFSET if !MMU | ||
| 1598 | default 0x40000000 if VMSPLIT_1G | 1600 | default 0x40000000 if VMSPLIT_1G |
| 1599 | default 0x80000000 if VMSPLIT_2G | 1601 | default 0x80000000 if VMSPLIT_2G |
| 1600 | default 0xC0000000 | 1602 | default 0xC0000000 |
| @@ -1903,6 +1905,7 @@ config XEN | |||
| 1903 | depends on ARM && AEABI && OF | 1905 | depends on ARM && AEABI && OF |
| 1904 | depends on CPU_V7 && !CPU_V6 | 1906 | depends on CPU_V7 && !CPU_V6 |
| 1905 | depends on !GENERIC_ATOMIC64 | 1907 | depends on !GENERIC_ATOMIC64 |
| 1908 | depends on MMU | ||
| 1906 | select ARM_PSCI | 1909 | select ARM_PSCI |
| 1907 | select SWIOTLB_XEN | 1910 | select SWIOTLB_XEN |
| 1908 | select ARCH_DMA_ADDR_T_64BIT | 1911 | select ARCH_DMA_ADDR_T_64BIT |
diff --git a/arch/arm/boot/compressed/.gitignore b/arch/arm/boot/compressed/.gitignore index 47279aa96a6a..0714e0334e33 100644 --- a/arch/arm/boot/compressed/.gitignore +++ b/arch/arm/boot/compressed/.gitignore | |||
| @@ -1,4 +1,5 @@ | |||
| 1 | ashldi3.S | 1 | ashldi3.S |
| 2 | bswapsdi2.S | ||
| 2 | font.c | 3 | font.c |
| 3 | lib1funcs.S | 4 | lib1funcs.S |
| 4 | hyp-stub.S | 5 | hyp-stub.S |
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index b9d6a8b485e0..032030361bef 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
| @@ -38,6 +38,7 @@ dtb-$(CONFIG_ARCH_AT91) += at91sam9g35ek.dtb | |||
| 38 | dtb-$(CONFIG_ARCH_AT91) += at91sam9x25ek.dtb | 38 | dtb-$(CONFIG_ARCH_AT91) += at91sam9x25ek.dtb |
| 39 | dtb-$(CONFIG_ARCH_AT91) += at91sam9x35ek.dtb | 39 | dtb-$(CONFIG_ARCH_AT91) += at91sam9x35ek.dtb |
| 40 | # sama5d3 | 40 | # sama5d3 |
| 41 | dtb-$(CONFIG_ARCH_AT91) += at91-sama5d3_xplained.dtb | ||
| 41 | dtb-$(CONFIG_ARCH_AT91) += sama5d31ek.dtb | 42 | dtb-$(CONFIG_ARCH_AT91) += sama5d31ek.dtb |
| 42 | dtb-$(CONFIG_ARCH_AT91) += sama5d33ek.dtb | 43 | dtb-$(CONFIG_ARCH_AT91) += sama5d33ek.dtb |
| 43 | dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dtb | 44 | dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dtb |
| @@ -208,7 +209,8 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ | |||
| 208 | omap3-n900.dtb \ | 209 | omap3-n900.dtb \ |
| 209 | omap3-n9.dtb \ | 210 | omap3-n9.dtb \ |
| 210 | omap3-n950.dtb \ | 211 | omap3-n950.dtb \ |
| 211 | omap3-tobi.dtb \ | 212 | omap3-overo-tobi.dtb \ |
| 213 | omap3-overo-storm-tobi.dtb \ | ||
| 212 | omap3-gta04.dtb \ | 214 | omap3-gta04.dtb \ |
| 213 | omap3-igep0020.dtb \ | 215 | omap3-igep0020.dtb \ |
| 214 | omap3-igep0030.dtb \ | 216 | omap3-igep0030.dtb \ |
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts index 4718ec4a4dbf..486880b74831 100644 --- a/arch/arm/boot/dts/am335x-evmsk.dts +++ b/arch/arm/boot/dts/am335x-evmsk.dts | |||
| @@ -121,7 +121,7 @@ | |||
| 121 | ti,model = "AM335x-EVMSK"; | 121 | ti,model = "AM335x-EVMSK"; |
| 122 | ti,audio-codec = <&tlv320aic3106>; | 122 | ti,audio-codec = <&tlv320aic3106>; |
| 123 | ti,mcasp-controller = <&mcasp1>; | 123 | ti,mcasp-controller = <&mcasp1>; |
| 124 | ti,codec-clock-rate = <24576000>; | 124 | ti,codec-clock-rate = <24000000>; |
| 125 | ti,audio-routing = | 125 | ti,audio-routing = |
| 126 | "Headphone Jack", "HPLOUT", | 126 | "Headphone Jack", "HPLOUT", |
| 127 | "Headphone Jack", "HPROUT"; | 127 | "Headphone Jack", "HPROUT"; |
| @@ -256,6 +256,12 @@ | |||
| 256 | >; | 256 | >; |
| 257 | }; | 257 | }; |
| 258 | 258 | ||
| 259 | mmc1_pins: pinmux_mmc1_pins { | ||
| 260 | pinctrl-single,pins = < | ||
| 261 | 0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */ | ||
| 262 | >; | ||
| 263 | }; | ||
| 264 | |||
| 259 | mcasp1_pins: mcasp1_pins { | 265 | mcasp1_pins: mcasp1_pins { |
| 260 | pinctrl-single,pins = < | 266 | pinctrl-single,pins = < |
| 261 | 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */ | 267 | 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */ |
| @@ -456,6 +462,9 @@ | |||
| 456 | status = "okay"; | 462 | status = "okay"; |
| 457 | vmmc-supply = <&vmmc_reg>; | 463 | vmmc-supply = <&vmmc_reg>; |
| 458 | bus-width = <4>; | 464 | bus-width = <4>; |
| 465 | pinctrl-names = "default"; | ||
| 466 | pinctrl-0 = <&mmc1_pins>; | ||
| 467 | cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; | ||
| 459 | }; | 468 | }; |
| 460 | 469 | ||
| 461 | &sham { | 470 | &sham { |
diff --git a/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/arch/arm/boot/dts/armada-xp-mv78260.dtsi index 66609684d41b..9480cf891f8c 100644 --- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | gpio0 = &gpio0; | 23 | gpio0 = &gpio0; |
| 24 | gpio1 = &gpio1; | 24 | gpio1 = &gpio1; |
| 25 | gpio2 = &gpio2; | 25 | gpio2 = &gpio2; |
| 26 | eth3 = ð3; | ||
| 26 | }; | 27 | }; |
| 27 | 28 | ||
| 28 | cpus { | 29 | cpus { |
| @@ -291,7 +292,7 @@ | |||
| 291 | interrupts = <91>; | 292 | interrupts = <91>; |
| 292 | }; | 293 | }; |
| 293 | 294 | ||
| 294 | ethernet@34000 { | 295 | eth3: ethernet@34000 { |
| 295 | compatible = "marvell,armada-370-neta"; | 296 | compatible = "marvell,armada-370-neta"; |
| 296 | reg = <0x34000 0x4000>; | 297 | reg = <0x34000 0x4000>; |
| 297 | interrupts = <14>; | 298 | interrupts = <14>; |
diff --git a/arch/arm/boot/dts/at91-sama5d3_xplained.dts b/arch/arm/boot/dts/at91-sama5d3_xplained.dts new file mode 100644 index 000000000000..ce1375595e5f --- /dev/null +++ b/arch/arm/boot/dts/at91-sama5d3_xplained.dts | |||
| @@ -0,0 +1,229 @@ | |||
| 1 | /* | ||
| 2 | * at91-sama5d3_xplained.dts - Device Tree file for the SAMA5D3 Xplained board | ||
| 3 | * | ||
| 4 | * Copyright (C) 2014 Atmel, | ||
| 5 | * 2014 Nicolas Ferre <nicolas.ferre@atmel.com> | ||
| 6 | * | ||
| 7 | * Licensed under GPLv2 or later. | ||
| 8 | */ | ||
| 9 | /dts-v1/; | ||
| 10 | #include "sama5d36.dtsi" | ||
| 11 | |||
| 12 | / { | ||
| 13 | model = "SAMA5D3 Xplained"; | ||
| 14 | compatible = "atmel,sama5d3-xplained", "atmel,sama5d3", "atmel,sama5"; | ||
| 15 | |||
| 16 | chosen { | ||
| 17 | bootargs = "console=ttyS0,115200"; | ||
| 18 | }; | ||
| 19 | |||
| 20 | memory { | ||
| 21 | reg = <0x20000000 0x10000000>; | ||
| 22 | }; | ||
| 23 | |||
| 24 | ahb { | ||
| 25 | apb { | ||
| 26 | mmc0: mmc@f0000000 { | ||
| 27 | pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>; | ||
| 28 | status = "okay"; | ||
| 29 | slot@0 { | ||
| 30 | reg = <0>; | ||
| 31 | bus-width = <8>; | ||
| 32 | cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>; | ||
| 33 | }; | ||
| 34 | }; | ||
| 35 | |||
| 36 | spi0: spi@f0004000 { | ||
| 37 | cs-gpios = <&pioD 13 0>; | ||
| 38 | status = "okay"; | ||
| 39 | }; | ||
| 40 | |||
| 41 | can0: can@f000c000 { | ||
| 42 | status = "okay"; | ||
| 43 | }; | ||
| 44 | |||
| 45 | i2c0: i2c@f0014000 { | ||
| 46 | status = "okay"; | ||
| 47 | }; | ||
| 48 | |||
| 49 | i2c1: i2c@f0018000 { | ||
| 50 | status = "okay"; | ||
| 51 | }; | ||
| 52 | |||
| 53 | macb0: ethernet@f0028000 { | ||
| 54 | phy-mode = "rgmii"; | ||
| 55 | status = "okay"; | ||
| 56 | }; | ||
| 57 | |||
| 58 | usart0: serial@f001c000 { | ||
| 59 | status = "okay"; | ||
| 60 | }; | ||
| 61 | |||
| 62 | usart1: serial@f0020000 { | ||
| 63 | pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>; | ||
| 64 | status = "okay"; | ||
| 65 | }; | ||
| 66 | |||
| 67 | uart0: serial@f0024000 { | ||
| 68 | status = "okay"; | ||
| 69 | }; | ||
| 70 | |||
| 71 | mmc1: mmc@f8000000 { | ||
| 72 | pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>; | ||
| 73 | status = "okay"; | ||
| 74 | slot@0 { | ||
| 75 | reg = <0>; | ||
| 76 | bus-width = <4>; | ||
| 77 | cd-gpios = <&pioE 1 GPIO_ACTIVE_HIGH>; | ||
| 78 | }; | ||
| 79 | }; | ||
| 80 | |||
| 81 | spi1: spi@f8008000 { | ||
| 82 | cs-gpios = <&pioC 25 0>, <0>, <0>, <&pioD 16 0>; | ||
| 83 | status = "okay"; | ||
| 84 | }; | ||
| 85 | |||
| 86 | adc0: adc@f8018000 { | ||
| 87 | pinctrl-0 = < | ||
| 88 | &pinctrl_adc0_adtrg | ||
| 89 | &pinctrl_adc0_ad0 | ||
| 90 | &pinctrl_adc0_ad1 | ||
| 91 | &pinctrl_adc0_ad2 | ||
| 92 | &pinctrl_adc0_ad3 | ||
| 93 | &pinctrl_adc0_ad4 | ||
| 94 | &pinctrl_adc0_ad5 | ||
| 95 | &pinctrl_adc0_ad6 | ||
| 96 | &pinctrl_adc0_ad7 | ||
| 97 | &pinctrl_adc0_ad8 | ||
| 98 | &pinctrl_adc0_ad9 | ||
| 99 | >; | ||
| 100 | status = "okay"; | ||
| 101 | }; | ||
| 102 | |||
| 103 | i2c2: i2c@f801c000 { | ||
| 104 | dmas = <0>, <0>; /* Do not use DMA for i2c2 */ | ||
| 105 | status = "okay"; | ||
| 106 | }; | ||
| 107 | |||
| 108 | macb1: ethernet@f802c000 { | ||
| 109 | phy-mode = "rmii"; | ||
| 110 | status = "okay"; | ||
| 111 | }; | ||
| 112 | |||
| 113 | dbgu: serial@ffffee00 { | ||
| 114 | status = "okay"; | ||
| 115 | }; | ||
| 116 | |||
| 117 | pinctrl@fffff200 { | ||
| 118 | board { | ||
| 119 | pinctrl_mmc0_cd: mmc0_cd { | ||
| 120 | atmel,pins = | ||
| 121 | <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; | ||
| 122 | }; | ||
| 123 | |||
| 124 | pinctrl_mmc1_cd: mmc1_cd { | ||
| 125 | atmel,pins = | ||
| 126 | <AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; | ||
| 127 | }; | ||
| 128 | |||
| 129 | pinctrl_usba_vbus: usba_vbus { | ||
| 130 | atmel,pins = | ||
| 131 | <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */ | ||
| 132 | }; | ||
| 133 | }; | ||
| 134 | }; | ||
| 135 | |||
| 136 | pmc: pmc@fffffc00 { | ||
| 137 | main: mainck { | ||
| 138 | clock-frequency = <12000000>; | ||
| 139 | }; | ||
| 140 | }; | ||
| 141 | }; | ||
| 142 | |||
| 143 | nand0: nand@60000000 { | ||
| 144 | nand-bus-width = <8>; | ||
| 145 | nand-ecc-mode = "hw"; | ||
| 146 | atmel,has-pmecc; | ||
| 147 | atmel,pmecc-cap = <4>; | ||
| 148 | atmel,pmecc-sector-size = <512>; | ||
| 149 | nand-on-flash-bbt; | ||
| 150 | status = "okay"; | ||
| 151 | |||
| 152 | at91bootstrap@0 { | ||
| 153 | label = "at91bootstrap"; | ||
| 154 | reg = <0x0 0x40000>; | ||
| 155 | }; | ||
| 156 | |||
| 157 | bootloader@40000 { | ||
| 158 | label = "bootloader"; | ||
| 159 | reg = <0x40000 0x80000>; | ||
| 160 | }; | ||
| 161 | |||
| 162 | bootloaderenv@c0000 { | ||
| 163 | label = "bootloader env"; | ||
| 164 | reg = <0xc0000 0xc0000>; | ||
| 165 | }; | ||
| 166 | |||
| 167 | dtb@180000 { | ||
| 168 | label = "device tree"; | ||
| 169 | reg = <0x180000 0x80000>; | ||
| 170 | }; | ||
| 171 | |||
| 172 | kernel@200000 { | ||
| 173 | label = "kernel"; | ||
| 174 | reg = <0x200000 0x600000>; | ||
| 175 | }; | ||
| 176 | |||
| 177 | rootfs@800000 { | ||
| 178 | label = "rootfs"; | ||
| 179 | reg = <0x800000 0x0f800000>; | ||
| 180 | }; | ||
| 181 | }; | ||
| 182 | |||
| 183 | usb0: gadget@00500000 { | ||
| 184 | atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>; /* PE9, conflicts with A9 */ | ||
| 185 | pinctrl-names = "default"; | ||
| 186 | pinctrl-0 = <&pinctrl_usba_vbus>; | ||
| 187 | status = "okay"; | ||
| 188 | }; | ||
| 189 | |||
| 190 | usb1: ohci@00600000 { | ||
| 191 | num-ports = <3>; | ||
| 192 | atmel,vbus-gpio = <0 | ||
| 193 | &pioE 3 GPIO_ACTIVE_LOW | ||
| 194 | &pioE 4 GPIO_ACTIVE_LOW | ||
| 195 | >; | ||
| 196 | status = "okay"; | ||
| 197 | }; | ||
| 198 | |||
| 199 | usb2: ehci@00700000 { | ||
| 200 | status = "okay"; | ||
| 201 | }; | ||
| 202 | }; | ||
| 203 | |||
| 204 | gpio_keys { | ||
| 205 | compatible = "gpio-keys"; | ||
| 206 | |||
| 207 | bp3 { | ||
| 208 | label = "PB_USER"; | ||
| 209 | gpios = <&pioE 29 GPIO_ACTIVE_LOW>; | ||
| 210 | linux,code = <0x104>; | ||
| 211 | gpio-key,wakeup; | ||
| 212 | }; | ||
| 213 | }; | ||
| 214 | |||
| 215 | leds { | ||
| 216 | compatible = "gpio-leds"; | ||
| 217 | |||
| 218 | d2 { | ||
| 219 | label = "d2"; | ||
| 220 | gpios = <&pioE 23 GPIO_ACTIVE_LOW>; /* PE23, conflicts with A23, CTS2 */ | ||
| 221 | linux,default-trigger = "heartbeat"; | ||
| 222 | }; | ||
| 223 | |||
| 224 | d3 { | ||
| 225 | label = "d3"; | ||
| 226 | gpios = <&pioE 24 GPIO_ACTIVE_HIGH>; | ||
| 227 | }; | ||
| 228 | }; | ||
| 229 | }; | ||
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi index 0042f73068b0..fece8665fb63 100644 --- a/arch/arm/boot/dts/at91sam9263.dtsi +++ b/arch/arm/boot/dts/at91sam9263.dtsi | |||
| @@ -523,7 +523,7 @@ | |||
| 523 | }; | 523 | }; |
| 524 | 524 | ||
| 525 | i2c0: i2c@fff88000 { | 525 | i2c0: i2c@fff88000 { |
| 526 | compatible = "atmel,at91sam9263-i2c"; | 526 | compatible = "atmel,at91sam9260-i2c"; |
| 527 | reg = <0xfff88000 0x100>; | 527 | reg = <0xfff88000 0x100>; |
| 528 | interrupts = <13 IRQ_TYPE_LEVEL_HIGH 6>; | 528 | interrupts = <13 IRQ_TYPE_LEVEL_HIGH 6>; |
| 529 | #address-cells = <1>; | 529 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/at91sam9n12ek.dts b/arch/arm/boot/dts/at91sam9n12ek.dts index e9487f6f0166..924a6a6ffd0f 100644 --- a/arch/arm/boot/dts/at91sam9n12ek.dts +++ b/arch/arm/boot/dts/at91sam9n12ek.dts | |||
| @@ -124,6 +124,10 @@ | |||
| 124 | nand-on-flash-bbt; | 124 | nand-on-flash-bbt; |
| 125 | status = "okay"; | 125 | status = "okay"; |
| 126 | }; | 126 | }; |
| 127 | |||
| 128 | usb0: ohci@00500000 { | ||
| 129 | status = "okay"; | ||
| 130 | }; | ||
| 127 | }; | 131 | }; |
| 128 | 132 | ||
| 129 | leds { | 133 | leds { |
diff --git a/arch/arm/boot/dts/bcm11351.dtsi b/arch/arm/boot/dts/bcm11351.dtsi index e491b82f8d67..792fde1b7f75 100644 --- a/arch/arm/boot/dts/bcm11351.dtsi +++ b/arch/arm/boot/dts/bcm11351.dtsi | |||
| @@ -147,7 +147,7 @@ | |||
| 147 | }; | 147 | }; |
| 148 | 148 | ||
| 149 | pinctrl@35004800 { | 149 | pinctrl@35004800 { |
| 150 | compatible = "brcm,capri-pinctrl"; | 150 | compatible = "brcm,bcm11351-pinctrl"; |
| 151 | reg = <0x35004800 0x430>; | 151 | reg = <0x35004800 0x430>; |
| 152 | }; | 152 | }; |
| 153 | 153 | ||
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi index 2b76524f4aa7..187fd46b7b5e 100644 --- a/arch/arm/boot/dts/dove.dtsi +++ b/arch/arm/boot/dts/dove.dtsi | |||
| @@ -379,15 +379,6 @@ | |||
| 379 | #clock-cells = <1>; | 379 | #clock-cells = <1>; |
| 380 | }; | 380 | }; |
| 381 | 381 | ||
| 382 | pmu_intc: pmu-interrupt-ctrl@d0050 { | ||
| 383 | compatible = "marvell,dove-pmu-intc"; | ||
| 384 | interrupt-controller; | ||
| 385 | #interrupt-cells = <1>; | ||
| 386 | reg = <0xd0050 0x8>; | ||
| 387 | interrupts = <33>; | ||
| 388 | marvell,#interrupts = <7>; | ||
| 389 | }; | ||
| 390 | |||
| 391 | pinctrl: pin-ctrl@d0200 { | 382 | pinctrl: pin-ctrl@d0200 { |
| 392 | compatible = "marvell,dove-pinctrl"; | 383 | compatible = "marvell,dove-pinctrl"; |
| 393 | reg = <0xd0200 0x10>; | 384 | reg = <0xd0200 0x10>; |
| @@ -610,8 +601,6 @@ | |||
| 610 | rtc: real-time-clock@d8500 { | 601 | rtc: real-time-clock@d8500 { |
| 611 | compatible = "marvell,orion-rtc"; | 602 | compatible = "marvell,orion-rtc"; |
| 612 | reg = <0xd8500 0x20>; | 603 | reg = <0xd8500 0x20>; |
| 613 | interrupt-parent = <&pmu_intc>; | ||
| 614 | interrupts = <5>; | ||
| 615 | }; | 604 | }; |
| 616 | 605 | ||
| 617 | gpio2: gpio-ctrl@e8400 { | 606 | gpio2: gpio-ctrl@e8400 { |
diff --git a/arch/arm/boot/dts/imx6dl-hummingboard.dts b/arch/arm/boot/dts/imx6dl-hummingboard.dts index fd8fc7cd53f3..5bfae54fb780 100644 --- a/arch/arm/boot/dts/imx6dl-hummingboard.dts +++ b/arch/arm/boot/dts/imx6dl-hummingboard.dts | |||
| @@ -52,12 +52,6 @@ | |||
| 52 | }; | 52 | }; |
| 53 | }; | 53 | }; |
| 54 | 54 | ||
| 55 | codec: spdif-transmitter { | ||
| 56 | compatible = "linux,spdif-dit"; | ||
| 57 | pinctrl-names = "default"; | ||
| 58 | pinctrl-0 = <&pinctrl_hummingboard_spdif>; | ||
| 59 | }; | ||
| 60 | |||
| 61 | sound-spdif { | 55 | sound-spdif { |
| 62 | compatible = "fsl,imx-audio-spdif"; | 56 | compatible = "fsl,imx-audio-spdif"; |
| 63 | model = "imx-spdif"; | 57 | model = "imx-spdif"; |
| @@ -111,7 +105,7 @@ | |||
| 111 | }; | 105 | }; |
| 112 | 106 | ||
| 113 | pinctrl_hummingboard_spdif: hummingboard-spdif { | 107 | pinctrl_hummingboard_spdif: hummingboard-spdif { |
| 114 | fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0>; | 108 | fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>; |
| 115 | }; | 109 | }; |
| 116 | 110 | ||
| 117 | pinctrl_hummingboard_usbh1_vbus: hummingboard-usbh1-vbus { | 111 | pinctrl_hummingboard_usbh1_vbus: hummingboard-usbh1-vbus { |
| @@ -142,6 +136,8 @@ | |||
| 142 | }; | 136 | }; |
| 143 | 137 | ||
| 144 | &spdif { | 138 | &spdif { |
| 139 | pinctrl-names = "default"; | ||
| 140 | pinctrl-0 = <&pinctrl_hummingboard_spdif>; | ||
| 145 | status = "okay"; | 141 | status = "okay"; |
| 146 | }; | 142 | }; |
| 147 | 143 | ||
diff --git a/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi b/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi index 64daa3b311f6..c2a24888a276 100644 --- a/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi +++ b/arch/arm/boot/dts/imx6qdl-cubox-i.dtsi | |||
| @@ -46,12 +46,6 @@ | |||
| 46 | }; | 46 | }; |
| 47 | }; | 47 | }; |
| 48 | 48 | ||
| 49 | codec: spdif-transmitter { | ||
| 50 | compatible = "linux,spdif-dit"; | ||
| 51 | pinctrl-names = "default"; | ||
| 52 | pinctrl-0 = <&pinctrl_cubox_i_spdif>; | ||
| 53 | }; | ||
| 54 | |||
| 55 | sound-spdif { | 49 | sound-spdif { |
| 56 | compatible = "fsl,imx-audio-spdif"; | 50 | compatible = "fsl,imx-audio-spdif"; |
| 57 | model = "imx-spdif"; | 51 | model = "imx-spdif"; |
| @@ -89,7 +83,7 @@ | |||
| 89 | }; | 83 | }; |
| 90 | 84 | ||
| 91 | pinctrl_cubox_i_spdif: cubox-i-spdif { | 85 | pinctrl_cubox_i_spdif: cubox-i-spdif { |
| 92 | fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0>; | 86 | fsl,pins = <MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x13091>; |
| 93 | }; | 87 | }; |
| 94 | 88 | ||
| 95 | pinctrl_cubox_i_usbh1_vbus: cubox-i-usbh1-vbus { | 89 | pinctrl_cubox_i_usbh1_vbus: cubox-i-usbh1-vbus { |
| @@ -121,6 +115,8 @@ | |||
| 121 | }; | 115 | }; |
| 122 | 116 | ||
| 123 | &spdif { | 117 | &spdif { |
| 118 | pinctrl-names = "default"; | ||
| 119 | pinctrl-0 = <&pinctrl_cubox_i_spdif>; | ||
| 124 | status = "okay"; | 120 | status = "okay"; |
| 125 | }; | 121 | }; |
| 126 | 122 | ||
diff --git a/arch/arm/boot/dts/keystone-clocks.dtsi b/arch/arm/boot/dts/keystone-clocks.dtsi index 2363593e1050..ef58d1c24313 100644 --- a/arch/arm/boot/dts/keystone-clocks.dtsi +++ b/arch/arm/boot/dts/keystone-clocks.dtsi | |||
| @@ -612,7 +612,7 @@ clocks { | |||
| 612 | compatible = "ti,keystone,psc-clock"; | 612 | compatible = "ti,keystone,psc-clock"; |
| 613 | clocks = <&chipclk13>; | 613 | clocks = <&chipclk13>; |
| 614 | clock-output-names = "vcp-3"; | 614 | clock-output-names = "vcp-3"; |
| 615 | reg = <0x0235000a8 0xb00>, <0x02350060 0x400>; | 615 | reg = <0x023500a8 0xb00>, <0x02350060 0x400>; |
| 616 | reg-names = "control", "domain"; | 616 | reg-names = "control", "domain"; |
| 617 | domain-id = <24>; | 617 | domain-id = <24>; |
| 618 | }; | 618 | }; |
diff --git a/arch/arm/boot/dts/omap3-gta04.dts b/arch/arm/boot/dts/omap3-gta04.dts index b9b55c95a566..d3b253bbc885 100644 --- a/arch/arm/boot/dts/omap3-gta04.dts +++ b/arch/arm/boot/dts/omap3-gta04.dts | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | 13 | ||
| 14 | / { | 14 | / { |
| 15 | model = "OMAP3 GTA04"; | 15 | model = "OMAP3 GTA04"; |
| 16 | compatible = "ti,omap3-gta04", "ti,omap3"; | 16 | compatible = "ti,omap3-gta04", "ti,omap36xx", "ti,omap3"; |
| 17 | 17 | ||
| 18 | cpus { | 18 | cpus { |
| 19 | cpu@0 { | 19 | cpu@0 { |
| @@ -32,7 +32,7 @@ | |||
| 32 | aux-button { | 32 | aux-button { |
| 33 | label = "aux"; | 33 | label = "aux"; |
| 34 | linux,code = <169>; | 34 | linux,code = <169>; |
| 35 | gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; | 35 | gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; |
| 36 | gpio-key,wakeup; | 36 | gpio-key,wakeup; |
| 37 | }; | 37 | }; |
| 38 | }; | 38 | }; |
| @@ -92,6 +92,8 @@ | |||
| 92 | bmp085@77 { | 92 | bmp085@77 { |
| 93 | compatible = "bosch,bmp085"; | 93 | compatible = "bosch,bmp085"; |
| 94 | reg = <0x77>; | 94 | reg = <0x77>; |
| 95 | interrupt-parent = <&gpio4>; | ||
| 96 | interrupts = <17 IRQ_TYPE_EDGE_RISING>; | ||
| 95 | }; | 97 | }; |
| 96 | 98 | ||
| 97 | /* leds */ | 99 | /* leds */ |
| @@ -141,8 +143,8 @@ | |||
| 141 | pinctrl-names = "default"; | 143 | pinctrl-names = "default"; |
| 142 | pinctrl-0 = <&mmc1_pins>; | 144 | pinctrl-0 = <&mmc1_pins>; |
| 143 | vmmc-supply = <&vmmc1>; | 145 | vmmc-supply = <&vmmc1>; |
| 144 | vmmc_aux-supply = <&vsim>; | ||
| 145 | bus-width = <4>; | 146 | bus-width = <4>; |
| 147 | ti,non-removable; | ||
| 146 | }; | 148 | }; |
| 147 | 149 | ||
| 148 | &mmc2 { | 150 | &mmc2 { |
diff --git a/arch/arm/boot/dts/omap3-igep0020.dts b/arch/arm/boot/dts/omap3-igep0020.dts index 25a2b5f652fd..f2779ac75872 100644 --- a/arch/arm/boot/dts/omap3-igep0020.dts +++ b/arch/arm/boot/dts/omap3-igep0020.dts | |||
| @@ -14,7 +14,7 @@ | |||
| 14 | 14 | ||
| 15 | / { | 15 | / { |
| 16 | model = "IGEPv2 (TI OMAP AM/DM37x)"; | 16 | model = "IGEPv2 (TI OMAP AM/DM37x)"; |
| 17 | compatible = "isee,omap3-igep0020", "ti,omap3"; | 17 | compatible = "isee,omap3-igep0020", "ti,omap36xx", "ti,omap3"; |
| 18 | 18 | ||
| 19 | leds { | 19 | leds { |
| 20 | pinctrl-names = "default"; | 20 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/omap3-igep0030.dts b/arch/arm/boot/dts/omap3-igep0030.dts index 145c58cfc8ac..2793749eb1ba 100644 --- a/arch/arm/boot/dts/omap3-igep0030.dts +++ b/arch/arm/boot/dts/omap3-igep0030.dts | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | 13 | ||
| 14 | / { | 14 | / { |
| 15 | model = "IGEP COM MODULE (TI OMAP AM/DM37x)"; | 15 | model = "IGEP COM MODULE (TI OMAP AM/DM37x)"; |
| 16 | compatible = "isee,omap3-igep0030", "ti,omap3"; | 16 | compatible = "isee,omap3-igep0030", "ti,omap36xx", "ti,omap3"; |
| 17 | 17 | ||
| 18 | leds { | 18 | leds { |
| 19 | pinctrl-names = "default"; | 19 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/omap3-n9.dts b/arch/arm/boot/dts/omap3-n9.dts index 39828ce464ee..9938b5dc1909 100644 --- a/arch/arm/boot/dts/omap3-n9.dts +++ b/arch/arm/boot/dts/omap3-n9.dts | |||
| @@ -14,5 +14,5 @@ | |||
| 14 | 14 | ||
| 15 | / { | 15 | / { |
| 16 | model = "Nokia N9"; | 16 | model = "Nokia N9"; |
| 17 | compatible = "nokia,omap3-n9", "ti,omap3"; | 17 | compatible = "nokia,omap3-n9", "ti,omap36xx", "ti,omap3"; |
| 18 | }; | 18 | }; |
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts index 6fc85f963530..0bf40c90faba 100644 --- a/arch/arm/boot/dts/omap3-n900.dts +++ b/arch/arm/boot/dts/omap3-n900.dts | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz> | 2 | * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz> |
| 3 | * Copyright 2013 Aaro Koskinen <aaro.koskinen@iki.fi> | 3 | * Copyright (C) 2013-2014 Aaro Koskinen <aaro.koskinen@iki.fi> |
| 4 | * | 4 | * |
| 5 | * This program is free software; you can redistribute it and/or modify | 5 | * This program is free software; you can redistribute it and/or modify |
| 6 | * it under the terms of the GNU General Public License version 2 (or later) as | 6 | * it under the terms of the GNU General Public License version 2 (or later) as |
| @@ -13,7 +13,7 @@ | |||
| 13 | 13 | ||
| 14 | / { | 14 | / { |
| 15 | model = "Nokia N900"; | 15 | model = "Nokia N900"; |
| 16 | compatible = "nokia,omap3-n900", "ti,omap3"; | 16 | compatible = "nokia,omap3-n900", "ti,omap3430", "ti,omap3"; |
| 17 | 17 | ||
| 18 | cpus { | 18 | cpus { |
| 19 | cpu@0 { | 19 | cpu@0 { |
diff --git a/arch/arm/boot/dts/omap3-n950.dts b/arch/arm/boot/dts/omap3-n950.dts index b076a526b999..261c5589bfa3 100644 --- a/arch/arm/boot/dts/omap3-n950.dts +++ b/arch/arm/boot/dts/omap3-n950.dts | |||
| @@ -14,5 +14,5 @@ | |||
| 14 | 14 | ||
| 15 | / { | 15 | / { |
| 16 | model = "Nokia N950"; | 16 | model = "Nokia N950"; |
| 17 | compatible = "nokia,omap3-n950", "ti,omap3"; | 17 | compatible = "nokia,omap3-n950", "ti,omap36xx", "ti,omap3"; |
| 18 | }; | 18 | }; |
diff --git a/arch/arm/boot/dts/omap3-overo-storm-tobi.dts b/arch/arm/boot/dts/omap3-overo-storm-tobi.dts new file mode 100644 index 000000000000..966b5c9cd96a --- /dev/null +++ b/arch/arm/boot/dts/omap3-overo-storm-tobi.dts | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2012 Florian Vaussard, EPFL Mobots group | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License version 2 as | ||
| 6 | * published by the Free Software Foundation. | ||
| 7 | */ | ||
| 8 | |||
| 9 | /* | ||
| 10 | * Tobi expansion board is manufactured by Gumstix Inc. | ||
| 11 | */ | ||
| 12 | |||
| 13 | /dts-v1/; | ||
| 14 | |||
| 15 | #include "omap36xx.dtsi" | ||
| 16 | #include "omap3-overo-tobi-common.dtsi" | ||
| 17 | |||
| 18 | / { | ||
| 19 | model = "OMAP36xx/AM37xx/DM37xx Gumstix Overo on Tobi"; | ||
| 20 | compatible = "gumstix,omap3-overo-tobi", "gumstix,omap3-overo", "ti,omap36xx", "ti,omap3"; | ||
| 21 | }; | ||
| 22 | |||
diff --git a/arch/arm/boot/dts/omap3-tobi.dts b/arch/arm/boot/dts/omap3-overo-tobi-common.dtsi index 7e4ad2aec37a..4edc013a91c1 100644 --- a/arch/arm/boot/dts/omap3-tobi.dts +++ b/arch/arm/boot/dts/omap3-overo-tobi-common.dtsi | |||
| @@ -13,9 +13,6 @@ | |||
| 13 | #include "omap3-overo.dtsi" | 13 | #include "omap3-overo.dtsi" |
| 14 | 14 | ||
| 15 | / { | 15 | / { |
| 16 | model = "TI OMAP3 Gumstix Overo on Tobi"; | ||
| 17 | compatible = "ti,omap3-tobi", "ti,omap3-overo", "ti,omap3"; | ||
| 18 | |||
| 19 | leds { | 16 | leds { |
| 20 | compatible = "gpio-leds"; | 17 | compatible = "gpio-leds"; |
| 21 | heartbeat { | 18 | heartbeat { |
diff --git a/arch/arm/boot/dts/omap3-overo-tobi.dts b/arch/arm/boot/dts/omap3-overo-tobi.dts new file mode 100644 index 000000000000..de5653e1b5ca --- /dev/null +++ b/arch/arm/boot/dts/omap3-overo-tobi.dts | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2012 Florian Vaussard, EPFL Mobots group | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License version 2 as | ||
| 6 | * published by the Free Software Foundation. | ||
| 7 | */ | ||
| 8 | |||
| 9 | /* | ||
| 10 | * Tobi expansion board is manufactured by Gumstix Inc. | ||
| 11 | */ | ||
| 12 | |||
| 13 | /dts-v1/; | ||
| 14 | |||
| 15 | #include "omap34xx.dtsi" | ||
| 16 | #include "omap3-overo-tobi-common.dtsi" | ||
| 17 | |||
| 18 | / { | ||
| 19 | model = "OMAP35xx Gumstix Overo on Tobi"; | ||
| 20 | compatible = "gumstix,omap3-overo-tobi", "gumstix,omap3-overo", "ti,omap3430", "ti,omap3"; | ||
| 21 | }; | ||
| 22 | |||
diff --git a/arch/arm/boot/dts/omap3-overo.dtsi b/arch/arm/boot/dts/omap3-overo.dtsi index a461d2fd1fb0..597099907f8e 100644 --- a/arch/arm/boot/dts/omap3-overo.dtsi +++ b/arch/arm/boot/dts/omap3-overo.dtsi | |||
| @@ -9,9 +9,6 @@ | |||
| 9 | /* | 9 | /* |
| 10 | * The Gumstix Overo must be combined with an expansion board. | 10 | * The Gumstix Overo must be combined with an expansion board. |
| 11 | */ | 11 | */ |
| 12 | /dts-v1/; | ||
| 13 | |||
| 14 | #include "omap34xx.dtsi" | ||
| 15 | 12 | ||
| 16 | / { | 13 | / { |
| 17 | pwmleds { | 14 | pwmleds { |
diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi index 52447c17537a..3d5faf85f51b 100644 --- a/arch/arm/boot/dts/sama5d3.dtsi +++ b/arch/arm/boot/dts/sama5d3.dtsi | |||
| @@ -1228,7 +1228,7 @@ | |||
| 1228 | compatible = "atmel,at91rm9200-ohci", "usb-ohci"; | 1228 | compatible = "atmel,at91rm9200-ohci", "usb-ohci"; |
| 1229 | reg = <0x00600000 0x100000>; | 1229 | reg = <0x00600000 0x100000>; |
| 1230 | interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>; | 1230 | interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>; |
| 1231 | clocks = <&usb>, <&uhphs_clk>, <&udphs_clk>, | 1231 | clocks = <&usb>, <&uhphs_clk>, <&uhphs_clk>, |
| 1232 | <&uhpck>; | 1232 | <&uhpck>; |
| 1233 | clock-names = "usb_clk", "ohci_clk", "hclk", "uhpck"; | 1233 | clock-names = "usb_clk", "ohci_clk", "hclk", "uhpck"; |
| 1234 | status = "disabled"; | 1234 | status = "disabled"; |
diff --git a/arch/arm/boot/dts/sama5d36.dtsi b/arch/arm/boot/dts/sama5d36.dtsi index 6c31c26e6cc0..db58cad6acd3 100644 --- a/arch/arm/boot/dts/sama5d36.dtsi +++ b/arch/arm/boot/dts/sama5d36.dtsi | |||
| @@ -8,8 +8,8 @@ | |||
| 8 | */ | 8 | */ |
| 9 | #include "sama5d3.dtsi" | 9 | #include "sama5d3.dtsi" |
| 10 | #include "sama5d3_can.dtsi" | 10 | #include "sama5d3_can.dtsi" |
| 11 | #include "sama5d3_emac.dtsi" | ||
| 12 | #include "sama5d3_gmac.dtsi" | 11 | #include "sama5d3_gmac.dtsi" |
| 12 | #include "sama5d3_emac.dtsi" | ||
| 13 | #include "sama5d3_lcd.dtsi" | 13 | #include "sama5d3_lcd.dtsi" |
| 14 | #include "sama5d3_mci2.dtsi" | 14 | #include "sama5d3_mci2.dtsi" |
| 15 | #include "sama5d3_tcb1.dtsi" | 15 | #include "sama5d3_tcb1.dtsi" |
diff --git a/arch/arm/boot/dts/ste-href.dtsi b/arch/arm/boot/dts/ste-href.dtsi index 0c1e8d871ed1..6cb9b68e2188 100644 --- a/arch/arm/boot/dts/ste-href.dtsi +++ b/arch/arm/boot/dts/ste-href.dtsi | |||
| @@ -188,7 +188,6 @@ | |||
| 188 | msp2: msp@80117000 { | 188 | msp2: msp@80117000 { |
| 189 | pinctrl-names = "default"; | 189 | pinctrl-names = "default"; |
| 190 | pinctrl-0 = <&msp2_default_mode>; | 190 | pinctrl-0 = <&msp2_default_mode>; |
| 191 | status = "okay"; | ||
| 192 | }; | 191 | }; |
| 193 | 192 | ||
| 194 | msp3: msp@80125000 { | 193 | msp3: msp@80125000 { |
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi index 040bb0eba152..d4d2763f4794 100644 --- a/arch/arm/boot/dts/sun4i-a10.dtsi +++ b/arch/arm/boot/dts/sun4i-a10.dtsi | |||
| @@ -315,7 +315,7 @@ | |||
| 315 | ranges; | 315 | ranges; |
| 316 | 316 | ||
| 317 | emac: ethernet@01c0b000 { | 317 | emac: ethernet@01c0b000 { |
| 318 | compatible = "allwinner,sun4i-emac"; | 318 | compatible = "allwinner,sun4i-a10-emac"; |
| 319 | reg = <0x01c0b000 0x1000>; | 319 | reg = <0x01c0b000 0x1000>; |
| 320 | interrupts = <55>; | 320 | interrupts = <55>; |
| 321 | clocks = <&ahb_gates 17>; | 321 | clocks = <&ahb_gates 17>; |
| @@ -323,7 +323,7 @@ | |||
| 323 | }; | 323 | }; |
| 324 | 324 | ||
| 325 | mdio@01c0b080 { | 325 | mdio@01c0b080 { |
| 326 | compatible = "allwinner,sun4i-mdio"; | 326 | compatible = "allwinner,sun4i-a10-mdio"; |
| 327 | reg = <0x01c0b080 0x14>; | 327 | reg = <0x01c0b080 0x14>; |
| 328 | status = "disabled"; | 328 | status = "disabled"; |
| 329 | #address-cells = <1>; | 329 | #address-cells = <1>; |
| @@ -426,7 +426,7 @@ | |||
| 426 | }; | 426 | }; |
| 427 | 427 | ||
| 428 | rtp: rtp@01c25000 { | 428 | rtp: rtp@01c25000 { |
| 429 | compatible = "allwinner,sun4i-ts"; | 429 | compatible = "allwinner,sun4i-a10-ts"; |
| 430 | reg = <0x01c25000 0x100>; | 430 | reg = <0x01c25000 0x100>; |
| 431 | interrupts = <29>; | 431 | interrupts = <29>; |
| 432 | }; | 432 | }; |
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi index ea16054857a4..79fd412005b0 100644 --- a/arch/arm/boot/dts/sun5i-a10s.dtsi +++ b/arch/arm/boot/dts/sun5i-a10s.dtsi | |||
| @@ -278,7 +278,7 @@ | |||
| 278 | ranges; | 278 | ranges; |
| 279 | 279 | ||
| 280 | emac: ethernet@01c0b000 { | 280 | emac: ethernet@01c0b000 { |
| 281 | compatible = "allwinner,sun4i-emac"; | 281 | compatible = "allwinner,sun4i-a10-emac"; |
| 282 | reg = <0x01c0b000 0x1000>; | 282 | reg = <0x01c0b000 0x1000>; |
| 283 | interrupts = <55>; | 283 | interrupts = <55>; |
| 284 | clocks = <&ahb_gates 17>; | 284 | clocks = <&ahb_gates 17>; |
| @@ -286,7 +286,7 @@ | |||
| 286 | }; | 286 | }; |
| 287 | 287 | ||
| 288 | mdio@01c0b080 { | 288 | mdio@01c0b080 { |
| 289 | compatible = "allwinner,sun4i-mdio"; | 289 | compatible = "allwinner,sun4i-a10-mdio"; |
| 290 | reg = <0x01c0b080 0x14>; | 290 | reg = <0x01c0b080 0x14>; |
| 291 | status = "disabled"; | 291 | status = "disabled"; |
| 292 | #address-cells = <1>; | 292 | #address-cells = <1>; |
| @@ -383,7 +383,7 @@ | |||
| 383 | }; | 383 | }; |
| 384 | 384 | ||
| 385 | rtp: rtp@01c25000 { | 385 | rtp: rtp@01c25000 { |
| 386 | compatible = "allwinner,sun4i-ts"; | 386 | compatible = "allwinner,sun4i-a10-ts"; |
| 387 | reg = <0x01c25000 0x100>; | 387 | reg = <0x01c25000 0x100>; |
| 388 | interrupts = <29>; | 388 | interrupts = <29>; |
| 389 | }; | 389 | }; |
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi index 320335abfccd..c463fd730c91 100644 --- a/arch/arm/boot/dts/sun5i-a13.dtsi +++ b/arch/arm/boot/dts/sun5i-a13.dtsi | |||
| @@ -346,7 +346,7 @@ | |||
| 346 | }; | 346 | }; |
| 347 | 347 | ||
| 348 | rtp: rtp@01c25000 { | 348 | rtp: rtp@01c25000 { |
| 349 | compatible = "allwinner,sun4i-ts"; | 349 | compatible = "allwinner,sun4i-a10-ts"; |
| 350 | reg = <0x01c25000 0x100>; | 350 | reg = <0x01c25000 0x100>; |
| 351 | interrupts = <29>; | 351 | interrupts = <29>; |
| 352 | }; | 352 | }; |
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi index 119f066f0d98..6f25cf559ad0 100644 --- a/arch/arm/boot/dts/sun7i-a20.dtsi +++ b/arch/arm/boot/dts/sun7i-a20.dtsi | |||
| @@ -340,7 +340,7 @@ | |||
| 340 | ranges; | 340 | ranges; |
| 341 | 341 | ||
| 342 | emac: ethernet@01c0b000 { | 342 | emac: ethernet@01c0b000 { |
| 343 | compatible = "allwinner,sun4i-emac"; | 343 | compatible = "allwinner,sun4i-a10-emac"; |
| 344 | reg = <0x01c0b000 0x1000>; | 344 | reg = <0x01c0b000 0x1000>; |
| 345 | interrupts = <0 55 4>; | 345 | interrupts = <0 55 4>; |
| 346 | clocks = <&ahb_gates 17>; | 346 | clocks = <&ahb_gates 17>; |
| @@ -348,7 +348,7 @@ | |||
| 348 | }; | 348 | }; |
| 349 | 349 | ||
| 350 | mdio@01c0b080 { | 350 | mdio@01c0b080 { |
| 351 | compatible = "allwinner,sun4i-mdio"; | 351 | compatible = "allwinner,sun4i-a10-mdio"; |
| 352 | reg = <0x01c0b080 0x14>; | 352 | reg = <0x01c0b080 0x14>; |
| 353 | status = "disabled"; | 353 | status = "disabled"; |
| 354 | #address-cells = <1>; | 354 | #address-cells = <1>; |
| @@ -454,7 +454,7 @@ | |||
| 454 | rtc: rtc@01c20d00 { | 454 | rtc: rtc@01c20d00 { |
| 455 | compatible = "allwinner,sun7i-a20-rtc"; | 455 | compatible = "allwinner,sun7i-a20-rtc"; |
| 456 | reg = <0x01c20d00 0x20>; | 456 | reg = <0x01c20d00 0x20>; |
| 457 | interrupts = <0 24 1>; | 457 | interrupts = <0 24 4>; |
| 458 | }; | 458 | }; |
| 459 | 459 | ||
| 460 | sid: eeprom@01c23800 { | 460 | sid: eeprom@01c23800 { |
| @@ -463,7 +463,7 @@ | |||
| 463 | }; | 463 | }; |
| 464 | 464 | ||
| 465 | rtp: rtp@01c25000 { | 465 | rtp: rtp@01c25000 { |
| 466 | compatible = "allwinner,sun4i-ts"; | 466 | compatible = "allwinner,sun4i-a10-ts"; |
| 467 | reg = <0x01c25000 0x100>; | 467 | reg = <0x01c25000 0x100>; |
| 468 | interrupts = <0 29 4>; | 468 | interrupts = <0 29 4>; |
| 469 | }; | 469 | }; |
| @@ -596,10 +596,10 @@ | |||
| 596 | hstimer@01c60000 { | 596 | hstimer@01c60000 { |
| 597 | compatible = "allwinner,sun7i-a20-hstimer"; | 597 | compatible = "allwinner,sun7i-a20-hstimer"; |
| 598 | reg = <0x01c60000 0x1000>; | 598 | reg = <0x01c60000 0x1000>; |
| 599 | interrupts = <0 81 1>, | 599 | interrupts = <0 81 4>, |
| 600 | <0 82 1>, | 600 | <0 82 4>, |
| 601 | <0 83 1>, | 601 | <0 83 4>, |
| 602 | <0 84 1>; | 602 | <0 84 4>; |
| 603 | clocks = <&ahb_gates 28>; | 603 | clocks = <&ahb_gates 28>; |
| 604 | }; | 604 | }; |
| 605 | 605 | ||
diff --git a/arch/arm/boot/dts/tegra114.dtsi b/arch/arm/boot/dts/tegra114.dtsi index 389e987ec281..44ec401ec366 100644 --- a/arch/arm/boot/dts/tegra114.dtsi +++ b/arch/arm/boot/dts/tegra114.dtsi | |||
| @@ -57,6 +57,8 @@ | |||
| 57 | resets = <&tegra_car 27>; | 57 | resets = <&tegra_car 27>; |
| 58 | reset-names = "dc"; | 58 | reset-names = "dc"; |
| 59 | 59 | ||
| 60 | nvidia,head = <0>; | ||
| 61 | |||
| 60 | rgb { | 62 | rgb { |
| 61 | status = "disabled"; | 63 | status = "disabled"; |
| 62 | }; | 64 | }; |
| @@ -72,6 +74,8 @@ | |||
| 72 | resets = <&tegra_car 26>; | 74 | resets = <&tegra_car 26>; |
| 73 | reset-names = "dc"; | 75 | reset-names = "dc"; |
| 74 | 76 | ||
| 77 | nvidia,head = <1>; | ||
| 78 | |||
| 75 | rgb { | 79 | rgb { |
| 76 | status = "disabled"; | 80 | status = "disabled"; |
| 77 | }; | 81 | }; |
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi index 480ecda3416b..48d2a7f4d0c0 100644 --- a/arch/arm/boot/dts/tegra20.dtsi +++ b/arch/arm/boot/dts/tegra20.dtsi | |||
| @@ -94,6 +94,8 @@ | |||
| 94 | resets = <&tegra_car 27>; | 94 | resets = <&tegra_car 27>; |
| 95 | reset-names = "dc"; | 95 | reset-names = "dc"; |
| 96 | 96 | ||
| 97 | nvidia,head = <0>; | ||
| 98 | |||
| 97 | rgb { | 99 | rgb { |
| 98 | status = "disabled"; | 100 | status = "disabled"; |
| 99 | }; | 101 | }; |
| @@ -109,6 +111,8 @@ | |||
| 109 | resets = <&tegra_car 26>; | 111 | resets = <&tegra_car 26>; |
| 110 | reset-names = "dc"; | 112 | reset-names = "dc"; |
| 111 | 113 | ||
| 114 | nvidia,head = <1>; | ||
| 115 | |||
| 112 | rgb { | 116 | rgb { |
| 113 | status = "disabled"; | 117 | status = "disabled"; |
| 114 | }; | 118 | }; |
diff --git a/arch/arm/boot/dts/tegra30-cardhu.dtsi b/arch/arm/boot/dts/tegra30-cardhu.dtsi index 9104224124ee..1e156d9d0506 100644 --- a/arch/arm/boot/dts/tegra30-cardhu.dtsi +++ b/arch/arm/boot/dts/tegra30-cardhu.dtsi | |||
| @@ -28,7 +28,7 @@ | |||
| 28 | compatible = "nvidia,cardhu", "nvidia,tegra30"; | 28 | compatible = "nvidia,cardhu", "nvidia,tegra30"; |
| 29 | 29 | ||
| 30 | aliases { | 30 | aliases { |
| 31 | rtc0 = "/i2c@7000d000/tps6586x@34"; | 31 | rtc0 = "/i2c@7000d000/tps65911@2d"; |
| 32 | rtc1 = "/rtc@7000e000"; | 32 | rtc1 = "/rtc@7000e000"; |
| 33 | }; | 33 | }; |
| 34 | 34 | ||
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi index ed8e7700b46d..19a84e933f4e 100644 --- a/arch/arm/boot/dts/tegra30.dtsi +++ b/arch/arm/boot/dts/tegra30.dtsi | |||
| @@ -170,6 +170,8 @@ | |||
| 170 | resets = <&tegra_car 27>; | 170 | resets = <&tegra_car 27>; |
| 171 | reset-names = "dc"; | 171 | reset-names = "dc"; |
| 172 | 172 | ||
| 173 | nvidia,head = <0>; | ||
| 174 | |||
| 173 | rgb { | 175 | rgb { |
| 174 | status = "disabled"; | 176 | status = "disabled"; |
| 175 | }; | 177 | }; |
| @@ -185,6 +187,8 @@ | |||
| 185 | resets = <&tegra_car 26>; | 187 | resets = <&tegra_car 26>; |
| 186 | reset-names = "dc"; | 188 | reset-names = "dc"; |
| 187 | 189 | ||
| 190 | nvidia,head = <1>; | ||
| 191 | |||
| 188 | rgb { | 192 | rgb { |
| 189 | status = "disabled"; | 193 | status = "disabled"; |
| 190 | }; | 194 | }; |
diff --git a/arch/arm/boot/dts/testcases/tests-interrupts.dtsi b/arch/arm/boot/dts/testcases/tests-interrupts.dtsi deleted file mode 100644 index c843720bd3e5..000000000000 --- a/arch/arm/boot/dts/testcases/tests-interrupts.dtsi +++ /dev/null | |||
| @@ -1,58 +0,0 @@ | |||
| 1 | |||
| 2 | / { | ||
| 3 | testcase-data { | ||
| 4 | interrupts { | ||
| 5 | #address-cells = <1>; | ||
| 6 | #size-cells = <1>; | ||
| 7 | test_intc0: intc0 { | ||
| 8 | interrupt-controller; | ||
| 9 | #interrupt-cells = <1>; | ||
| 10 | }; | ||
| 11 | |||
| 12 | test_intc1: intc1 { | ||
| 13 | interrupt-controller; | ||
| 14 | #interrupt-cells = <3>; | ||
| 15 | }; | ||
| 16 | |||
| 17 | test_intc2: intc2 { | ||
| 18 | interrupt-controller; | ||
| 19 | #interrupt-cells = <2>; | ||
| 20 | }; | ||
| 21 | |||
| 22 | test_intmap0: intmap0 { | ||
| 23 | #interrupt-cells = <1>; | ||
| 24 | #address-cells = <0>; | ||
| 25 | interrupt-map = <1 &test_intc0 9>, | ||
| 26 | <2 &test_intc1 10 11 12>, | ||
| 27 | <3 &test_intc2 13 14>, | ||
| 28 | <4 &test_intc2 15 16>; | ||
| 29 | }; | ||
| 30 | |||
| 31 | test_intmap1: intmap1 { | ||
| 32 | #interrupt-cells = <2>; | ||
| 33 | interrupt-map = <0x5000 1 2 &test_intc0 15>; | ||
| 34 | }; | ||
| 35 | |||
| 36 | interrupts0 { | ||
| 37 | interrupt-parent = <&test_intc0>; | ||
| 38 | interrupts = <1>, <2>, <3>, <4>; | ||
| 39 | }; | ||
| 40 | |||
| 41 | interrupts1 { | ||
| 42 | interrupt-parent = <&test_intmap0>; | ||
| 43 | interrupts = <1>, <2>, <3>, <4>; | ||
| 44 | }; | ||
| 45 | |||
| 46 | interrupts-extended0 { | ||
| 47 | reg = <0x5000 0x100>; | ||
| 48 | interrupts-extended = <&test_intc0 1>, | ||
| 49 | <&test_intc1 2 3 4>, | ||
| 50 | <&test_intc2 5 6>, | ||
| 51 | <&test_intmap0 1>, | ||
| 52 | <&test_intmap0 2>, | ||
| 53 | <&test_intmap0 3>, | ||
| 54 | <&test_intmap1 1 2>; | ||
| 55 | }; | ||
| 56 | }; | ||
| 57 | }; | ||
| 58 | }; | ||
diff --git a/arch/arm/boot/dts/testcases/tests-phandle.dtsi b/arch/arm/boot/dts/testcases/tests-phandle.dtsi deleted file mode 100644 index 0007d3cd7dc2..000000000000 --- a/arch/arm/boot/dts/testcases/tests-phandle.dtsi +++ /dev/null | |||
| @@ -1,39 +0,0 @@ | |||
| 1 | |||
| 2 | / { | ||
| 3 | testcase-data { | ||
| 4 | phandle-tests { | ||
| 5 | provider0: provider0 { | ||
| 6 | #phandle-cells = <0>; | ||
| 7 | }; | ||
| 8 | |||
| 9 | provider1: provider1 { | ||
| 10 | #phandle-cells = <1>; | ||
| 11 | }; | ||
| 12 | |||
| 13 | provider2: provider2 { | ||
| 14 | #phandle-cells = <2>; | ||
| 15 | }; | ||
| 16 | |||
| 17 | provider3: provider3 { | ||
| 18 | #phandle-cells = <3>; | ||
| 19 | }; | ||
| 20 | |||
| 21 | consumer-a { | ||
| 22 | phandle-list = <&provider1 1>, | ||
| 23 | <&provider2 2 0>, | ||
| 24 | <0>, | ||
| 25 | <&provider3 4 4 3>, | ||
| 26 | <&provider2 5 100>, | ||
| 27 | <&provider0>, | ||
| 28 | <&provider1 7>; | ||
| 29 | phandle-list-names = "first", "second", "third"; | ||
| 30 | |||
| 31 | phandle-list-bad-phandle = <12345678 0 0>; | ||
| 32 | phandle-list-bad-args = <&provider2 1 0>, | ||
| 33 | <&provider3 0>; | ||
| 34 | empty-property; | ||
| 35 | unterminated-string = [40 41 42 43]; | ||
| 36 | }; | ||
| 37 | }; | ||
| 38 | }; | ||
| 39 | }; | ||
diff --git a/arch/arm/boot/dts/testcases/tests.dtsi b/arch/arm/boot/dts/testcases/tests.dtsi deleted file mode 100644 index 3f123ecc9dd7..000000000000 --- a/arch/arm/boot/dts/testcases/tests.dtsi +++ /dev/null | |||
| @@ -1,2 +0,0 @@ | |||
| 1 | /include/ "tests-phandle.dtsi" | ||
| 2 | /include/ "tests-interrupts.dtsi" | ||
diff --git a/arch/arm/boot/dts/versatile-pb.dts b/arch/arm/boot/dts/versatile-pb.dts index f43907c40c93..65f657711323 100644 --- a/arch/arm/boot/dts/versatile-pb.dts +++ b/arch/arm/boot/dts/versatile-pb.dts | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /include/ "versatile-ab.dts" | 1 | #include <versatile-ab.dts> |
| 2 | 2 | ||
| 3 | / { | 3 | / { |
| 4 | model = "ARM Versatile PB"; | 4 | model = "ARM Versatile PB"; |
| @@ -47,4 +47,4 @@ | |||
| 47 | }; | 47 | }; |
| 48 | }; | 48 | }; |
| 49 | 49 | ||
| 50 | /include/ "testcases/tests.dtsi" | 50 | #include <testcases.dtsi> |
diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index 845bc745706b..ee6982976d66 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig | |||
| @@ -29,6 +29,7 @@ CONFIG_ARCH_OMAP3=y | |||
| 29 | CONFIG_ARCH_OMAP4=y | 29 | CONFIG_ARCH_OMAP4=y |
| 30 | CONFIG_SOC_OMAP5=y | 30 | CONFIG_SOC_OMAP5=y |
| 31 | CONFIG_SOC_AM33XX=y | 31 | CONFIG_SOC_AM33XX=y |
| 32 | CONFIG_SOC_DRA7XX=y | ||
| 32 | CONFIG_SOC_AM43XX=y | 33 | CONFIG_SOC_AM43XX=y |
| 33 | CONFIG_ARCH_ROCKCHIP=y | 34 | CONFIG_ARCH_ROCKCHIP=y |
| 34 | CONFIG_ARCH_SOCFPGA=y | 35 | CONFIG_ARCH_SOCFPGA=y |
diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig index 00fe9e9710fd..27d69b558c5d 100644 --- a/arch/arm/configs/tegra_defconfig +++ b/arch/arm/configs/tegra_defconfig | |||
| @@ -204,7 +204,10 @@ CONFIG_MMC_BLOCK_MINORS=16 | |||
| 204 | CONFIG_MMC_SDHCI=y | 204 | CONFIG_MMC_SDHCI=y |
| 205 | CONFIG_MMC_SDHCI_PLTFM=y | 205 | CONFIG_MMC_SDHCI_PLTFM=y |
| 206 | CONFIG_MMC_SDHCI_TEGRA=y | 206 | CONFIG_MMC_SDHCI_TEGRA=y |
| 207 | CONFIG_NEW_LEDS=y | ||
| 208 | CONFIG_LEDS_CLASS=y | ||
| 207 | CONFIG_LEDS_GPIO=y | 209 | CONFIG_LEDS_GPIO=y |
| 210 | CONFIG_LEDS_TRIGGERS=y | ||
| 208 | CONFIG_LEDS_TRIGGER_TIMER=y | 211 | CONFIG_LEDS_TRIGGER_TIMER=y |
| 209 | CONFIG_LEDS_TRIGGER_ONESHOT=y | 212 | CONFIG_LEDS_TRIGGER_ONESHOT=y |
| 210 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | 213 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y |
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h index e9a49fe0284e..8b8b61685a34 100644 --- a/arch/arm/include/asm/cacheflush.h +++ b/arch/arm/include/asm/cacheflush.h | |||
| @@ -212,6 +212,7 @@ extern void copy_to_user_page(struct vm_area_struct *, struct page *, | |||
| 212 | static inline void __flush_icache_all(void) | 212 | static inline void __flush_icache_all(void) |
| 213 | { | 213 | { |
| 214 | __flush_icache_preferred(); | 214 | __flush_icache_preferred(); |
| 215 | dsb(); | ||
| 215 | } | 216 | } |
| 216 | 217 | ||
| 217 | /* | 218 | /* |
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index 8756e4bcdba0..4afb376d9c7c 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h | |||
| @@ -30,14 +30,15 @@ | |||
| 30 | */ | 30 | */ |
| 31 | #define UL(x) _AC(x, UL) | 31 | #define UL(x) _AC(x, UL) |
| 32 | 32 | ||
| 33 | /* PAGE_OFFSET - the virtual address of the start of the kernel image */ | ||
| 34 | #define PAGE_OFFSET UL(CONFIG_PAGE_OFFSET) | ||
| 35 | |||
| 33 | #ifdef CONFIG_MMU | 36 | #ifdef CONFIG_MMU |
| 34 | 37 | ||
| 35 | /* | 38 | /* |
| 36 | * PAGE_OFFSET - the virtual address of the start of the kernel image | ||
| 37 | * TASK_SIZE - the maximum size of a user space task. | 39 | * TASK_SIZE - the maximum size of a user space task. |
| 38 | * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area | 40 | * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area |
| 39 | */ | 41 | */ |
| 40 | #define PAGE_OFFSET UL(CONFIG_PAGE_OFFSET) | ||
| 41 | #define TASK_SIZE (UL(CONFIG_PAGE_OFFSET) - UL(SZ_16M)) | 42 | #define TASK_SIZE (UL(CONFIG_PAGE_OFFSET) - UL(SZ_16M)) |
| 42 | #define TASK_UNMAPPED_BASE ALIGN(TASK_SIZE / 3, SZ_16M) | 43 | #define TASK_UNMAPPED_BASE ALIGN(TASK_SIZE / 3, SZ_16M) |
| 43 | 44 | ||
| @@ -104,10 +105,6 @@ | |||
| 104 | #define END_MEM (UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE) | 105 | #define END_MEM (UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE) |
| 105 | #endif | 106 | #endif |
| 106 | 107 | ||
| 107 | #ifndef PAGE_OFFSET | ||
| 108 | #define PAGE_OFFSET PLAT_PHYS_OFFSET | ||
| 109 | #endif | ||
| 110 | |||
| 111 | /* | 108 | /* |
| 112 | * The module can be at any place in ram in nommu mode. | 109 | * The module can be at any place in ram in nommu mode. |
| 113 | */ | 110 | */ |
diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h index 03243f7eeddf..85c60adc8b60 100644 --- a/arch/arm/include/asm/pgtable-3level.h +++ b/arch/arm/include/asm/pgtable-3level.h | |||
| @@ -120,13 +120,16 @@ | |||
| 120 | /* | 120 | /* |
| 121 | * 2nd stage PTE definitions for LPAE. | 121 | * 2nd stage PTE definitions for LPAE. |
| 122 | */ | 122 | */ |
| 123 | #define L_PTE_S2_MT_UNCACHED (_AT(pteval_t, 0x5) << 2) /* MemAttr[3:0] */ | 123 | #define L_PTE_S2_MT_UNCACHED (_AT(pteval_t, 0x0) << 2) /* strongly ordered */ |
| 124 | #define L_PTE_S2_MT_WRITETHROUGH (_AT(pteval_t, 0xa) << 2) /* MemAttr[3:0] */ | 124 | #define L_PTE_S2_MT_WRITETHROUGH (_AT(pteval_t, 0xa) << 2) /* normal inner write-through */ |
| 125 | #define L_PTE_S2_MT_WRITEBACK (_AT(pteval_t, 0xf) << 2) /* MemAttr[3:0] */ | 125 | #define L_PTE_S2_MT_WRITEBACK (_AT(pteval_t, 0xf) << 2) /* normal inner write-back */ |
| 126 | #define L_PTE_S2_RDONLY (_AT(pteval_t, 1) << 6) /* HAP[1] */ | 126 | #define L_PTE_S2_MT_DEV_SHARED (_AT(pteval_t, 0x1) << 2) /* device */ |
| 127 | #define L_PTE_S2_RDWR (_AT(pteval_t, 3) << 6) /* HAP[2:1] */ | 127 | #define L_PTE_S2_MT_MASK (_AT(pteval_t, 0xf) << 2) |
| 128 | 128 | ||
| 129 | #define L_PMD_S2_RDWR (_AT(pmdval_t, 3) << 6) /* HAP[2:1] */ | 129 | #define L_PTE_S2_RDONLY (_AT(pteval_t, 1) << 6) /* HAP[1] */ |
| 130 | #define L_PTE_S2_RDWR (_AT(pteval_t, 3) << 6) /* HAP[2:1] */ | ||
| 131 | |||
| 132 | #define L_PMD_S2_RDWR (_AT(pmdval_t, 3) << 6) /* HAP[2:1] */ | ||
| 130 | 133 | ||
| 131 | /* | 134 | /* |
| 132 | * Hyp-mode PL2 PTE definitions for LPAE. | 135 | * Hyp-mode PL2 PTE definitions for LPAE. |
diff --git a/arch/arm/include/asm/spinlock.h b/arch/arm/include/asm/spinlock.h index ef3c6072aa45..ac4bfae26702 100644 --- a/arch/arm/include/asm/spinlock.h +++ b/arch/arm/include/asm/spinlock.h | |||
| @@ -37,18 +37,9 @@ | |||
| 37 | 37 | ||
| 38 | static inline void dsb_sev(void) | 38 | static inline void dsb_sev(void) |
| 39 | { | 39 | { |
| 40 | #if __LINUX_ARM_ARCH__ >= 7 | 40 | |
| 41 | __asm__ __volatile__ ( | 41 | dsb(ishst); |
| 42 | "dsb ishst\n" | 42 | __asm__(SEV); |
| 43 | SEV | ||
| 44 | ); | ||
| 45 | #else | ||
| 46 | __asm__ __volatile__ ( | ||
| 47 | "mcr p15, 0, %0, c7, c10, 4\n" | ||
| 48 | SEV | ||
| 49 | : : "r" (0) | ||
| 50 | ); | ||
| 51 | #endif | ||
| 52 | } | 43 | } |
| 53 | 44 | ||
| 54 | /* | 45 | /* |
diff --git a/arch/arm/kernel/head-common.S b/arch/arm/kernel/head-common.S index 47cd974e57ea..c96ecacb2021 100644 --- a/arch/arm/kernel/head-common.S +++ b/arch/arm/kernel/head-common.S | |||
| @@ -177,6 +177,18 @@ __lookup_processor_type_data: | |||
| 177 | .long __proc_info_end | 177 | .long __proc_info_end |
| 178 | .size __lookup_processor_type_data, . - __lookup_processor_type_data | 178 | .size __lookup_processor_type_data, . - __lookup_processor_type_data |
| 179 | 179 | ||
| 180 | __error_lpae: | ||
| 181 | #ifdef CONFIG_DEBUG_LL | ||
| 182 | adr r0, str_lpae | ||
| 183 | bl printascii | ||
| 184 | b __error | ||
| 185 | str_lpae: .asciz "\nError: Kernel with LPAE support, but CPU does not support LPAE.\n" | ||
| 186 | #else | ||
| 187 | b __error | ||
| 188 | #endif | ||
| 189 | .align | ||
| 190 | ENDPROC(__error_lpae) | ||
| 191 | |||
| 180 | __error_p: | 192 | __error_p: |
| 181 | #ifdef CONFIG_DEBUG_LL | 193 | #ifdef CONFIG_DEBUG_LL |
| 182 | adr r0, str_p1 | 194 | adr r0, str_p1 |
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 914616e0bdcd..f5f381d91556 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
| @@ -102,7 +102,7 @@ ENTRY(stext) | |||
| 102 | and r3, r3, #0xf @ extract VMSA support | 102 | and r3, r3, #0xf @ extract VMSA support |
| 103 | cmp r3, #5 @ long-descriptor translation table format? | 103 | cmp r3, #5 @ long-descriptor translation table format? |
| 104 | THUMB( it lo ) @ force fixup-able long branch encoding | 104 | THUMB( it lo ) @ force fixup-able long branch encoding |
| 105 | blo __error_p @ only classic page table format | 105 | blo __error_lpae @ only classic page table format |
| 106 | #endif | 106 | #endif |
| 107 | 107 | ||
| 108 | #ifndef CONFIG_XIP_KERNEL | 108 | #ifndef CONFIG_XIP_KERNEL |
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index b0df9761de6d..1e8b030dbefd 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
| @@ -731,7 +731,7 @@ static void __init request_standard_resources(const struct machine_desc *mdesc) | |||
| 731 | kernel_data.end = virt_to_phys(_end - 1); | 731 | kernel_data.end = virt_to_phys(_end - 1); |
| 732 | 732 | ||
| 733 | for_each_memblock(memory, region) { | 733 | for_each_memblock(memory, region) { |
| 734 | res = memblock_virt_alloc_low(sizeof(*res), 0); | 734 | res = memblock_virt_alloc(sizeof(*res), 0); |
| 735 | res->name = "System RAM"; | 735 | res->name = "System RAM"; |
| 736 | res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region)); | 736 | res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region)); |
| 737 | res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1; | 737 | res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1; |
diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c index 1d8248ea5669..bd18bb8b2770 100644 --- a/arch/arm/kvm/arm.c +++ b/arch/arm/kvm/arm.c | |||
| @@ -878,7 +878,8 @@ static int hyp_init_cpu_pm_notifier(struct notifier_block *self, | |||
| 878 | unsigned long cmd, | 878 | unsigned long cmd, |
| 879 | void *v) | 879 | void *v) |
| 880 | { | 880 | { |
| 881 | if (cmd == CPU_PM_EXIT) { | 881 | if (cmd == CPU_PM_EXIT && |
| 882 | __hyp_get_vectors() == hyp_default_vectors) { | ||
| 882 | cpu_init_hyp_mode(NULL); | 883 | cpu_init_hyp_mode(NULL); |
| 883 | return NOTIFY_OK; | 884 | return NOTIFY_OK; |
| 884 | } | 885 | } |
diff --git a/arch/arm/kvm/interrupts.S b/arch/arm/kvm/interrupts.S index ddc15539bad2..0d68d4073068 100644 --- a/arch/arm/kvm/interrupts.S +++ b/arch/arm/kvm/interrupts.S | |||
| @@ -220,6 +220,10 @@ after_vfp_restore: | |||
| 220 | * in Hyp mode (see init_hyp_mode in arch/arm/kvm/arm.c). Return values are | 220 | * in Hyp mode (see init_hyp_mode in arch/arm/kvm/arm.c). Return values are |
| 221 | * passed in r0 and r1. | 221 | * passed in r0 and r1. |
| 222 | * | 222 | * |
| 223 | * A function pointer with a value of 0xffffffff has a special meaning, | ||
| 224 | * and is used to implement __hyp_get_vectors in the same way as in | ||
| 225 | * arch/arm/kernel/hyp_stub.S. | ||
| 226 | * | ||
| 223 | * The calling convention follows the standard AAPCS: | 227 | * The calling convention follows the standard AAPCS: |
| 224 | * r0 - r3: caller save | 228 | * r0 - r3: caller save |
| 225 | * r12: caller save | 229 | * r12: caller save |
| @@ -363,6 +367,11 @@ hyp_hvc: | |||
| 363 | host_switch_to_hyp: | 367 | host_switch_to_hyp: |
| 364 | pop {r0, r1, r2} | 368 | pop {r0, r1, r2} |
| 365 | 369 | ||
| 370 | /* Check for __hyp_get_vectors */ | ||
| 371 | cmp r0, #-1 | ||
| 372 | mrceq p15, 4, r0, c12, c0, 0 @ get HVBAR | ||
| 373 | beq 1f | ||
| 374 | |||
| 366 | push {lr} | 375 | push {lr} |
| 367 | mrs lr, SPSR | 376 | mrs lr, SPSR |
| 368 | push {lr} | 377 | push {lr} |
| @@ -378,7 +387,7 @@ THUMB( orr lr, #1) | |||
| 378 | pop {lr} | 387 | pop {lr} |
| 379 | msr SPSR_csxf, lr | 388 | msr SPSR_csxf, lr |
| 380 | pop {lr} | 389 | pop {lr} |
| 381 | eret | 390 | 1: eret |
| 382 | 391 | ||
| 383 | guest_trap: | 392 | guest_trap: |
| 384 | load_vcpu @ Load VCPU pointer to r0 | 393 | load_vcpu @ Load VCPU pointer to r0 |
diff --git a/arch/arm/mach-hisi/Kconfig b/arch/arm/mach-hisi/Kconfig index 8f4649b301b2..1abae5f6a418 100644 --- a/arch/arm/mach-hisi/Kconfig +++ b/arch/arm/mach-hisi/Kconfig | |||
| @@ -8,7 +8,7 @@ config ARCH_HI3xxx | |||
| 8 | select CLKSRC_OF | 8 | select CLKSRC_OF |
| 9 | select GENERIC_CLOCKEVENTS | 9 | select GENERIC_CLOCKEVENTS |
| 10 | select HAVE_ARM_SCU | 10 | select HAVE_ARM_SCU |
| 11 | select HAVE_ARM_TWD | 11 | select HAVE_ARM_TWD if SMP |
| 12 | select HAVE_SMP | 12 | select HAVE_SMP |
| 13 | select PINCTRL | 13 | select PINCTRL |
| 14 | select PINCTRL_SINGLE | 14 | select PINCTRL_SINGLE |
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index befcaf5d0574..ec419649320f 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile | |||
| @@ -101,11 +101,9 @@ obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o | |||
| 101 | obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.o | 101 | obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.o |
| 102 | obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o | 102 | obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o |
| 103 | 103 | ||
| 104 | ifeq ($(CONFIG_PM),y) | ||
| 105 | obj-$(CONFIG_SOC_IMX6Q) += pm-imx6q.o headsmp.o | 104 | obj-$(CONFIG_SOC_IMX6Q) += pm-imx6q.o headsmp.o |
| 106 | # i.MX6SL reuses i.MX6Q code | 105 | # i.MX6SL reuses i.MX6Q code |
| 107 | obj-$(CONFIG_SOC_IMX6SL) += pm-imx6q.o headsmp.o | 106 | obj-$(CONFIG_SOC_IMX6SL) += pm-imx6q.o headsmp.o |
| 108 | endif | ||
| 109 | 107 | ||
| 110 | # i.MX5 based machines | 108 | # i.MX5 based machines |
| 111 | obj-$(CONFIG_MACH_MX51_BABBAGE) += mach-mx51_babbage.o | 109 | obj-$(CONFIG_MACH_MX51_BABBAGE) += mach-mx51_babbage.o |
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c index af2e582d2b74..4d677f442539 100644 --- a/arch/arm/mach-imx/clk-imx6q.c +++ b/arch/arm/mach-imx/clk-imx6q.c | |||
| @@ -482,6 +482,9 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node) | |||
| 482 | if (IS_ENABLED(CONFIG_PCI_IMX6)) | 482 | if (IS_ENABLED(CONFIG_PCI_IMX6)) |
| 483 | clk_set_parent(clk[lvds1_sel], clk[sata_ref]); | 483 | clk_set_parent(clk[lvds1_sel], clk[sata_ref]); |
| 484 | 484 | ||
| 485 | /* Set initial power mode */ | ||
| 486 | imx6q_set_lpm(WAIT_CLOCKED); | ||
| 487 | |||
| 485 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt"); | 488 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt"); |
| 486 | base = of_iomap(np, 0); | 489 | base = of_iomap(np, 0); |
| 487 | WARN_ON(!base); | 490 | WARN_ON(!base); |
diff --git a/arch/arm/mach-imx/clk-imx6sl.c b/arch/arm/mach-imx/clk-imx6sl.c index 3781a1853998..4c86f3035205 100644 --- a/arch/arm/mach-imx/clk-imx6sl.c +++ b/arch/arm/mach-imx/clk-imx6sl.c | |||
| @@ -266,6 +266,9 @@ static void __init imx6sl_clocks_init(struct device_node *ccm_node) | |||
| 266 | /* Audio-related clocks configuration */ | 266 | /* Audio-related clocks configuration */ |
| 267 | clk_set_parent(clks[IMX6SL_CLK_SPDIF0_SEL], clks[IMX6SL_CLK_PLL3_PFD3]); | 267 | clk_set_parent(clks[IMX6SL_CLK_SPDIF0_SEL], clks[IMX6SL_CLK_PLL3_PFD3]); |
| 268 | 268 | ||
| 269 | /* Set initial power mode */ | ||
| 270 | imx6q_set_lpm(WAIT_CLOCKED); | ||
| 271 | |||
| 269 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6sl-gpt"); | 272 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6sl-gpt"); |
| 270 | base = of_iomap(np, 0); | 273 | base = of_iomap(np, 0); |
| 271 | WARN_ON(!base); | 274 | WARN_ON(!base); |
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index 59c3b9b26bb4..baf439dc22d8 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h | |||
| @@ -144,13 +144,11 @@ void imx6q_set_chicken_bit(void); | |||
| 144 | void imx_cpu_die(unsigned int cpu); | 144 | void imx_cpu_die(unsigned int cpu); |
| 145 | int imx_cpu_kill(unsigned int cpu); | 145 | int imx_cpu_kill(unsigned int cpu); |
| 146 | 146 | ||
| 147 | #ifdef CONFIG_PM | ||
| 148 | void imx6q_pm_init(void); | 147 | void imx6q_pm_init(void); |
| 149 | void imx6q_pm_set_ccm_base(void __iomem *base); | 148 | void imx6q_pm_set_ccm_base(void __iomem *base); |
| 149 | #ifdef CONFIG_PM | ||
| 150 | void imx5_pm_init(void); | 150 | void imx5_pm_init(void); |
| 151 | #else | 151 | #else |
| 152 | static inline void imx6q_pm_init(void) {} | ||
| 153 | static inline void imx6q_pm_set_ccm_base(void __iomem *base) {} | ||
| 154 | static inline void imx5_pm_init(void) {} | 152 | static inline void imx5_pm_init(void) {} |
| 155 | #endif | 153 | #endif |
| 156 | 154 | ||
diff --git a/arch/arm/mach-imx/pm-imx6q.c b/arch/arm/mach-imx/pm-imx6q.c index 9d47adc078aa..7a9b98589db7 100644 --- a/arch/arm/mach-imx/pm-imx6q.c +++ b/arch/arm/mach-imx/pm-imx6q.c | |||
| @@ -236,8 +236,6 @@ void __init imx6q_pm_init(void) | |||
| 236 | regmap_update_bits(gpr, IOMUXC_GPR1, IMX6Q_GPR1_GINT, | 236 | regmap_update_bits(gpr, IOMUXC_GPR1, IMX6Q_GPR1_GINT, |
| 237 | IMX6Q_GPR1_GINT); | 237 | IMX6Q_GPR1_GINT); |
| 238 | 238 | ||
| 239 | /* Set initial power mode */ | ||
| 240 | imx6q_set_lpm(WAIT_CLOCKED); | ||
| 241 | 239 | ||
| 242 | suspend_set_ops(&imx6q_pm_ops); | 240 | suspend_set_ops(&imx6q_pm_ops); |
| 243 | } | 241 | } |
diff --git a/arch/arm/mach-moxart/Kconfig b/arch/arm/mach-moxart/Kconfig index ba470d64493b..3795ae28a613 100644 --- a/arch/arm/mach-moxart/Kconfig +++ b/arch/arm/mach-moxart/Kconfig | |||
| @@ -2,7 +2,6 @@ config ARCH_MOXART | |||
| 2 | bool "MOXA ART SoC" if ARCH_MULTI_V4T | 2 | bool "MOXA ART SoC" if ARCH_MULTI_V4T |
| 3 | select CPU_FA526 | 3 | select CPU_FA526 |
| 4 | select ARM_DMA_MEM_BUFFERABLE | 4 | select ARM_DMA_MEM_BUFFERABLE |
| 5 | select DMA_OF | ||
| 6 | select USE_OF | 5 | select USE_OF |
| 7 | select CLKSRC_OF | 6 | select CLKSRC_OF |
| 8 | select CLKSRC_MMIO | 7 | select CLKSRC_MMIO |
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c index 91449c5cb70f..85089d821982 100644 --- a/arch/arm/mach-omap1/board-nokia770.c +++ b/arch/arm/mach-omap1/board-nokia770.c | |||
| @@ -156,6 +156,7 @@ static struct omap_usb_config nokia770_usb_config __initdata = { | |||
| 156 | .register_dev = 1, | 156 | .register_dev = 1, |
| 157 | .hmc_mode = 16, | 157 | .hmc_mode = 16, |
| 158 | .pins[0] = 6, | 158 | .pins[0] = 6, |
| 159 | .extcon = "tahvo-usb", | ||
| 159 | }; | 160 | }; |
| 160 | 161 | ||
| 161 | #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) | 162 | #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) |
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 653b489479e0..0af7ca02314d 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
| @@ -50,11 +50,12 @@ config SOC_OMAP5 | |||
| 50 | bool "TI OMAP5" | 50 | bool "TI OMAP5" |
| 51 | depends on ARCH_MULTI_V7 | 51 | depends on ARCH_MULTI_V7 |
| 52 | select ARCH_OMAP2PLUS | 52 | select ARCH_OMAP2PLUS |
| 53 | select ARCH_HAS_OPP | ||
| 53 | select ARM_CPU_SUSPEND if PM | 54 | select ARM_CPU_SUSPEND if PM |
| 54 | select ARM_GIC | 55 | select ARM_GIC |
| 55 | select CPU_V7 | 56 | select CPU_V7 |
| 56 | select HAVE_ARM_SCU if SMP | 57 | select HAVE_ARM_SCU if SMP |
| 57 | select HAVE_ARM_TWD if LOCAL_TIMERS | 58 | select HAVE_ARM_TWD if SMP |
| 58 | select HAVE_SMP | 59 | select HAVE_SMP |
| 59 | select HAVE_ARM_ARCH_TIMER | 60 | select HAVE_ARM_ARCH_TIMER |
| 60 | select ARM_ERRATA_798181 if SMP | 61 | select ARM_ERRATA_798181 if SMP |
| @@ -63,6 +64,7 @@ config SOC_AM33XX | |||
| 63 | bool "TI AM33XX" | 64 | bool "TI AM33XX" |
| 64 | depends on ARCH_MULTI_V7 | 65 | depends on ARCH_MULTI_V7 |
| 65 | select ARCH_OMAP2PLUS | 66 | select ARCH_OMAP2PLUS |
| 67 | select ARCH_HAS_OPP | ||
| 66 | select ARM_CPU_SUSPEND if PM | 68 | select ARM_CPU_SUSPEND if PM |
| 67 | select CPU_V7 | 69 | select CPU_V7 |
| 68 | select MULTI_IRQ_HANDLER | 70 | select MULTI_IRQ_HANDLER |
| @@ -72,6 +74,7 @@ config SOC_AM43XX | |||
| 72 | depends on ARCH_MULTI_V7 | 74 | depends on ARCH_MULTI_V7 |
| 73 | select CPU_V7 | 75 | select CPU_V7 |
| 74 | select ARCH_OMAP2PLUS | 76 | select ARCH_OMAP2PLUS |
| 77 | select ARCH_HAS_OPP | ||
| 75 | select MULTI_IRQ_HANDLER | 78 | select MULTI_IRQ_HANDLER |
| 76 | select ARM_GIC | 79 | select ARM_GIC |
| 77 | select MACH_OMAP_GENERIC | 80 | select MACH_OMAP_GENERIC |
| @@ -80,6 +83,7 @@ config SOC_DRA7XX | |||
| 80 | bool "TI DRA7XX" | 83 | bool "TI DRA7XX" |
| 81 | depends on ARCH_MULTI_V7 | 84 | depends on ARCH_MULTI_V7 |
| 82 | select ARCH_OMAP2PLUS | 85 | select ARCH_OMAP2PLUS |
| 86 | select ARCH_HAS_OPP | ||
| 83 | select ARM_CPU_SUSPEND if PM | 87 | select ARM_CPU_SUSPEND if PM |
| 84 | select ARM_GIC | 88 | select ARM_GIC |
| 85 | select CPU_V7 | 89 | select CPU_V7 |
| @@ -268,9 +272,6 @@ config MACH_OMAP_3430SDP | |||
| 268 | default y | 272 | default y |
| 269 | select OMAP_PACKAGE_CBB | 273 | select OMAP_PACKAGE_CBB |
| 270 | 274 | ||
| 271 | config MACH_NOKIA_N800 | ||
| 272 | bool | ||
| 273 | |||
| 274 | config MACH_NOKIA_N810 | 275 | config MACH_NOKIA_N810 |
| 275 | bool | 276 | bool |
| 276 | 277 | ||
| @@ -281,7 +282,6 @@ config MACH_NOKIA_N8X0 | |||
| 281 | bool "Nokia N800/N810" | 282 | bool "Nokia N800/N810" |
| 282 | depends on SOC_OMAP2420 | 283 | depends on SOC_OMAP2420 |
| 283 | default y | 284 | default y |
| 284 | select MACH_NOKIA_N800 | ||
| 285 | select MACH_NOKIA_N810 | 285 | select MACH_NOKIA_N810 |
| 286 | select MACH_NOKIA_N810_WIMAX | 286 | select MACH_NOKIA_N810_WIMAX |
| 287 | select OMAP_PACKAGE_ZAC | 287 | select OMAP_PACKAGE_ZAC |
diff --git a/arch/arm/mach-omap2/cclock3xxx_data.c b/arch/arm/mach-omap2/cclock3xxx_data.c index 3b05aea56d1f..11ed9152e665 100644 --- a/arch/arm/mach-omap2/cclock3xxx_data.c +++ b/arch/arm/mach-omap2/cclock3xxx_data.c | |||
| @@ -433,7 +433,9 @@ static const struct clk_ops dpll4_m5x2_ck_ops = { | |||
| 433 | .enable = &omap2_dflt_clk_enable, | 433 | .enable = &omap2_dflt_clk_enable, |
| 434 | .disable = &omap2_dflt_clk_disable, | 434 | .disable = &omap2_dflt_clk_disable, |
| 435 | .is_enabled = &omap2_dflt_clk_is_enabled, | 435 | .is_enabled = &omap2_dflt_clk_is_enabled, |
| 436 | .set_rate = &omap3_clkoutx2_set_rate, | ||
| 436 | .recalc_rate = &omap3_clkoutx2_recalc, | 437 | .recalc_rate = &omap3_clkoutx2_recalc, |
| 438 | .round_rate = &omap3_clkoutx2_round_rate, | ||
| 437 | }; | 439 | }; |
| 438 | 440 | ||
| 439 | static const struct clk_ops dpll4_m5x2_ck_3630_ops = { | 441 | static const struct clk_ops dpll4_m5x2_ck_3630_ops = { |
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c index 4c158c838d40..01fc710c8181 100644 --- a/arch/arm/mach-omap2/cpuidle44xx.c +++ b/arch/arm/mach-omap2/cpuidle44xx.c | |||
| @@ -23,6 +23,8 @@ | |||
| 23 | #include "prm.h" | 23 | #include "prm.h" |
| 24 | #include "clockdomain.h" | 24 | #include "clockdomain.h" |
| 25 | 25 | ||
| 26 | #define MAX_CPUS 2 | ||
| 27 | |||
| 26 | /* Machine specific information */ | 28 | /* Machine specific information */ |
| 27 | struct idle_statedata { | 29 | struct idle_statedata { |
| 28 | u32 cpu_state; | 30 | u32 cpu_state; |
| @@ -48,11 +50,11 @@ static struct idle_statedata omap4_idle_data[] = { | |||
| 48 | }, | 50 | }, |
| 49 | }; | 51 | }; |
| 50 | 52 | ||
| 51 | static struct powerdomain *mpu_pd, *cpu_pd[NR_CPUS]; | 53 | static struct powerdomain *mpu_pd, *cpu_pd[MAX_CPUS]; |
| 52 | static struct clockdomain *cpu_clkdm[NR_CPUS]; | 54 | static struct clockdomain *cpu_clkdm[MAX_CPUS]; |
| 53 | 55 | ||
| 54 | static atomic_t abort_barrier; | 56 | static atomic_t abort_barrier; |
| 55 | static bool cpu_done[NR_CPUS]; | 57 | static bool cpu_done[MAX_CPUS]; |
| 56 | static struct idle_statedata *state_ptr = &omap4_idle_data[0]; | 58 | static struct idle_statedata *state_ptr = &omap4_idle_data[0]; |
| 57 | 59 | ||
| 58 | /* Private functions */ | 60 | /* Private functions */ |
diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c index 3185ced807c9..3c418ea54bbe 100644 --- a/arch/arm/mach-omap2/dpll3xxx.c +++ b/arch/arm/mach-omap2/dpll3xxx.c | |||
| @@ -623,6 +623,32 @@ void omap3_dpll_deny_idle(struct clk_hw_omap *clk) | |||
| 623 | 623 | ||
| 624 | /* Clock control for DPLL outputs */ | 624 | /* Clock control for DPLL outputs */ |
| 625 | 625 | ||
| 626 | /* Find the parent DPLL for the given clkoutx2 clock */ | ||
| 627 | static struct clk_hw_omap *omap3_find_clkoutx2_dpll(struct clk_hw *hw) | ||
| 628 | { | ||
| 629 | struct clk_hw_omap *pclk = NULL; | ||
| 630 | struct clk *parent; | ||
| 631 | |||
| 632 | /* Walk up the parents of clk, looking for a DPLL */ | ||
| 633 | do { | ||
| 634 | do { | ||
| 635 | parent = __clk_get_parent(hw->clk); | ||
| 636 | hw = __clk_get_hw(parent); | ||
| 637 | } while (hw && (__clk_get_flags(hw->clk) & CLK_IS_BASIC)); | ||
| 638 | if (!hw) | ||
| 639 | break; | ||
| 640 | pclk = to_clk_hw_omap(hw); | ||
| 641 | } while (pclk && !pclk->dpll_data); | ||
| 642 | |||
| 643 | /* clk does not have a DPLL as a parent? error in the clock data */ | ||
| 644 | if (!pclk) { | ||
| 645 | WARN_ON(1); | ||
| 646 | return NULL; | ||
| 647 | } | ||
| 648 | |||
| 649 | return pclk; | ||
| 650 | } | ||
| 651 | |||
| 626 | /** | 652 | /** |
| 627 | * omap3_clkoutx2_recalc - recalculate DPLL X2 output virtual clock rate | 653 | * omap3_clkoutx2_recalc - recalculate DPLL X2 output virtual clock rate |
| 628 | * @clk: DPLL output struct clk | 654 | * @clk: DPLL output struct clk |
| @@ -637,27 +663,14 @@ unsigned long omap3_clkoutx2_recalc(struct clk_hw *hw, | |||
| 637 | unsigned long rate; | 663 | unsigned long rate; |
| 638 | u32 v; | 664 | u32 v; |
| 639 | struct clk_hw_omap *pclk = NULL; | 665 | struct clk_hw_omap *pclk = NULL; |
| 640 | struct clk *parent; | ||
| 641 | 666 | ||
| 642 | if (!parent_rate) | 667 | if (!parent_rate) |
| 643 | return 0; | 668 | return 0; |
| 644 | 669 | ||
| 645 | /* Walk up the parents of clk, looking for a DPLL */ | 670 | pclk = omap3_find_clkoutx2_dpll(hw); |
| 646 | do { | ||
| 647 | do { | ||
| 648 | parent = __clk_get_parent(hw->clk); | ||
| 649 | hw = __clk_get_hw(parent); | ||
| 650 | } while (hw && (__clk_get_flags(hw->clk) & CLK_IS_BASIC)); | ||
| 651 | if (!hw) | ||
| 652 | break; | ||
| 653 | pclk = to_clk_hw_omap(hw); | ||
| 654 | } while (pclk && !pclk->dpll_data); | ||
| 655 | 671 | ||
| 656 | /* clk does not have a DPLL as a parent? error in the clock data */ | 672 | if (!pclk) |
| 657 | if (!pclk) { | ||
| 658 | WARN_ON(1); | ||
| 659 | return 0; | 673 | return 0; |
| 660 | } | ||
| 661 | 674 | ||
| 662 | dd = pclk->dpll_data; | 675 | dd = pclk->dpll_data; |
| 663 | 676 | ||
| @@ -672,6 +685,55 @@ unsigned long omap3_clkoutx2_recalc(struct clk_hw *hw, | |||
| 672 | return rate; | 685 | return rate; |
| 673 | } | 686 | } |
| 674 | 687 | ||
| 688 | int omap3_clkoutx2_set_rate(struct clk_hw *hw, unsigned long rate, | ||
| 689 | unsigned long parent_rate) | ||
| 690 | { | ||
| 691 | return 0; | ||
| 692 | } | ||
| 693 | |||
| 694 | long omap3_clkoutx2_round_rate(struct clk_hw *hw, unsigned long rate, | ||
| 695 | unsigned long *prate) | ||
| 696 | { | ||
| 697 | const struct dpll_data *dd; | ||
| 698 | u32 v; | ||
| 699 | struct clk_hw_omap *pclk = NULL; | ||
| 700 | |||
| 701 | if (!*prate) | ||
| 702 | return 0; | ||
| 703 | |||
| 704 | pclk = omap3_find_clkoutx2_dpll(hw); | ||
| 705 | |||
| 706 | if (!pclk) | ||
| 707 | return 0; | ||
| 708 | |||
| 709 | dd = pclk->dpll_data; | ||
| 710 | |||
| 711 | /* TYPE J does not have a clkoutx2 */ | ||
| 712 | if (dd->flags & DPLL_J_TYPE) { | ||
| 713 | *prate = __clk_round_rate(__clk_get_parent(pclk->hw.clk), rate); | ||
| 714 | return *prate; | ||
| 715 | } | ||
| 716 | |||
| 717 | WARN_ON(!dd->enable_mask); | ||
| 718 | |||
| 719 | v = omap2_clk_readl(pclk, dd->control_reg) & dd->enable_mask; | ||
| 720 | v >>= __ffs(dd->enable_mask); | ||
| 721 | |||
| 722 | /* If in bypass, the rate is fixed to the bypass rate*/ | ||
| 723 | if (v != OMAP3XXX_EN_DPLL_LOCKED) | ||
| 724 | return *prate; | ||
| 725 | |||
| 726 | if (__clk_get_flags(hw->clk) & CLK_SET_RATE_PARENT) { | ||
| 727 | unsigned long best_parent; | ||
| 728 | |||
| 729 | best_parent = (rate / 2); | ||
| 730 | *prate = __clk_round_rate(__clk_get_parent(hw->clk), | ||
| 731 | best_parent); | ||
| 732 | } | ||
| 733 | |||
| 734 | return *prate * 2; | ||
| 735 | } | ||
| 736 | |||
| 675 | /* OMAP3/4 non-CORE DPLL clkops */ | 737 | /* OMAP3/4 non-CORE DPLL clkops */ |
| 676 | const struct clk_hw_omap_ops clkhwops_omap3_dpll = { | 738 | const struct clk_hw_omap_ops clkhwops_omap3_dpll = { |
| 677 | .allow_idle = omap3_dpll_allow_idle, | 739 | .allow_idle = omap3_dpll_allow_idle, |
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index d24926e6340f..ab43755364f5 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
| @@ -1339,7 +1339,7 @@ static void __maybe_unused gpmc_read_timings_dt(struct device_node *np, | |||
| 1339 | of_property_read_bool(np, "gpmc,time-para-granularity"); | 1339 | of_property_read_bool(np, "gpmc,time-para-granularity"); |
| 1340 | } | 1340 | } |
| 1341 | 1341 | ||
| 1342 | #ifdef CONFIG_MTD_NAND | 1342 | #if IS_ENABLED(CONFIG_MTD_NAND) |
| 1343 | 1343 | ||
| 1344 | static const char * const nand_xfer_types[] = { | 1344 | static const char * const nand_xfer_types[] = { |
| 1345 | [NAND_OMAP_PREFETCH_POLLED] = "prefetch-polled", | 1345 | [NAND_OMAP_PREFETCH_POLLED] = "prefetch-polled", |
| @@ -1429,7 +1429,7 @@ static int gpmc_probe_nand_child(struct platform_device *pdev, | |||
| 1429 | } | 1429 | } |
| 1430 | #endif | 1430 | #endif |
| 1431 | 1431 | ||
| 1432 | #ifdef CONFIG_MTD_ONENAND | 1432 | #if IS_ENABLED(CONFIG_MTD_ONENAND) |
| 1433 | static int gpmc_probe_onenand_child(struct platform_device *pdev, | 1433 | static int gpmc_probe_onenand_child(struct platform_device *pdev, |
| 1434 | struct device_node *child) | 1434 | struct device_node *child) |
| 1435 | { | 1435 | { |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index d408b15b4fbf..af432b191255 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
| @@ -179,15 +179,6 @@ static struct map_desc omap34xx_io_desc[] __initdata = { | |||
| 179 | .length = L4_EMU_34XX_SIZE, | 179 | .length = L4_EMU_34XX_SIZE, |
| 180 | .type = MT_DEVICE | 180 | .type = MT_DEVICE |
| 181 | }, | 181 | }, |
| 182 | #if defined(CONFIG_DEBUG_LL) && \ | ||
| 183 | (defined(CONFIG_MACH_OMAP_ZOOM2) || defined(CONFIG_MACH_OMAP_ZOOM3)) | ||
| 184 | { | ||
| 185 | .virtual = ZOOM_UART_VIRT, | ||
| 186 | .pfn = __phys_to_pfn(ZOOM_UART_BASE), | ||
| 187 | .length = SZ_1M, | ||
| 188 | .type = MT_DEVICE | ||
| 189 | }, | ||
| 190 | #endif | ||
| 191 | }; | 182 | }; |
| 192 | #endif | 183 | #endif |
| 193 | 184 | ||
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 42d81885c700..1f33f5db10d5 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
| @@ -1947,29 +1947,31 @@ static int _ocp_softreset(struct omap_hwmod *oh) | |||
| 1947 | goto dis_opt_clks; | 1947 | goto dis_opt_clks; |
| 1948 | 1948 | ||
| 1949 | _write_sysconfig(v, oh); | 1949 | _write_sysconfig(v, oh); |
| 1950 | ret = _clear_softreset(oh, &v); | ||
| 1951 | if (ret) | ||
| 1952 | goto dis_opt_clks; | ||
| 1953 | |||
| 1954 | _write_sysconfig(v, oh); | ||
| 1955 | 1950 | ||
| 1956 | if (oh->class->sysc->srst_udelay) | 1951 | if (oh->class->sysc->srst_udelay) |
| 1957 | udelay(oh->class->sysc->srst_udelay); | 1952 | udelay(oh->class->sysc->srst_udelay); |
| 1958 | 1953 | ||
| 1959 | c = _wait_softreset_complete(oh); | 1954 | c = _wait_softreset_complete(oh); |
| 1960 | if (c == MAX_MODULE_SOFTRESET_WAIT) | 1955 | if (c == MAX_MODULE_SOFTRESET_WAIT) { |
| 1961 | pr_warning("omap_hwmod: %s: softreset failed (waited %d usec)\n", | 1956 | pr_warning("omap_hwmod: %s: softreset failed (waited %d usec)\n", |
| 1962 | oh->name, MAX_MODULE_SOFTRESET_WAIT); | 1957 | oh->name, MAX_MODULE_SOFTRESET_WAIT); |
| 1963 | else | 1958 | ret = -ETIMEDOUT; |
| 1959 | goto dis_opt_clks; | ||
| 1960 | } else { | ||
| 1964 | pr_debug("omap_hwmod: %s: softreset in %d usec\n", oh->name, c); | 1961 | pr_debug("omap_hwmod: %s: softreset in %d usec\n", oh->name, c); |
| 1962 | } | ||
| 1963 | |||
| 1964 | ret = _clear_softreset(oh, &v); | ||
| 1965 | if (ret) | ||
| 1966 | goto dis_opt_clks; | ||
| 1967 | |||
| 1968 | _write_sysconfig(v, oh); | ||
| 1965 | 1969 | ||
| 1966 | /* | 1970 | /* |
| 1967 | * XXX add _HWMOD_STATE_WEDGED for modules that don't come back from | 1971 | * XXX add _HWMOD_STATE_WEDGED for modules that don't come back from |
| 1968 | * _wait_target_ready() or _reset() | 1972 | * _wait_target_ready() or _reset() |
| 1969 | */ | 1973 | */ |
| 1970 | 1974 | ||
| 1971 | ret = (c == MAX_MODULE_SOFTRESET_WAIT) ? -ETIMEDOUT : 0; | ||
| 1972 | |||
| 1973 | dis_opt_clks: | 1975 | dis_opt_clks: |
| 1974 | if (oh->flags & HWMOD_CONTROL_OPT_CLKS_IN_RESET) | 1976 | if (oh->flags & HWMOD_CONTROL_OPT_CLKS_IN_RESET) |
| 1975 | _disable_optional_clocks(oh); | 1977 | _disable_optional_clocks(oh); |
diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c index 18f333c440db..810c205d668b 100644 --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c | |||
| @@ -1365,11 +1365,10 @@ static struct omap_hwmod_class_sysconfig dra7xx_spinlock_sysc = { | |||
| 1365 | .rev_offs = 0x0000, | 1365 | .rev_offs = 0x0000, |
| 1366 | .sysc_offs = 0x0010, | 1366 | .sysc_offs = 0x0010, |
| 1367 | .syss_offs = 0x0014, | 1367 | .syss_offs = 0x0014, |
| 1368 | .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY | | 1368 | .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_ENAWAKEUP | |
| 1369 | SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE | | 1369 | SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET | |
| 1370 | SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS), | 1370 | SYSS_HAS_RESET_STATUS), |
| 1371 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | | 1371 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), |
| 1372 | SIDLE_SMART_WKUP), | ||
| 1373 | .sysc_fields = &omap_hwmod_sysc_type1, | 1372 | .sysc_fields = &omap_hwmod_sysc_type1, |
| 1374 | }; | 1373 | }; |
| 1375 | 1374 | ||
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c index 3d5b24dcd9a4..c33e07e2f0d4 100644 --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c | |||
| @@ -22,6 +22,8 @@ | |||
| 22 | #include "common-board-devices.h" | 22 | #include "common-board-devices.h" |
| 23 | #include "dss-common.h" | 23 | #include "dss-common.h" |
| 24 | #include "control.h" | 24 | #include "control.h" |
| 25 | #include "omap-secure.h" | ||
| 26 | #include "soc.h" | ||
| 25 | 27 | ||
| 26 | struct pdata_init { | 28 | struct pdata_init { |
| 27 | const char *compatible; | 29 | const char *compatible; |
| @@ -169,6 +171,22 @@ static void __init am3517_evm_legacy_init(void) | |||
| 169 | omap_ctrl_writel(v, AM35XX_CONTROL_IP_SW_RESET); | 171 | omap_ctrl_writel(v, AM35XX_CONTROL_IP_SW_RESET); |
| 170 | omap_ctrl_readl(AM35XX_CONTROL_IP_SW_RESET); /* OCP barrier */ | 172 | omap_ctrl_readl(AM35XX_CONTROL_IP_SW_RESET); /* OCP barrier */ |
| 171 | } | 173 | } |
| 174 | |||
| 175 | static void __init nokia_n900_legacy_init(void) | ||
| 176 | { | ||
| 177 | hsmmc2_internal_input_clk(); | ||
| 178 | |||
| 179 | if (omap_type() == OMAP2_DEVICE_TYPE_SEC) { | ||
| 180 | if (IS_ENABLED(CONFIG_ARM_ERRATA_430973)) { | ||
| 181 | pr_info("RX-51: Enabling ARM errata 430973 workaround\n"); | ||
| 182 | /* set IBE to 1 */ | ||
| 183 | rx51_secure_update_aux_cr(BIT(6), 0); | ||
| 184 | } else { | ||
| 185 | pr_warning("RX-51: Not enabling ARM errata 430973 workaround\n"); | ||
| 186 | pr_warning("Thumb binaries may crash randomly without this workaround\n"); | ||
| 187 | } | ||
| 188 | } | ||
| 189 | } | ||
| 172 | #endif /* CONFIG_ARCH_OMAP3 */ | 190 | #endif /* CONFIG_ARCH_OMAP3 */ |
| 173 | 191 | ||
| 174 | #ifdef CONFIG_ARCH_OMAP4 | 192 | #ifdef CONFIG_ARCH_OMAP4 |
| @@ -239,6 +257,7 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = { | |||
| 239 | #endif | 257 | #endif |
| 240 | #ifdef CONFIG_ARCH_OMAP3 | 258 | #ifdef CONFIG_ARCH_OMAP3 |
| 241 | OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002030, "48002030.pinmux", &pcs_pdata), | 259 | OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002030, "48002030.pinmux", &pcs_pdata), |
| 260 | OF_DEV_AUXDATA("ti,omap3-padconf", 0x480025a0, "480025a0.pinmux", &pcs_pdata), | ||
| 242 | OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002a00, "48002a00.pinmux", &pcs_pdata), | 261 | OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002a00, "48002a00.pinmux", &pcs_pdata), |
| 243 | /* Only on am3517 */ | 262 | /* Only on am3517 */ |
| 244 | OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL), | 263 | OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL), |
| @@ -259,7 +278,7 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = { | |||
| 259 | static struct pdata_init pdata_quirks[] __initdata = { | 278 | static struct pdata_init pdata_quirks[] __initdata = { |
| 260 | #ifdef CONFIG_ARCH_OMAP3 | 279 | #ifdef CONFIG_ARCH_OMAP3 |
| 261 | { "compulab,omap3-sbc-t3730", omap3_sbc_t3730_legacy_init, }, | 280 | { "compulab,omap3-sbc-t3730", omap3_sbc_t3730_legacy_init, }, |
| 262 | { "nokia,omap3-n900", hsmmc2_internal_input_clk, }, | 281 | { "nokia,omap3-n900", nokia_n900_legacy_init, }, |
| 263 | { "nokia,omap3-n9", hsmmc2_internal_input_clk, }, | 282 | { "nokia,omap3-n9", hsmmc2_internal_input_clk, }, |
| 264 | { "nokia,omap3-n950", hsmmc2_internal_input_clk, }, | 283 | { "nokia,omap3-n950", hsmmc2_internal_input_clk, }, |
| 265 | { "isee,omap3-igep0020", omap3_igep0020_legacy_init, }, | 284 | { "isee,omap3-igep0020", omap3_igep0020_legacy_init, }, |
diff --git a/arch/arm/mach-omap2/prminst44xx.c b/arch/arm/mach-omap2/prminst44xx.c index 6334b96b4097..280f3c58abe5 100644 --- a/arch/arm/mach-omap2/prminst44xx.c +++ b/arch/arm/mach-omap2/prminst44xx.c | |||
| @@ -183,11 +183,11 @@ void omap4_prminst_global_warm_sw_reset(void) | |||
| 183 | OMAP4_PRM_RSTCTRL_OFFSET); | 183 | OMAP4_PRM_RSTCTRL_OFFSET); |
| 184 | v |= OMAP4430_RST_GLOBAL_WARM_SW_MASK; | 184 | v |= OMAP4430_RST_GLOBAL_WARM_SW_MASK; |
| 185 | omap4_prminst_write_inst_reg(v, OMAP4430_PRM_PARTITION, | 185 | omap4_prminst_write_inst_reg(v, OMAP4430_PRM_PARTITION, |
| 186 | OMAP4430_PRM_DEVICE_INST, | 186 | dev_inst, |
| 187 | OMAP4_PRM_RSTCTRL_OFFSET); | 187 | OMAP4_PRM_RSTCTRL_OFFSET); |
| 188 | 188 | ||
| 189 | /* OCP barrier */ | 189 | /* OCP barrier */ |
| 190 | v = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION, | 190 | v = omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION, |
| 191 | OMAP4430_PRM_DEVICE_INST, | 191 | dev_inst, |
| 192 | OMAP4_PRM_RSTCTRL_OFFSET); | 192 | OMAP4_PRM_RSTCTRL_OFFSET); |
| 193 | } | 193 | } |
diff --git a/arch/arm/mach-pxa/am300epd.c b/arch/arm/mach-pxa/am300epd.c index c9f309ae88c5..8b90c4f2d430 100644 --- a/arch/arm/mach-pxa/am300epd.c +++ b/arch/arm/mach-pxa/am300epd.c | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | 30 | ||
| 31 | #include <mach/gumstix.h> | 31 | #include <mach/gumstix.h> |
| 32 | #include <mach/mfp-pxa25x.h> | 32 | #include <mach/mfp-pxa25x.h> |
| 33 | #include <mach/irqs.h> | ||
| 33 | #include <linux/platform_data/video-pxafb.h> | 34 | #include <linux/platform_data/video-pxafb.h> |
| 34 | 35 | ||
| 35 | #include "generic.h" | 36 | #include "generic.h" |
diff --git a/arch/arm/mach-pxa/include/mach/balloon3.h b/arch/arm/mach-pxa/include/mach/balloon3.h index 954641e6c8b1..1b0825911e62 100644 --- a/arch/arm/mach-pxa/include/mach/balloon3.h +++ b/arch/arm/mach-pxa/include/mach/balloon3.h | |||
| @@ -14,6 +14,8 @@ | |||
| 14 | #ifndef ASM_ARCH_BALLOON3_H | 14 | #ifndef ASM_ARCH_BALLOON3_H |
| 15 | #define ASM_ARCH_BALLOON3_H | 15 | #define ASM_ARCH_BALLOON3_H |
| 16 | 16 | ||
| 17 | #include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ | ||
| 18 | |||
| 17 | enum balloon3_features { | 19 | enum balloon3_features { |
| 18 | BALLOON3_FEATURE_OHCI, | 20 | BALLOON3_FEATURE_OHCI, |
| 19 | BALLOON3_FEATURE_MMC, | 21 | BALLOON3_FEATURE_MMC, |
diff --git a/arch/arm/mach-pxa/include/mach/corgi.h b/arch/arm/mach-pxa/include/mach/corgi.h index f3c3493b468d..c030d955bbd7 100644 --- a/arch/arm/mach-pxa/include/mach/corgi.h +++ b/arch/arm/mach-pxa/include/mach/corgi.h | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #ifndef __ASM_ARCH_CORGI_H | 13 | #ifndef __ASM_ARCH_CORGI_H |
| 14 | #define __ASM_ARCH_CORGI_H 1 | 14 | #define __ASM_ARCH_CORGI_H 1 |
| 15 | 15 | ||
| 16 | #include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ | ||
| 16 | 17 | ||
| 17 | /* | 18 | /* |
| 18 | * Corgi (Non Standard) GPIO Definitions | 19 | * Corgi (Non Standard) GPIO Definitions |
diff --git a/arch/arm/mach-pxa/include/mach/csb726.h b/arch/arm/mach-pxa/include/mach/csb726.h index 2628e7b72116..00cfbbbf73f7 100644 --- a/arch/arm/mach-pxa/include/mach/csb726.h +++ b/arch/arm/mach-pxa/include/mach/csb726.h | |||
| @@ -11,6 +11,8 @@ | |||
| 11 | #ifndef CSB726_H | 11 | #ifndef CSB726_H |
| 12 | #define CSB726_H | 12 | #define CSB726_H |
| 13 | 13 | ||
| 14 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
| 15 | |||
| 14 | #define CSB726_GPIO_IRQ_LAN 52 | 16 | #define CSB726_GPIO_IRQ_LAN 52 |
| 15 | #define CSB726_GPIO_IRQ_SM501 53 | 17 | #define CSB726_GPIO_IRQ_SM501 53 |
| 16 | #define CSB726_GPIO_MMC_DETECT 100 | 18 | #define CSB726_GPIO_MMC_DETECT 100 |
diff --git a/arch/arm/mach-pxa/include/mach/gumstix.h b/arch/arm/mach-pxa/include/mach/gumstix.h index dba14b6503ad..f7df27bbb42e 100644 --- a/arch/arm/mach-pxa/include/mach/gumstix.h +++ b/arch/arm/mach-pxa/include/mach/gumstix.h | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
| 9 | 10 | ||
| 10 | /* BTRESET - Reset line to Bluetooth module, active low signal. */ | 11 | /* BTRESET - Reset line to Bluetooth module, active low signal. */ |
| 11 | #define GPIO_GUMSTIX_BTRESET 7 | 12 | #define GPIO_GUMSTIX_BTRESET 7 |
diff --git a/arch/arm/mach-pxa/include/mach/idp.h b/arch/arm/mach-pxa/include/mach/idp.h index 22a96f87232b..7e63f4680271 100644 --- a/arch/arm/mach-pxa/include/mach/idp.h +++ b/arch/arm/mach-pxa/include/mach/idp.h | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | * IDP hardware. | 23 | * IDP hardware. |
| 24 | */ | 24 | */ |
| 25 | 25 | ||
| 26 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
| 26 | 27 | ||
| 27 | #define IDP_FLASH_PHYS (PXA_CS0_PHYS) | 28 | #define IDP_FLASH_PHYS (PXA_CS0_PHYS) |
| 28 | #define IDP_ALT_FLASH_PHYS (PXA_CS1_PHYS) | 29 | #define IDP_ALT_FLASH_PHYS (PXA_CS1_PHYS) |
diff --git a/arch/arm/mach-pxa/include/mach/palmld.h b/arch/arm/mach-pxa/include/mach/palmld.h index 2c4471336570..b184f296023b 100644 --- a/arch/arm/mach-pxa/include/mach/palmld.h +++ b/arch/arm/mach-pxa/include/mach/palmld.h | |||
| @@ -13,6 +13,8 @@ | |||
| 13 | #ifndef _INCLUDE_PALMLD_H_ | 13 | #ifndef _INCLUDE_PALMLD_H_ |
| 14 | #define _INCLUDE_PALMLD_H_ | 14 | #define _INCLUDE_PALMLD_H_ |
| 15 | 15 | ||
| 16 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
| 17 | |||
| 16 | /** HERE ARE GPIOs **/ | 18 | /** HERE ARE GPIOs **/ |
| 17 | 19 | ||
| 18 | /* GPIOs */ | 20 | /* GPIOs */ |
diff --git a/arch/arm/mach-pxa/include/mach/palmt5.h b/arch/arm/mach-pxa/include/mach/palmt5.h index 0bd4f036c72f..e342c5921405 100644 --- a/arch/arm/mach-pxa/include/mach/palmt5.h +++ b/arch/arm/mach-pxa/include/mach/palmt5.h | |||
| @@ -15,6 +15,8 @@ | |||
| 15 | #ifndef _INCLUDE_PALMT5_H_ | 15 | #ifndef _INCLUDE_PALMT5_H_ |
| 16 | #define _INCLUDE_PALMT5_H_ | 16 | #define _INCLUDE_PALMT5_H_ |
| 17 | 17 | ||
| 18 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
| 19 | |||
| 18 | /** HERE ARE GPIOs **/ | 20 | /** HERE ARE GPIOs **/ |
| 19 | 21 | ||
| 20 | /* GPIOs */ | 22 | /* GPIOs */ |
diff --git a/arch/arm/mach-pxa/include/mach/palmtc.h b/arch/arm/mach-pxa/include/mach/palmtc.h index c383a21680b6..81c727b3cfd2 100644 --- a/arch/arm/mach-pxa/include/mach/palmtc.h +++ b/arch/arm/mach-pxa/include/mach/palmtc.h | |||
| @@ -16,6 +16,8 @@ | |||
| 16 | #ifndef _INCLUDE_PALMTC_H_ | 16 | #ifndef _INCLUDE_PALMTC_H_ |
| 17 | #define _INCLUDE_PALMTC_H_ | 17 | #define _INCLUDE_PALMTC_H_ |
| 18 | 18 | ||
| 19 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
| 20 | |||
| 19 | /** HERE ARE GPIOs **/ | 21 | /** HERE ARE GPIOs **/ |
| 20 | 22 | ||
| 21 | /* GPIOs */ | 23 | /* GPIOs */ |
diff --git a/arch/arm/mach-pxa/include/mach/palmtx.h b/arch/arm/mach-pxa/include/mach/palmtx.h index f2e530380253..92bc1f05300d 100644 --- a/arch/arm/mach-pxa/include/mach/palmtx.h +++ b/arch/arm/mach-pxa/include/mach/palmtx.h | |||
| @@ -16,6 +16,8 @@ | |||
| 16 | #ifndef _INCLUDE_PALMTX_H_ | 16 | #ifndef _INCLUDE_PALMTX_H_ |
| 17 | #define _INCLUDE_PALMTX_H_ | 17 | #define _INCLUDE_PALMTX_H_ |
| 18 | 18 | ||
| 19 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
| 20 | |||
| 19 | /** HERE ARE GPIOs **/ | 21 | /** HERE ARE GPIOs **/ |
| 20 | 22 | ||
| 21 | /* GPIOs */ | 23 | /* GPIOs */ |
diff --git a/arch/arm/mach-pxa/include/mach/pcm027.h b/arch/arm/mach-pxa/include/mach/pcm027.h index 6bf28de228bd..86ebd7b6c960 100644 --- a/arch/arm/mach-pxa/include/mach/pcm027.h +++ b/arch/arm/mach-pxa/include/mach/pcm027.h | |||
| @@ -23,6 +23,8 @@ | |||
| 23 | * Definitions of CPU card resources only | 23 | * Definitions of CPU card resources only |
| 24 | */ | 24 | */ |
| 25 | 25 | ||
| 26 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
| 27 | |||
| 26 | /* phyCORE-PXA270 (PCM027) Interrupts */ | 28 | /* phyCORE-PXA270 (PCM027) Interrupts */ |
| 27 | #define PCM027_IRQ(x) (IRQ_BOARD_START + (x)) | 29 | #define PCM027_IRQ(x) (IRQ_BOARD_START + (x)) |
| 28 | #define PCM027_BTDET_IRQ PCM027_IRQ(0) | 30 | #define PCM027_BTDET_IRQ PCM027_IRQ(0) |
diff --git a/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h b/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h index 0260aaa2fc17..7e544c14967e 100644 --- a/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h +++ b/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | */ | 20 | */ |
| 21 | 21 | ||
| 22 | #include <mach/pcm027.h> | 22 | #include <mach/pcm027.h> |
| 23 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
| 23 | 24 | ||
| 24 | /* | 25 | /* |
| 25 | * definitions relevant only when the PCM-990 | 26 | * definitions relevant only when the PCM-990 |
diff --git a/arch/arm/mach-pxa/include/mach/poodle.h b/arch/arm/mach-pxa/include/mach/poodle.h index f32ff75dcca8..b56b19351a03 100644 --- a/arch/arm/mach-pxa/include/mach/poodle.h +++ b/arch/arm/mach-pxa/include/mach/poodle.h | |||
| @@ -15,6 +15,8 @@ | |||
| 15 | #ifndef __ASM_ARCH_POODLE_H | 15 | #ifndef __ASM_ARCH_POODLE_H |
| 16 | #define __ASM_ARCH_POODLE_H 1 | 16 | #define __ASM_ARCH_POODLE_H 1 |
| 17 | 17 | ||
| 18 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
| 19 | |||
| 18 | /* | 20 | /* |
| 19 | * GPIOs | 21 | * GPIOs |
| 20 | */ | 22 | */ |
diff --git a/arch/arm/mach-pxa/include/mach/spitz.h b/arch/arm/mach-pxa/include/mach/spitz.h index 0bfe6507c95d..25c9f62e46aa 100644 --- a/arch/arm/mach-pxa/include/mach/spitz.h +++ b/arch/arm/mach-pxa/include/mach/spitz.h | |||
| @@ -15,8 +15,8 @@ | |||
| 15 | #define __ASM_ARCH_SPITZ_H 1 | 15 | #define __ASM_ARCH_SPITZ_H 1 |
| 16 | #endif | 16 | #endif |
| 17 | 17 | ||
| 18 | #include "irqs.h" /* PXA_NR_BUILTIN_GPIO, PXA_GPIO_TO_IRQ */ | ||
| 18 | #include <linux/fb.h> | 19 | #include <linux/fb.h> |
| 19 | #include <linux/gpio.h> | ||
| 20 | 20 | ||
| 21 | /* Spitz/Akita GPIOs */ | 21 | /* Spitz/Akita GPIOs */ |
| 22 | 22 | ||
diff --git a/arch/arm/mach-pxa/include/mach/tosa.h b/arch/arm/mach-pxa/include/mach/tosa.h index 2bb0e862598c..0497d95cef25 100644 --- a/arch/arm/mach-pxa/include/mach/tosa.h +++ b/arch/arm/mach-pxa/include/mach/tosa.h | |||
| @@ -13,6 +13,8 @@ | |||
| 13 | #ifndef _ASM_ARCH_TOSA_H_ | 13 | #ifndef _ASM_ARCH_TOSA_H_ |
| 14 | #define _ASM_ARCH_TOSA_H_ 1 | 14 | #define _ASM_ARCH_TOSA_H_ 1 |
| 15 | 15 | ||
| 16 | #include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ | ||
| 17 | |||
| 16 | /* TOSA Chip selects */ | 18 | /* TOSA Chip selects */ |
| 17 | #define TOSA_LCDC_PHYS PXA_CS4_PHYS | 19 | #define TOSA_LCDC_PHYS PXA_CS4_PHYS |
| 18 | /* Internel Scoop */ | 20 | /* Internel Scoop */ |
diff --git a/arch/arm/mach-pxa/include/mach/trizeps4.h b/arch/arm/mach-pxa/include/mach/trizeps4.h index d2ca01053f69..ae3ca013afab 100644 --- a/arch/arm/mach-pxa/include/mach/trizeps4.h +++ b/arch/arm/mach-pxa/include/mach/trizeps4.h | |||
| @@ -10,6 +10,8 @@ | |||
| 10 | #ifndef _TRIPEPS4_H_ | 10 | #ifndef _TRIPEPS4_H_ |
| 11 | #define _TRIPEPS4_H_ | 11 | #define _TRIPEPS4_H_ |
| 12 | 12 | ||
| 13 | #include "irqs.h" /* PXA_GPIO_TO_IRQ */ | ||
| 14 | |||
| 13 | /* physical memory regions */ | 15 | /* physical memory regions */ |
| 14 | #define TRIZEPS4_FLASH_PHYS (PXA_CS0_PHYS) /* Flash region */ | 16 | #define TRIZEPS4_FLASH_PHYS (PXA_CS0_PHYS) /* Flash region */ |
| 15 | #define TRIZEPS4_DISK_PHYS (PXA_CS1_PHYS) /* Disk On Chip region */ | 17 | #define TRIZEPS4_DISK_PHYS (PXA_CS1_PHYS) /* Disk On Chip region */ |
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c index f70583fee59f..29997bde277d 100644 --- a/arch/arm/mach-pxa/mioa701.c +++ b/arch/arm/mach-pxa/mioa701.c | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | #include <linux/mtd/physmap.h> | 38 | #include <linux/mtd/physmap.h> |
| 39 | #include <linux/usb/gpio_vbus.h> | 39 | #include <linux/usb/gpio_vbus.h> |
| 40 | #include <linux/reboot.h> | 40 | #include <linux/reboot.h> |
| 41 | #include <linux/regulator/fixed.h> | ||
| 41 | #include <linux/regulator/max1586.h> | 42 | #include <linux/regulator/max1586.h> |
| 42 | #include <linux/slab.h> | 43 | #include <linux/slab.h> |
| 43 | #include <linux/i2c/pxa-i2c.h> | 44 | #include <linux/i2c/pxa-i2c.h> |
| @@ -714,6 +715,10 @@ static struct gpio global_gpios[] = { | |||
| 714 | { GPIO56_MT9M111_nOE, GPIOF_OUT_INIT_LOW, "Camera nOE" }, | 715 | { GPIO56_MT9M111_nOE, GPIOF_OUT_INIT_LOW, "Camera nOE" }, |
| 715 | }; | 716 | }; |
| 716 | 717 | ||
| 718 | static struct regulator_consumer_supply fixed_5v0_consumers[] = { | ||
| 719 | REGULATOR_SUPPLY("power", "pwm-backlight"), | ||
| 720 | }; | ||
| 721 | |||
| 717 | static void __init mioa701_machine_init(void) | 722 | static void __init mioa701_machine_init(void) |
| 718 | { | 723 | { |
| 719 | int rc; | 724 | int rc; |
| @@ -753,6 +758,10 @@ static void __init mioa701_machine_init(void) | |||
| 753 | pxa_set_i2c_info(&i2c_pdata); | 758 | pxa_set_i2c_info(&i2c_pdata); |
| 754 | pxa27x_set_i2c_power_info(NULL); | 759 | pxa27x_set_i2c_power_info(NULL); |
| 755 | pxa_set_camera_info(&mioa701_pxacamera_platform_data); | 760 | pxa_set_camera_info(&mioa701_pxacamera_platform_data); |
| 761 | |||
| 762 | regulator_register_always_on(0, "fixed-5.0V", fixed_5v0_consumers, | ||
| 763 | ARRAY_SIZE(fixed_5v0_consumers), | ||
| 764 | 5000000); | ||
| 756 | } | 765 | } |
| 757 | 766 | ||
| 758 | static void mioa701_machine_exit(void) | 767 | static void mioa701_machine_exit(void) |
diff --git a/arch/arm/mach-sa1100/include/mach/collie.h b/arch/arm/mach-sa1100/include/mach/collie.h index f33679d2d3ee..50e1d850ee2e 100644 --- a/arch/arm/mach-sa1100/include/mach/collie.h +++ b/arch/arm/mach-sa1100/include/mach/collie.h | |||
| @@ -13,6 +13,8 @@ | |||
| 13 | #ifndef __ASM_ARCH_COLLIE_H | 13 | #ifndef __ASM_ARCH_COLLIE_H |
| 14 | #define __ASM_ARCH_COLLIE_H | 14 | #define __ASM_ARCH_COLLIE_H |
| 15 | 15 | ||
| 16 | #include "hardware.h" /* Gives GPIO_MAX */ | ||
| 17 | |||
| 16 | extern void locomolcd_power(int on); | 18 | extern void locomolcd_power(int on); |
| 17 | 19 | ||
| 18 | #define COLLIE_SCOOP_GPIO_BASE (GPIO_MAX + 1) | 20 | #define COLLIE_SCOOP_GPIO_BASE (GPIO_MAX + 1) |
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 338640631e08..05fa505df585 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
| @@ -8,7 +8,7 @@ config ARCH_SHMOBILE_MULTI | |||
| 8 | select CPU_V7 | 8 | select CPU_V7 |
| 9 | select GENERIC_CLOCKEVENTS | 9 | select GENERIC_CLOCKEVENTS |
| 10 | select HAVE_ARM_SCU if SMP | 10 | select HAVE_ARM_SCU if SMP |
| 11 | select HAVE_ARM_TWD if LOCAL_TIMERS | 11 | select HAVE_ARM_TWD if SMP |
| 12 | select HAVE_SMP | 12 | select HAVE_SMP |
| 13 | select ARM_GIC | 13 | select ARM_GIC |
| 14 | select MIGHT_HAVE_CACHE_L2X0 | 14 | select MIGHT_HAVE_CACHE_L2X0 |
diff --git a/arch/arm/mach-tegra/pm.c b/arch/arm/mach-tegra/pm.c index 4ae0286b468d..f55b05a29b55 100644 --- a/arch/arm/mach-tegra/pm.c +++ b/arch/arm/mach-tegra/pm.c | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | #include <linux/cpu_pm.h> | 24 | #include <linux/cpu_pm.h> |
| 25 | #include <linux/suspend.h> | 25 | #include <linux/suspend.h> |
| 26 | #include <linux/err.h> | 26 | #include <linux/err.h> |
| 27 | #include <linux/slab.h> | ||
| 27 | #include <linux/clk/tegra.h> | 28 | #include <linux/clk/tegra.h> |
| 28 | 29 | ||
| 29 | #include <asm/smp_plat.h> | 30 | #include <asm/smp_plat.h> |
diff --git a/arch/arm/mach-tegra/tegra.c b/arch/arm/mach-tegra/tegra.c index 303a285d80fd..6191603379e1 100644 --- a/arch/arm/mach-tegra/tegra.c +++ b/arch/arm/mach-tegra/tegra.c | |||
| @@ -73,10 +73,20 @@ u32 tegra_uart_config[3] = { | |||
| 73 | static void __init tegra_init_cache(void) | 73 | static void __init tegra_init_cache(void) |
| 74 | { | 74 | { |
| 75 | #ifdef CONFIG_CACHE_L2X0 | 75 | #ifdef CONFIG_CACHE_L2X0 |
| 76 | static const struct of_device_id pl310_ids[] __initconst = { | ||
| 77 | { .compatible = "arm,pl310-cache", }, | ||
| 78 | {} | ||
| 79 | }; | ||
| 80 | |||
| 81 | struct device_node *np; | ||
| 76 | int ret; | 82 | int ret; |
| 77 | void __iomem *p = IO_ADDRESS(TEGRA_ARM_PERIF_BASE) + 0x3000; | 83 | void __iomem *p = IO_ADDRESS(TEGRA_ARM_PERIF_BASE) + 0x3000; |
| 78 | u32 aux_ctrl, cache_type; | 84 | u32 aux_ctrl, cache_type; |
| 79 | 85 | ||
| 86 | np = of_find_matching_node(NULL, pl310_ids); | ||
| 87 | if (!np) | ||
| 88 | return; | ||
| 89 | |||
| 80 | cache_type = readl(p + L2X0_CACHE_TYPE); | 90 | cache_type = readl(p + L2X0_CACHE_TYPE); |
| 81 | aux_ctrl = (cache_type & 0x700) << (17-8); | 91 | aux_ctrl = (cache_type & 0x700) << (17-8); |
| 82 | aux_ctrl |= 0x7C400001; | 92 | aux_ctrl |= 0x7C400001; |
diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c index 1db2a5ca9ab8..8c09a8393fb6 100644 --- a/arch/arm/mach-zynq/common.c +++ b/arch/arm/mach-zynq/common.c | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | #include <linux/of_irq.h> | 25 | #include <linux/of_irq.h> |
| 26 | #include <linux/of_platform.h> | 26 | #include <linux/of_platform.h> |
| 27 | #include <linux/of.h> | 27 | #include <linux/of.h> |
| 28 | #include <linux/memblock.h> | ||
| 28 | #include <linux/irqchip.h> | 29 | #include <linux/irqchip.h> |
| 29 | #include <linux/irqchip/arm-gic.h> | 30 | #include <linux/irqchip/arm-gic.h> |
| 30 | 31 | ||
| @@ -41,6 +42,18 @@ | |||
| 41 | 42 | ||
| 42 | void __iomem *zynq_scu_base; | 43 | void __iomem *zynq_scu_base; |
| 43 | 44 | ||
| 45 | /** | ||
| 46 | * zynq_memory_init - Initialize special memory | ||
| 47 | * | ||
| 48 | * We need to stop things allocating the low memory as DMA can't work in | ||
| 49 | * the 1st 512K of memory. | ||
| 50 | */ | ||
| 51 | static void __init zynq_memory_init(void) | ||
| 52 | { | ||
| 53 | if (!__pa(PAGE_OFFSET)) | ||
| 54 | memblock_reserve(__pa(PAGE_OFFSET), __pa(swapper_pg_dir)); | ||
| 55 | } | ||
| 56 | |||
| 44 | static struct platform_device zynq_cpuidle_device = { | 57 | static struct platform_device zynq_cpuidle_device = { |
| 45 | .name = "cpuidle-zynq", | 58 | .name = "cpuidle-zynq", |
| 46 | }; | 59 | }; |
| @@ -117,5 +130,6 @@ DT_MACHINE_START(XILINX_EP107, "Xilinx Zynq Platform") | |||
| 117 | .init_machine = zynq_init_machine, | 130 | .init_machine = zynq_init_machine, |
| 118 | .init_time = zynq_timer_init, | 131 | .init_time = zynq_timer_init, |
| 119 | .dt_compat = zynq_dt_match, | 132 | .dt_compat = zynq_dt_match, |
| 133 | .reserve = zynq_memory_init, | ||
| 120 | .restart = zynq_system_reset, | 134 | .restart = zynq_system_reset, |
| 121 | MACHINE_END | 135 | MACHINE_END |
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 1a77450e728a..11b3914660d2 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
| @@ -1358,7 +1358,7 @@ static void *arm_iommu_alloc_attrs(struct device *dev, size_t size, | |||
| 1358 | *handle = DMA_ERROR_CODE; | 1358 | *handle = DMA_ERROR_CODE; |
| 1359 | size = PAGE_ALIGN(size); | 1359 | size = PAGE_ALIGN(size); |
| 1360 | 1360 | ||
| 1361 | if (gfp & GFP_ATOMIC) | 1361 | if (!(gfp & __GFP_WAIT)) |
| 1362 | return __iommu_alloc_atomic(dev, size, handle); | 1362 | return __iommu_alloc_atomic(dev, size, handle); |
| 1363 | 1363 | ||
| 1364 | /* | 1364 | /* |
diff --git a/arch/arm/mm/dump.c b/arch/arm/mm/dump.c index 2b3a56414271..ef69152f9b52 100644 --- a/arch/arm/mm/dump.c +++ b/arch/arm/mm/dump.c | |||
| @@ -264,6 +264,9 @@ static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start) | |||
| 264 | note_page(st, addr, 3, pmd_val(*pmd)); | 264 | note_page(st, addr, 3, pmd_val(*pmd)); |
| 265 | else | 265 | else |
| 266 | walk_pte(st, pmd, addr); | 266 | walk_pte(st, pmd, addr); |
| 267 | |||
| 268 | if (SECTION_SIZE < PMD_SIZE && pmd_large(pmd[1])) | ||
| 269 | note_page(st, addr + SECTION_SIZE, 3, pmd_val(pmd[1])); | ||
| 267 | } | 270 | } |
| 268 | } | 271 | } |
| 269 | 272 | ||
diff --git a/arch/arm/mm/mm.h b/arch/arm/mm/mm.h index d5a982d15a88..7ea641b7aa7d 100644 --- a/arch/arm/mm/mm.h +++ b/arch/arm/mm/mm.h | |||
| @@ -38,6 +38,7 @@ static inline pmd_t *pmd_off_k(unsigned long virt) | |||
| 38 | 38 | ||
| 39 | struct mem_type { | 39 | struct mem_type { |
| 40 | pteval_t prot_pte; | 40 | pteval_t prot_pte; |
| 41 | pteval_t prot_pte_s2; | ||
| 41 | pmdval_t prot_l1; | 42 | pmdval_t prot_l1; |
| 42 | pmdval_t prot_sect; | 43 | pmdval_t prot_sect; |
| 43 | unsigned int domain; | 44 | unsigned int domain; |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 4f08c133cc25..a623cb3ad012 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
| @@ -232,12 +232,16 @@ __setup("noalign", noalign_setup); | |||
| 232 | #endif /* ifdef CONFIG_CPU_CP15 / else */ | 232 | #endif /* ifdef CONFIG_CPU_CP15 / else */ |
| 233 | 233 | ||
| 234 | #define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY|L_PTE_XN | 234 | #define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY|L_PTE_XN |
| 235 | #define PROT_PTE_S2_DEVICE PROT_PTE_DEVICE | ||
| 235 | #define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE | 236 | #define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE |
| 236 | 237 | ||
| 237 | static struct mem_type mem_types[] = { | 238 | static struct mem_type mem_types[] = { |
| 238 | [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */ | 239 | [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */ |
| 239 | .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED | | 240 | .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED | |
| 240 | L_PTE_SHARED, | 241 | L_PTE_SHARED, |
| 242 | .prot_pte_s2 = s2_policy(PROT_PTE_S2_DEVICE) | | ||
| 243 | s2_policy(L_PTE_S2_MT_DEV_SHARED) | | ||
| 244 | L_PTE_SHARED, | ||
| 241 | .prot_l1 = PMD_TYPE_TABLE, | 245 | .prot_l1 = PMD_TYPE_TABLE, |
| 242 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_S, | 246 | .prot_sect = PROT_SECT_DEVICE | PMD_SECT_S, |
| 243 | .domain = DOMAIN_IO, | 247 | .domain = DOMAIN_IO, |
| @@ -508,7 +512,8 @@ static void __init build_mem_type_table(void) | |||
| 508 | cp = &cache_policies[cachepolicy]; | 512 | cp = &cache_policies[cachepolicy]; |
| 509 | vecs_pgprot = kern_pgprot = user_pgprot = cp->pte; | 513 | vecs_pgprot = kern_pgprot = user_pgprot = cp->pte; |
| 510 | s2_pgprot = cp->pte_s2; | 514 | s2_pgprot = cp->pte_s2; |
| 511 | hyp_device_pgprot = s2_device_pgprot = mem_types[MT_DEVICE].prot_pte; | 515 | hyp_device_pgprot = mem_types[MT_DEVICE].prot_pte; |
| 516 | s2_device_pgprot = mem_types[MT_DEVICE].prot_pte_s2; | ||
| 512 | 517 | ||
| 513 | /* | 518 | /* |
| 514 | * ARMv6 and above have extended page tables. | 519 | * ARMv6 and above have extended page tables. |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index 45dc29f85d56..32b3558321c4 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
| @@ -208,7 +208,6 @@ __v6_setup: | |||
| 208 | mcr p15, 0, r0, c7, c14, 0 @ clean+invalidate D cache | 208 | mcr p15, 0, r0, c7, c14, 0 @ clean+invalidate D cache |
| 209 | mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache | 209 | mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache |
| 210 | mcr p15, 0, r0, c7, c15, 0 @ clean+invalidate cache | 210 | mcr p15, 0, r0, c7, c15, 0 @ clean+invalidate cache |
| 211 | mcr p15, 0, r0, c7, c10, 4 @ drain write buffer | ||
| 212 | #ifdef CONFIG_MMU | 211 | #ifdef CONFIG_MMU |
| 213 | mcr p15, 0, r0, c8, c7, 0 @ invalidate I + D TLBs | 212 | mcr p15, 0, r0, c8, c7, 0 @ invalidate I + D TLBs |
| 214 | mcr p15, 0, r0, c2, c0, 2 @ TTB control register | 213 | mcr p15, 0, r0, c2, c0, 2 @ TTB control register |
| @@ -218,6 +217,8 @@ __v6_setup: | |||
| 218 | ALT_UP(orr r8, r8, #TTB_FLAGS_UP) | 217 | ALT_UP(orr r8, r8, #TTB_FLAGS_UP) |
| 219 | mcr p15, 0, r8, c2, c0, 1 @ load TTB1 | 218 | mcr p15, 0, r8, c2, c0, 1 @ load TTB1 |
| 220 | #endif /* CONFIG_MMU */ | 219 | #endif /* CONFIG_MMU */ |
| 220 | mcr p15, 0, r0, c7, c10, 4 @ drain write buffer and | ||
| 221 | @ complete invalidations | ||
| 221 | adr r5, v6_crval | 222 | adr r5, v6_crval |
| 222 | ldmia r5, {r5, r6} | 223 | ldmia r5, {r5, r6} |
| 223 | ARM_BE8(orr r6, r6, #1 << 25) @ big-endian page tables | 224 | ARM_BE8(orr r6, r6, #1 << 25) @ big-endian page tables |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index bd1781979a39..74f6033e76dd 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
| @@ -351,7 +351,6 @@ __v7_setup: | |||
| 351 | 351 | ||
| 352 | 4: mov r10, #0 | 352 | 4: mov r10, #0 |
| 353 | mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate | 353 | mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate |
| 354 | dsb | ||
| 355 | #ifdef CONFIG_MMU | 354 | #ifdef CONFIG_MMU |
| 356 | mcr p15, 0, r10, c8, c7, 0 @ invalidate I + D TLBs | 355 | mcr p15, 0, r10, c8, c7, 0 @ invalidate I + D TLBs |
| 357 | v7_ttb_setup r10, r4, r8, r5 @ TTBCR, TTBRx setup | 356 | v7_ttb_setup r10, r4, r8, r5 @ TTBCR, TTBRx setup |
| @@ -360,6 +359,7 @@ __v7_setup: | |||
| 360 | mcr p15, 0, r5, c10, c2, 0 @ write PRRR | 359 | mcr p15, 0, r5, c10, c2, 0 @ write PRRR |
| 361 | mcr p15, 0, r6, c10, c2, 1 @ write NMRR | 360 | mcr p15, 0, r6, c10, c2, 1 @ write NMRR |
| 362 | #endif | 361 | #endif |
| 362 | dsb @ Complete invalidations | ||
| 363 | #ifndef CONFIG_ARM_THUMBEE | 363 | #ifndef CONFIG_ARM_THUMBEE |
| 364 | mrc p15, 0, r0, c0, c1, 0 @ read ID_PFR0 for ThumbEE | 364 | mrc p15, 0, r0, c0, c1, 0 @ read ID_PFR0 for ThumbEE |
| 365 | and r0, r0, #(0xf << 12) @ ThumbEE enabled field | 365 | and r0, r0, #(0xf << 12) @ ThumbEE enabled field |
