Skip to content
Snippets Groups Projects
Commit e6e7fb1f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC fixes from Olof Johansson:
 "We have a fairly large batch of fixes this time around, mostly just
  due to various platforms all having a fix or two more than usual.

  Worth pointing out are:

   - A fix for EDMA on Davinci/OMAP where channel allocation broke with
     the DT conversion.  Due to some miscommunication we didn't
     understand the impact of the breakage, so we were pushing back on
     it for 3.12, but it sounds like it's actually breaking quite a few
     people out there.

   - A bunch of fixes for Marvell platforms, some straggling fixes for
     merge window fallout and some fixes for a couple of the platforms
     (Netgear RN102 in particular).

   - A fix for a race between multi-cluster power management and cpu
     hotplug on Versatile Express.

  And a bunch of other smaller fixes that all add up.

  We'll be switching over into stricter regressions-only mode from here
  on out"

* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (31 commits)
  ARM: multi_v7_defconfig: add SDHCI for i.MX
  bus: mvebu-mbus: Fix optional pcie-mem/io-aperture properties
  ARM: mvebu: add missing DT Mbus ranges and relocate PCIe DT nodes for RN102
  ARM: at91: sam9g45: shutdown ddr1 too when rebooting
  MAINTAINERS: ARM: SIRF: use kernel.org mail box
  MAINTAINERS: ARM: SIRF: add missed drivers into maintain list
  ARM: edma: Fix clearing of unused list for DT DMA resources
  ARM: vexpress: tc2: fix hotplug/idle/kexec race on cluster power down
  ARM: dts: sirf: fix interrupt and dma prop of VIP for prima2 and atlas6
  ARM: dts: sirf: fix the ranges of peri-iobrg of prima2
  ARM: dts: makefile: build atlas6-evb.dtb for ARCH_ATLAS6
  ARM: dts: sirf: fix fifosize, clks, dma channels for UART
  ARM: mvebu: Add DT entry for ReadyNAS 102 to use gpio-poweroff driver
  ARM: mvebu: fix ReadyNAS 102 Power button GPIO to make it active high
  ARM: mach-integrator: Add stub for pci_v3_early_init() for !CONFIG_PCI
  ARM: shmobile: Remove #gpio-ranges-cells DT property
  gpio: rcar: Remove #gpio-range-cells DT property usage
  ARM: shmobile: armadillo: fixup ether pinctrl naming
  ARM: shmobile: Lager: add Micrel KSZ8041 PHY fixup
  ARM: shmobile: update SDHI DT compatibility string to the <unit>-<soc> format
  ...
parents 164a2c58 6a98b2ff
No related merge requests found
Showing
with 156 additions and 55 deletions
...@@ -9,12 +9,15 @@ compulsory and any optional properties, common to all SD/MMC drivers, as ...@@ -9,12 +9,15 @@ compulsory and any optional properties, common to all SD/MMC drivers, as
described in mmc.txt, can be used. Additionally the following tmio_mmc-specific described in mmc.txt, can be used. Additionally the following tmio_mmc-specific
optional bindings can be used. optional bindings can be used.
Required properties:
- compatible: "renesas,sdhi-shmobile" - a generic sh-mobile SDHI unit
"renesas,sdhi-sh7372" - SDHI IP on SH7372 SoC
"renesas,sdhi-sh73a0" - SDHI IP on SH73A0 SoC
"renesas,sdhi-r8a73a4" - SDHI IP on R8A73A4 SoC
"renesas,sdhi-r8a7740" - SDHI IP on R8A7740 SoC
"renesas,sdhi-r8a7778" - SDHI IP on R8A7778 SoC
"renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC
"renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC
Optional properties: Optional properties:
- toshiba,mmc-wrprotect-disable: write-protect detection is unavailable - toshiba,mmc-wrprotect-disable: write-protect detection is unavailable
When used with Renesas SDHI hardware, the following compatibility strings
configure various model-specific properties:
"renesas,sh7372-sdhi": (default) compatible with SH7372
"renesas,r8a7740-sdhi": compatible with R8A7740: certain MMC/SD commands have to
wait for the interface to become idle.
...@@ -824,15 +824,21 @@ S: Maintained ...@@ -824,15 +824,21 @@ S: Maintained
F: arch/arm/mach-gemini/ F: arch/arm/mach-gemini/
ARM/CSR SIRFPRIMA2 MACHINE SUPPORT ARM/CSR SIRFPRIMA2 MACHINE SUPPORT
M: Barry Song <baohua.song@csr.com> M: Barry Song <baohua@kernel.org>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
T: git git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux.git
S: Maintained S: Maintained
F: arch/arm/mach-prima2/ F: arch/arm/mach-prima2/
F: drivers/clk/clk-prima2.c
F: drivers/clocksource/timer-prima2.c
F: drivers/clocksource/timer-marco.c
F: drivers/dma/sirf-dma.c F: drivers/dma/sirf-dma.c
F: drivers/i2c/busses/i2c-sirf.c F: drivers/i2c/busses/i2c-sirf.c
F: drivers/input/misc/sirfsoc-onkey.c
F: drivers/irqchip/irq-sirfsoc.c
F: drivers/mmc/host/sdhci-sirf.c F: drivers/mmc/host/sdhci-sirf.c
F: drivers/pinctrl/sirf/ F: drivers/pinctrl/sirf/
F: drivers/rtc/rtc-sirfsoc.c
F: drivers/spi/spi-sirf.c F: drivers/spi/spi-sirf.c
ARM/EBSA110 MACHINE SUPPORT ARM/EBSA110 MACHINE SUPPORT
......
...@@ -41,6 +41,8 @@ dtb-$(CONFIG_ARCH_AT91) += sama5d33ek.dtb ...@@ -41,6 +41,8 @@ dtb-$(CONFIG_ARCH_AT91) += sama5d33ek.dtb
dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dtb dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dtb
dtb-$(CONFIG_ARCH_AT91) += sama5d35ek.dtb dtb-$(CONFIG_ARCH_AT91) += sama5d35ek.dtb
dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb
dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
dtb-$(CONFIG_ARCH_BCM) += bcm11351-brt.dtb \ dtb-$(CONFIG_ARCH_BCM) += bcm11351-brt.dtb \
bcm28155-ap.dtb bcm28155-ap.dtb
......
...@@ -27,6 +27,25 @@ memory { ...@@ -27,6 +27,25 @@ memory {
}; };
soc { soc {
ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>;
pcie-controller {
status = "okay";
/* Connected to Marvell SATA controller */
pcie@1,0 {
/* Port 0, Lane 0 */
status = "okay";
};
/* Connected to FL1009 USB 3.0 controller */
pcie@2,0 {
/* Port 1, Lane 0 */
status = "okay";
};
};
internal-regs { internal-regs {
serial@12000 { serial@12000 {
clock-frequency = <200000000>; clock-frequency = <200000000>;
...@@ -57,6 +76,11 @@ backup_led_pin: backup-led-pin { ...@@ -57,6 +76,11 @@ backup_led_pin: backup-led-pin {
marvell,pins = "mpp56"; marvell,pins = "mpp56";
marvell,function = "gpio"; marvell,function = "gpio";
}; };
poweroff: poweroff {
marvell,pins = "mpp8";
marvell,function = "gpio";
};
}; };
mdio { mdio {
...@@ -89,22 +113,6 @@ g762: g762@3e { ...@@ -89,22 +113,6 @@ g762: g762@3e {
pwm_polarity = <0>; pwm_polarity = <0>;
}; };
}; };
pcie-controller {
status = "okay";
/* Connected to Marvell SATA controller */
pcie@1,0 {
/* Port 0, Lane 0 */
status = "okay";
};
/* Connected to FL1009 USB 3.0 controller */
pcie@2,0 {
/* Port 1, Lane 0 */
status = "okay";
};
};
}; };
}; };
...@@ -160,7 +168,7 @@ gpio_keys { ...@@ -160,7 +168,7 @@ gpio_keys {
button@1 { button@1 {
label = "Power Button"; label = "Power Button";
linux,code = <116>; /* KEY_POWER */ linux,code = <116>; /* KEY_POWER */
gpios = <&gpio1 30 1>; gpios = <&gpio1 30 0>;
}; };
button@2 { button@2 {
...@@ -176,4 +184,11 @@ button@3 { ...@@ -176,4 +184,11 @@ button@3 {
}; };
}; };
gpio_poweroff {
compatible = "gpio-poweroff";
pinctrl-0 = <&poweroff>;
pinctrl-names = "default";
gpios = <&gpio0 8 1>;
};
}; };
...@@ -70,6 +70,8 @@ serial@12300 { ...@@ -70,6 +70,8 @@ serial@12300 {
timer@20300 { timer@20300 {
compatible = "marvell,armada-xp-timer"; compatible = "marvell,armada-xp-timer";
clocks = <&coreclk 2>, <&refclk>;
clock-names = "nbclk", "fixed";
}; };
coreclk: mvebu-sar@18230 { coreclk: mvebu-sar@18230 {
...@@ -169,4 +171,13 @@ thermal@182b0 { ...@@ -169,4 +171,13 @@ thermal@182b0 {
}; };
}; };
}; };
clocks {
/* 25 MHz reference crystal */
refclk: oscillator {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <25000000>;
};
};
}; };
...@@ -190,12 +190,12 @@ pinctrl_usart2: usart2-0 { ...@@ -190,12 +190,12 @@ pinctrl_usart2: usart2-0 {
AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA8 periph A */ AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA8 periph A */
}; };
pinctrl_uart2_rts: uart2_rts-0 { pinctrl_usart2_rts: usart2_rts-0 {
atmel,pins = atmel,pins =
<AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB0 periph B */ <AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB0 periph B */
}; };
pinctrl_uart2_cts: uart2_cts-0 { pinctrl_usart2_cts: usart2_cts-0 {
atmel,pins = atmel,pins =
<AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB1 periph B */ <AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB1 periph B */
}; };
...@@ -556,6 +556,7 @@ mmc0: mmc@f0008000 { ...@@ -556,6 +556,7 @@ mmc0: mmc@f0008000 {
interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>; interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(0)>; dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(0)>;
dma-names = "rxtx"; dma-names = "rxtx";
pinctrl-names = "default";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
status = "disabled"; status = "disabled";
...@@ -567,6 +568,7 @@ mmc1: mmc@f000c000 { ...@@ -567,6 +568,7 @@ mmc1: mmc@f000c000 {
interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>; interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(0)>; dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(0)>;
dma-names = "rxtx"; dma-names = "rxtx";
pinctrl-names = "default";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
status = "disabled"; status = "disabled";
......
...@@ -181,6 +181,8 @@ uart0: uart@b0050000 { ...@@ -181,6 +181,8 @@ uart0: uart@b0050000 {
interrupts = <17>; interrupts = <17>;
fifosize = <128>; fifosize = <128>;
clocks = <&clks 13>; clocks = <&clks 13>;
sirf,uart-dma-rx-channel = <21>;
sirf,uart-dma-tx-channel = <2>;
}; };
uart1: uart@b0060000 { uart1: uart@b0060000 {
...@@ -199,6 +201,8 @@ uart2: uart@b0070000 { ...@@ -199,6 +201,8 @@ uart2: uart@b0070000 {
interrupts = <19>; interrupts = <19>;
fifosize = <128>; fifosize = <128>;
clocks = <&clks 15>; clocks = <&clks 15>;
sirf,uart-dma-rx-channel = <6>;
sirf,uart-dma-tx-channel = <7>;
}; };
usp0: usp@b0080000 { usp0: usp@b0080000 {
...@@ -206,7 +210,10 @@ usp0: usp@b0080000 { ...@@ -206,7 +210,10 @@ usp0: usp@b0080000 {
compatible = "sirf,prima2-usp"; compatible = "sirf,prima2-usp";
reg = <0xb0080000 0x10000>; reg = <0xb0080000 0x10000>;
interrupts = <20>; interrupts = <20>;
fifosize = <128>;
clocks = <&clks 28>; clocks = <&clks 28>;
sirf,usp-dma-rx-channel = <17>;
sirf,usp-dma-tx-channel = <18>;
}; };
usp1: usp@b0090000 { usp1: usp@b0090000 {
...@@ -214,7 +221,10 @@ usp1: usp@b0090000 { ...@@ -214,7 +221,10 @@ usp1: usp@b0090000 {
compatible = "sirf,prima2-usp"; compatible = "sirf,prima2-usp";
reg = <0xb0090000 0x10000>; reg = <0xb0090000 0x10000>;
interrupts = <21>; interrupts = <21>;
fifosize = <128>;
clocks = <&clks 29>; clocks = <&clks 29>;
sirf,usp-dma-rx-channel = <14>;
sirf,usp-dma-tx-channel = <15>;
}; };
dmac0: dma-controller@b00b0000 { dmac0: dma-controller@b00b0000 {
...@@ -237,6 +247,8 @@ vip@b00C0000 { ...@@ -237,6 +247,8 @@ vip@b00C0000 {
compatible = "sirf,prima2-vip"; compatible = "sirf,prima2-vip";
reg = <0xb00C0000 0x10000>; reg = <0xb00C0000 0x10000>;
clocks = <&clks 31>; clocks = <&clks 31>;
interrupts = <14>;
sirf,vip-dma-rx-channel = <16>;
}; };
spi0: spi@b00d0000 { spi0: spi@b00d0000 {
......
...@@ -13,6 +13,7 @@ cpus { ...@@ -13,6 +13,7 @@ cpus {
cpu@0 { cpu@0 {
device_type = "cpu"; device_type = "cpu";
compatible = "marvell,feroceon"; compatible = "marvell,feroceon";
reg = <0>;
clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>; clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>;
clock-names = "cpu_clk", "ddrclk", "powersave"; clock-names = "cpu_clk", "ddrclk", "powersave";
}; };
...@@ -167,7 +168,7 @@ xor01 { ...@@ -167,7 +168,7 @@ xor01 {
xor@60900 { xor@60900 {
compatible = "marvell,orion-xor"; compatible = "marvell,orion-xor";
reg = <0x60900 0x100 reg = <0x60900 0x100
0xd0B00 0x100>; 0x60B00 0x100>;
status = "okay"; status = "okay";
clocks = <&gate_clk 16>; clocks = <&gate_clk 16>;
......
...@@ -171,7 +171,8 @@ peri-iobg { ...@@ -171,7 +171,8 @@ peri-iobg {
compatible = "simple-bus"; compatible = "simple-bus";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0xb0000000 0xb0000000 0x180000>; ranges = <0xb0000000 0xb0000000 0x180000>,
<0x56000000 0x56000000 0x1b00000>;
timer@b0020000 { timer@b0020000 {
compatible = "sirf,prima2-tick"; compatible = "sirf,prima2-tick";
...@@ -196,25 +197,32 @@ audio@b0040000 { ...@@ -196,25 +197,32 @@ audio@b0040000 {
uart0: uart@b0050000 { uart0: uart@b0050000 {
cell-index = <0>; cell-index = <0>;
compatible = "sirf,prima2-uart"; compatible = "sirf,prima2-uart";
reg = <0xb0050000 0x10000>; reg = <0xb0050000 0x1000>;
interrupts = <17>; interrupts = <17>;
fifosize = <128>;
clocks = <&clks 13>; clocks = <&clks 13>;
sirf,uart-dma-rx-channel = <21>;
sirf,uart-dma-tx-channel = <2>;
}; };
uart1: uart@b0060000 { uart1: uart@b0060000 {
cell-index = <1>; cell-index = <1>;
compatible = "sirf,prima2-uart"; compatible = "sirf,prima2-uart";
reg = <0xb0060000 0x10000>; reg = <0xb0060000 0x1000>;
interrupts = <18>; interrupts = <18>;
fifosize = <32>;
clocks = <&clks 14>; clocks = <&clks 14>;
}; };
uart2: uart@b0070000 { uart2: uart@b0070000 {
cell-index = <2>; cell-index = <2>;
compatible = "sirf,prima2-uart"; compatible = "sirf,prima2-uart";
reg = <0xb0070000 0x10000>; reg = <0xb0070000 0x1000>;
interrupts = <19>; interrupts = <19>;
fifosize = <128>;
clocks = <&clks 15>; clocks = <&clks 15>;
sirf,uart-dma-rx-channel = <6>;
sirf,uart-dma-tx-channel = <7>;
}; };
usp0: usp@b0080000 { usp0: usp@b0080000 {
...@@ -222,7 +230,10 @@ usp0: usp@b0080000 { ...@@ -222,7 +230,10 @@ usp0: usp@b0080000 {
compatible = "sirf,prima2-usp"; compatible = "sirf,prima2-usp";
reg = <0xb0080000 0x10000>; reg = <0xb0080000 0x10000>;
interrupts = <20>; interrupts = <20>;
fifosize = <128>;
clocks = <&clks 28>; clocks = <&clks 28>;
sirf,usp-dma-rx-channel = <17>;
sirf,usp-dma-tx-channel = <18>;
}; };
usp1: usp@b0090000 { usp1: usp@b0090000 {
...@@ -230,7 +241,10 @@ usp1: usp@b0090000 { ...@@ -230,7 +241,10 @@ usp1: usp@b0090000 {
compatible = "sirf,prima2-usp"; compatible = "sirf,prima2-usp";
reg = <0xb0090000 0x10000>; reg = <0xb0090000 0x10000>;
interrupts = <21>; interrupts = <21>;
fifosize = <128>;
clocks = <&clks 29>; clocks = <&clks 29>;
sirf,usp-dma-rx-channel = <14>;
sirf,usp-dma-tx-channel = <15>;
}; };
usp2: usp@b00a0000 { usp2: usp@b00a0000 {
...@@ -238,7 +252,10 @@ usp2: usp@b00a0000 { ...@@ -238,7 +252,10 @@ usp2: usp@b00a0000 {
compatible = "sirf,prima2-usp"; compatible = "sirf,prima2-usp";
reg = <0xb00a0000 0x10000>; reg = <0xb00a0000 0x10000>;
interrupts = <22>; interrupts = <22>;
fifosize = <128>;
clocks = <&clks 30>; clocks = <&clks 30>;
sirf,usp-dma-rx-channel = <10>;
sirf,usp-dma-tx-channel = <11>;
}; };
dmac0: dma-controller@b00b0000 { dmac0: dma-controller@b00b0000 {
...@@ -261,6 +278,8 @@ vip@b00C0000 { ...@@ -261,6 +278,8 @@ vip@b00C0000 {
compatible = "sirf,prima2-vip"; compatible = "sirf,prima2-vip";
reg = <0xb00C0000 0x10000>; reg = <0xb00C0000 0x10000>;
clocks = <&clks 31>; clocks = <&clks 31>;
interrupts = <14>;
sirf,vip-dma-rx-channel = <16>;
}; };
spi0: spi@b00d0000 { spi0: spi@b00d0000 {
......
...@@ -193,7 +193,7 @@ pfc: pfc@e6050000 { ...@@ -193,7 +193,7 @@ pfc: pfc@e6050000 {
}; };
sdhi0: sdhi@ee100000 { sdhi0: sdhi@ee100000 {
compatible = "renesas,r8a73a4-sdhi"; compatible = "renesas,sdhi-r8a73a4";
reg = <0 0xee100000 0 0x100>; reg = <0 0xee100000 0 0x100>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupts = <0 165 4>; interrupts = <0 165 4>;
...@@ -202,7 +202,7 @@ sdhi0: sdhi@ee100000 { ...@@ -202,7 +202,7 @@ sdhi0: sdhi@ee100000 {
}; };
sdhi1: sdhi@ee120000 { sdhi1: sdhi@ee120000 {
compatible = "renesas,r8a73a4-sdhi"; compatible = "renesas,sdhi-r8a73a4";
reg = <0 0xee120000 0 0x100>; reg = <0 0xee120000 0 0x100>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupts = <0 166 4>; interrupts = <0 166 4>;
...@@ -211,7 +211,7 @@ sdhi1: sdhi@ee120000 { ...@@ -211,7 +211,7 @@ sdhi1: sdhi@ee120000 {
}; };
sdhi2: sdhi@ee140000 { sdhi2: sdhi@ee140000 {
compatible = "renesas,r8a73a4-sdhi"; compatible = "renesas,sdhi-r8a73a4";
reg = <0 0xee140000 0 0x100>; reg = <0 0xee140000 0 0x100>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupts = <0 167 4>; interrupts = <0 167 4>;
......
...@@ -96,6 +96,5 @@ gpio4: gpio@ffc44000 { ...@@ -96,6 +96,5 @@ gpio4: gpio@ffc44000 {
pfc: pfc@fffc0000 { pfc: pfc@fffc0000 {
compatible = "renesas,pfc-r8a7778"; compatible = "renesas,pfc-r8a7778";
reg = <0xfffc000 0x118>; reg = <0xfffc000 0x118>;
#gpio-range-cells = <3>;
}; };
}; };
...@@ -188,7 +188,6 @@ i2c3: i2c@ffc73000 { ...@@ -188,7 +188,6 @@ i2c3: i2c@ffc73000 {
pfc: pfc@fffc0000 { pfc: pfc@fffc0000 {
compatible = "renesas,pfc-r8a7779"; compatible = "renesas,pfc-r8a7779";
reg = <0xfffc0000 0x23c>; reg = <0xfffc0000 0x23c>;
#gpio-range-cells = <3>;
}; };
thermal@ffc48000 { thermal@ffc48000 {
......
...@@ -148,11 +148,10 @@ mmcif1: mmcif@ee220000 { ...@@ -148,11 +148,10 @@ mmcif1: mmcif@ee220000 {
pfc: pfc@e6060000 { pfc: pfc@e6060000 {
compatible = "renesas,pfc-r8a7790"; compatible = "renesas,pfc-r8a7790";
reg = <0 0xe6060000 0 0x250>; reg = <0 0xe6060000 0 0x250>;
#gpio-range-cells = <3>;
}; };
sdhi0: sdhi@ee100000 { sdhi0: sdhi@ee100000 {
compatible = "renesas,r8a7790-sdhi"; compatible = "renesas,sdhi-r8a7790";
reg = <0 0xee100000 0 0x100>; reg = <0 0xee100000 0 0x100>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupts = <0 165 4>; interrupts = <0 165 4>;
...@@ -161,7 +160,7 @@ sdhi0: sdhi@ee100000 { ...@@ -161,7 +160,7 @@ sdhi0: sdhi@ee100000 {
}; };
sdhi1: sdhi@ee120000 { sdhi1: sdhi@ee120000 {
compatible = "renesas,r8a7790-sdhi"; compatible = "renesas,sdhi-r8a7790";
reg = <0 0xee120000 0 0x100>; reg = <0 0xee120000 0 0x100>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupts = <0 166 4>; interrupts = <0 166 4>;
...@@ -170,7 +169,7 @@ sdhi1: sdhi@ee120000 { ...@@ -170,7 +169,7 @@ sdhi1: sdhi@ee120000 {
}; };
sdhi2: sdhi@ee140000 { sdhi2: sdhi@ee140000 {
compatible = "renesas,r8a7790-sdhi"; compatible = "renesas,sdhi-r8a7790";
reg = <0 0xee140000 0 0x100>; reg = <0 0xee140000 0 0x100>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupts = <0 167 4>; interrupts = <0 167 4>;
...@@ -179,7 +178,7 @@ sdhi2: sdhi@ee140000 { ...@@ -179,7 +178,7 @@ sdhi2: sdhi@ee140000 {
}; };
sdhi3: sdhi@ee160000 { sdhi3: sdhi@ee160000 {
compatible = "renesas,r8a7790-sdhi"; compatible = "renesas,sdhi-r8a7790";
reg = <0 0xee160000 0 0x100>; reg = <0 0xee160000 0 0x100>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupts = <0 168 4>; interrupts = <0 168 4>;
......
...@@ -196,7 +196,7 @@ mmcif: mmcif@e6bd0000 { ...@@ -196,7 +196,7 @@ mmcif: mmcif@e6bd0000 {
}; };
sdhi0: sdhi@ee100000 { sdhi0: sdhi@ee100000 {
compatible = "renesas,r8a7740-sdhi"; compatible = "renesas,sdhi-r8a7740";
reg = <0xee100000 0x100>; reg = <0xee100000 0x100>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupts = <0 83 4 interrupts = <0 83 4
...@@ -208,7 +208,7 @@ sdhi0: sdhi@ee100000 { ...@@ -208,7 +208,7 @@ sdhi0: sdhi@ee100000 {
/* SDHI1 and SDHI2 have no CD pins, no need for CD IRQ */ /* SDHI1 and SDHI2 have no CD pins, no need for CD IRQ */
sdhi1: sdhi@ee120000 { sdhi1: sdhi@ee120000 {
compatible = "renesas,r8a7740-sdhi"; compatible = "renesas,sdhi-r8a7740";
reg = <0xee120000 0x100>; reg = <0xee120000 0x100>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupts = <0 88 4 interrupts = <0 88 4
...@@ -219,7 +219,7 @@ sdhi1: sdhi@ee120000 { ...@@ -219,7 +219,7 @@ sdhi1: sdhi@ee120000 {
}; };
sdhi2: sdhi@ee140000 { sdhi2: sdhi@ee140000 {
compatible = "renesas,r8a7740-sdhi"; compatible = "renesas,sdhi-r8a7740";
reg = <0xee140000 0x100>; reg = <0xee140000 0x100>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupts = <0 104 4 interrupts = <0 104 4
......
...@@ -269,6 +269,11 @@ static const struct edmacc_param dummy_paramset = { ...@@ -269,6 +269,11 @@ static const struct edmacc_param dummy_paramset = {
.ccnt = 1, .ccnt = 1,
}; };
static const struct of_device_id edma_of_ids[] = {
{ .compatible = "ti,edma3", },
{}
};
/*****************************************************************************/ /*****************************************************************************/
static void map_dmach_queue(unsigned ctlr, unsigned ch_no, static void map_dmach_queue(unsigned ctlr, unsigned ch_no,
...@@ -560,14 +565,38 @@ static int reserve_contiguous_slots(int ctlr, unsigned int id, ...@@ -560,14 +565,38 @@ static int reserve_contiguous_slots(int ctlr, unsigned int id,
static int prepare_unused_channel_list(struct device *dev, void *data) static int prepare_unused_channel_list(struct device *dev, void *data)
{ {
struct platform_device *pdev = to_platform_device(dev); struct platform_device *pdev = to_platform_device(dev);
int i, ctlr; int i, count, ctlr;
struct of_phandle_args dma_spec;
if (dev->of_node) {
count = of_property_count_strings(dev->of_node, "dma-names");
if (count < 0)
return 0;
for (i = 0; i < count; i++) {
if (of_parse_phandle_with_args(dev->of_node, "dmas",
"#dma-cells", i,
&dma_spec))
continue;
if (!of_match_node(edma_of_ids, dma_spec.np)) {
of_node_put(dma_spec.np);
continue;
}
clear_bit(EDMA_CHAN_SLOT(dma_spec.args[0]),
edma_cc[0]->edma_unused);
of_node_put(dma_spec.np);
}
return 0;
}
/* For non-OF case */
for (i = 0; i < pdev->num_resources; i++) { for (i = 0; i < pdev->num_resources; i++) {
if ((pdev->resource[i].flags & IORESOURCE_DMA) && if ((pdev->resource[i].flags & IORESOURCE_DMA) &&
(int)pdev->resource[i].start >= 0) { (int)pdev->resource[i].start >= 0) {
ctlr = EDMA_CTLR(pdev->resource[i].start); ctlr = EDMA_CTLR(pdev->resource[i].start);
clear_bit(EDMA_CHAN_SLOT(pdev->resource[i].start), clear_bit(EDMA_CHAN_SLOT(pdev->resource[i].start),
edma_cc[ctlr]->edma_unused); edma_cc[ctlr]->edma_unused);
} }
} }
...@@ -1762,11 +1791,6 @@ static int edma_probe(struct platform_device *pdev) ...@@ -1762,11 +1791,6 @@ static int edma_probe(struct platform_device *pdev)
return 0; return 0;
} }
static const struct of_device_id edma_of_ids[] = {
{ .compatible = "ti,edma3", },
{}
};
static struct platform_driver edma_driver = { static struct platform_driver edma_driver = {
.driver = { .driver = {
.name = "edma", .name = "edma",
......
...@@ -135,6 +135,7 @@ CONFIG_MMC=y ...@@ -135,6 +135,7 @@ CONFIG_MMC=y
CONFIG_MMC_ARMMMCI=y CONFIG_MMC_ARMMMCI=y
CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_ESDHC_IMX=y
CONFIG_MMC_SDHCI_TEGRA=y CONFIG_MMC_SDHCI_TEGRA=y
CONFIG_MMC_SDHCI_SPEAR=y CONFIG_MMC_SDHCI_SPEAR=y
CONFIG_MMC_OMAP=y CONFIG_MMC_OMAP=y
......
...@@ -93,7 +93,7 @@ static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id) ...@@ -93,7 +93,7 @@ static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id)
static struct irqaction at91rm9200_timer_irq = { static struct irqaction at91rm9200_timer_irq = {
.name = "at91_tick", .name = "at91_tick",
.flags = IRQF_SHARED | IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, .flags = IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL,
.handler = at91rm9200_timer_interrupt, .handler = at91rm9200_timer_interrupt,
.irq = NR_IRQS_LEGACY + AT91_ID_SYS, .irq = NR_IRQS_LEGACY + AT91_ID_SYS,
}; };
......
...@@ -171,7 +171,7 @@ static irqreturn_t at91sam926x_pit_interrupt(int irq, void *dev_id) ...@@ -171,7 +171,7 @@ static irqreturn_t at91sam926x_pit_interrupt(int irq, void *dev_id)
static struct irqaction at91sam926x_pit_irq = { static struct irqaction at91sam926x_pit_irq = {
.name = "at91_tick", .name = "at91_tick",
.flags = IRQF_SHARED | IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, .flags = IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL,
.handler = at91sam926x_pit_interrupt, .handler = at91sam926x_pit_interrupt,
.irq = NR_IRQS_LEGACY + AT91_ID_SYS, .irq = NR_IRQS_LEGACY + AT91_ID_SYS,
}; };
......
...@@ -16,11 +16,17 @@ ...@@ -16,11 +16,17 @@
#include "at91_rstc.h" #include "at91_rstc.h"
.arm .arm
/*
* at91_ramc_base is an array void*
* init at NULL if only one DDR controler is present in or DT
*/
.globl at91sam9g45_restart .globl at91sam9g45_restart
at91sam9g45_restart: at91sam9g45_restart:
ldr r5, =at91_ramc_base @ preload constants ldr r5, =at91_ramc_base @ preload constants
ldr r0, [r5] ldr r0, [r5]
ldr r5, [r5, #4] @ ddr1
cmp r5, #0
ldr r4, =at91_rstc_base ldr r4, =at91_rstc_base
ldr r1, [r4] ldr r1, [r4]
...@@ -30,6 +36,8 @@ at91sam9g45_restart: ...@@ -30,6 +36,8 @@ at91sam9g45_restart:
.balign 32 @ align to cache line .balign 32 @ align to cache line
strne r2, [r5, #AT91_DDRSDRC_RTR] @ disable DDR1 access
strne r3, [r5, #AT91_DDRSDRC_LPR] @ power down DDR1
str r2, [r0, #AT91_DDRSDRC_RTR] @ disable DDR0 access str r2, [r0, #AT91_DDRSDRC_RTR] @ disable DDR0 access
str r3, [r0, #AT91_DDRSDRC_LPR] @ power down DDR0 str r3, [r0, #AT91_DDRSDRC_LPR] @ power down DDR0
str r4, [r1, #AT91_RSTC_CR] @ reset processor str r4, [r1, #AT91_RSTC_CR] @ reset processor
......
...@@ -57,7 +57,7 @@ static irqreturn_t at91x40_timer_interrupt(int irq, void *dev_id) ...@@ -57,7 +57,7 @@ static irqreturn_t at91x40_timer_interrupt(int irq, void *dev_id)
static struct irqaction at91x40_timer_irq = { static struct irqaction at91x40_timer_irq = {
.name = "at91_tick", .name = "at91_tick",
.flags = IRQF_DISABLED | IRQF_TIMER, .flags = IRQF_TIMER,
.handler = at91x40_timer_interrupt .handler = at91x40_timer_interrupt
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment