]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
11 years agoARM: kirkwood: topkick: init mvsdio via DT
Jason Cooper [Sat, 26 Jan 2013 20:50:10 +0000 (20:50 +0000)]
ARM: kirkwood: topkick: init mvsdio via DT

Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Tested-by: Andrew Lunn <andrew@lunn.ch>
11 years agoARM: kirkwood: nsa310: convert to pinctrl
Jason Cooper [Sat, 26 Jan 2013 20:50:14 +0000 (20:50 +0000)]
ARM: kirkwood: nsa310: convert to pinctrl

Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Kirkwood: topkick: Enable i2c bus.
Andrew Lunn [Sat, 26 Jan 2013 20:50:12 +0000 (20:50 +0000)]
ARM: Kirkwood: topkick: Enable i2c bus.

Add a DT node for I2C and pinctrl hog for the pins. There appears to
be an i2c bus on topkick with a device on it:

i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- 64 -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: kirkwood: topkick: convert to pinctrl
Jason Cooper [Sat, 26 Jan 2013 20:50:11 +0000 (20:50 +0000)]
ARM: kirkwood: topkick: convert to pinctrl

Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: dove: convert serial DT nodes to clocks property
Sebastian Hesselbarth [Tue, 29 Jan 2013 20:59:46 +0000 (21:59 +0100)]
ARM: dove: convert serial DT nodes to clocks property

of_serial now has support for using clocks property and we have
a DT clock provider. This patch replaces the hard coded clock-frequency
property with a clocks phandle to tclk.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: Add SPI flash on Armada 370 DB board
Gregory CLEMENT [Tue, 5 Feb 2013 20:54:55 +0000 (21:54 +0100)]
arm: mvebu: Add SPI flash on Armada 370 DB board

This patch add support for the SPI flash MX25l25635E which is present
on the Armada 370 DB board. This flash stores the bootloader and its
environment.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: Add SPI flash on Armada XP-DB board
Gregory CLEMENT [Tue, 5 Feb 2013 20:54:54 +0000 (21:54 +0100)]
arm: mvebu: Add SPI flash on Armada XP-DB board

This patch add support for the SPI flash M25P64 which is present on
the Armada XP DB board. This flash stores the bootloader and its
environment.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: Add SPI flash on Armada XP-GP board
Ezequiel Garcia [Wed, 6 Feb 2013 13:06:23 +0000 (10:06 -0300)]
arm: mvebu: Add SPI flash on Armada XP-GP board

This patch adds an SPI master device node for Armada XP-GP board.
This master node is an SPI flash controller 'n25q128a13'.

Since there is no 'partitions' node declared, one full sized
partition named as the device will be created.

Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Lior Amsalem <alior@marvell.com>
Tested-by: Gregory Clement <gregory.clement@free-electrons.com>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Acked-by: Gregory Clement <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: Add support for SPI controller in Armada 370/XP
Ezequiel Garcia [Wed, 6 Feb 2013 13:06:21 +0000 (10:06 -0300)]
arm: mvebu: Add support for SPI controller in Armada 370/XP

The Armada 370 and Armada XP SoC has an SPI controller.
This patch adds support for this controller in Armada 370
and Armada XP SoC common device tree files.

Note that the Armada XP SPI register length is 0x50 bytes,
while Armada 370 SPI register length is 0x28 bytes,
so we choose the smaller of the two.

Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Lior Amsalem <alior@marvell.com>
Acked-by: Gregory Clement <gregory.clement@free-electrons.com>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoMerge branch 'mvebu/boards' into mvebu/dt
Jason Cooper [Sat, 16 Feb 2013 15:07:26 +0000 (15:07 +0000)]
Merge branch 'mvebu/boards' into mvebu/dt

11 years agoARM: mvebu: Update defconfig to select SPI flash and MTD support
Ezequiel Garcia [Wed, 6 Feb 2013 13:06:24 +0000 (10:06 -0300)]
ARM: mvebu: Update defconfig to select SPI flash and MTD support

The Armada XP DB-MV784MP-GP board has an SPI flash device.
These options allow to access that device over MTD.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: mvebu: Update defconfig to select SPI support
Ezequiel Garcia [Wed, 6 Feb 2013 13:06:22 +0000 (10:06 -0300)]
ARM: mvebu: Update defconfig to select SPI support

Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Lior Amsalem <alior@marvell.com>
Acked-by: Gregory Clement <gregory.clement@free-electrons.com>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: support for the new Armada XP development board(DB-MV784MP-GP)
Gregory CLEMENT [Thu, 31 Jan 2013 14:50:12 +0000 (15:50 +0100)]
arm: mvebu: support for the new Armada XP development board(DB-MV784MP-GP)

This is the new Armada XP evaluation board from Marvell. It comes with
a RS232 port over USB, a SATA link, an internal SSD, 4 Ethernet
Gigabit links.

Support for USB (Host and device), SDIO, PCIe will be added as drivers
when they become available for Armada XP in mainline.

Tested-by: Simon Guinot <simon.guinot@sequanux.org>
Tested-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoclocksource: update and move armada-370-xp-timer documentation to timer directory
Gregory CLEMENT [Fri, 25 Jan 2013 17:32:45 +0000 (18:32 +0100)]
clocksource: update and move armada-370-xp-timer documentation to timer directory

Timer driver for Armada 370 and Armada XP have gained local timers
support. So it needs new resources information regarding the IRQs
and the registers.

Also move the documentation in the new and more accurate directory

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: update DT to support local timers
Gregory CLEMENT [Fri, 25 Jan 2013 17:32:44 +0000 (18:32 +0100)]
arm: mvebu: update DT to support local timers

Now that the time-armada-370-xp support local timers, updated the
device tree to take it into account.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoMerge branch 'mvebu/boards' into mvebu/dt
Jason Cooper [Fri, 15 Feb 2013 21:57:06 +0000 (21:57 +0000)]
Merge branch 'mvebu/boards' into mvebu/dt

Pulled in for mvebu clocksource changes.

11 years agoarm: mvebu: update defconfig with local timer support
Gregory CLEMENT [Fri, 25 Jan 2013 17:32:43 +0000 (18:32 +0100)]
arm: mvebu: update defconfig with local timer support

Now that we have support for local timers, enable it by default

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoclocksource: time-armada-370-xp: add local timer support
Gregory CLEMENT [Fri, 25 Jan 2013 17:32:42 +0000 (18:32 +0100)]
clocksource: time-armada-370-xp: add local timer support

On the SOCs Armada 370 and Armada XP, each CPU comes with two private
timers. This patch use the timer 0 of each CPU as local timer for the
clockevent if CONFIG_LOCAL_TIMER is selected. In the other case, use
only the private Timer 0 of CPU 0.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: Add support for local interrupt
Gregory CLEMENT [Fri, 25 Jan 2013 17:32:41 +0000 (18:32 +0100)]
arm: mvebu: Add support for local interrupt

MPIC allows the use of private interrupt for each CPUs. The 28th first
interrupts are per-cpu. This patch adds support to use them.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Dove: convert usb host controller to DT
Sebastian Hesselbarth [Mon, 28 Jan 2013 15:54:08 +0000 (16:54 +0100)]
ARM: Dove: convert usb host controller to DT

With DT support for orion-ehci also convert Dove to it and
remove the legacy calls and clock aliases.

This patch is based on "ARM: Dove: split legacy and DT setup"
applied to mvebu/boards recently.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: Enable USB controllers on Armada 370/XP boards
Ezequiel Garcia [Wed, 23 Jan 2013 15:26:31 +0000 (12:26 -0300)]
arm: mvebu: Enable USB controllers on Armada 370/XP boards

This patch activates every USB port provided by each SoC.
Except for Armada XP Openblocks AX3-4 board,
where we enable only the first two USB ports
until we have more information on the third one usage.

Cc: Lior Amsalem <alior@marvell.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Tested-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: Add support for USB host controllers in Armada 370/XP
Ezequiel Garcia [Wed, 23 Jan 2013 15:26:30 +0000 (12:26 -0300)]
arm: mvebu: Add support for USB host controllers in Armada 370/XP

The Armada 370 and Armada XP SoC has an Orion EHCI USB controller.
This patch adds support for this controller in Armada 370
and Armada XP SoC common device tree files.

Cc: Lior Amsalem <alior@marvell.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Tested-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: Update defconfig to select USB support
Ezequiel Garcia [Wed, 23 Jan 2013 15:26:32 +0000 (12:26 -0300)]
arm: mvebu: Update defconfig to select USB support

Cc: Lior Amsalem <alior@marvell.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Tested-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: add button for OpenBlocks AX3-4
Thomas Petazzoni [Mon, 7 Jan 2013 16:29:58 +0000 (17:29 +0100)]
arm: mvebu: add button for OpenBlocks AX3-4

The OpenBlocks AX3-4 board has one software-controlled button on the
front side, labeled "INIT", so we add minimal support for this button
in the kernel.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Kirkwood: Convert NS2 to gpio-poweroff.
Andrew Lunn [Fri, 28 Dec 2012 14:14:10 +0000 (15:14 +0100)]
ARM: Kirkwood: Convert NS2 to gpio-poweroff.

Remove C code and add a Device Tree node in its place.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Simon Guinot <simon.guinot@sequanux.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Kirkwood: Convert NSA310 I2C to device tree
Andrew Lunn [Fri, 28 Dec 2012 14:08:50 +0000 (15:08 +0100)]
ARM: Kirkwood: Convert NSA310 I2C to device tree

Add a sub-node into the I2C node to represent the adt7476 device.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Kirkwood: Convert NSA310 to use gpio-poweroff driver
Andrew Lunn [Fri, 28 Dec 2012 14:08:49 +0000 (15:08 +0100)]
ARM: Kirkwood: Convert NSA310 to use gpio-poweroff driver

Remove the C code and add a Device Tree node for gpio-poweroff.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Kirkwood: Convert NSA310 to DT based regulators.
Andrew Lunn [Fri, 28 Dec 2012 14:08:48 +0000 (15:08 +0100)]
ARM: Kirkwood: Convert NSA310 to DT based regulators.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Dove: add fixed regulator for CuBox USB power
Sebastian Hesselbarth [Thu, 27 Dec 2012 22:21:59 +0000 (23:21 +0100)]
ARM: Dove: add fixed regulator for CuBox USB power

CuBox needs to enable USB power on a gpio pin. Add a fixed regulator
to always enable usb power on boot.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Dove: move CuBox led pinctrl to gpio-leds node
Sebastian Hesselbarth [Thu, 27 Dec 2012 22:21:10 +0000 (23:21 +0100)]
ARM: Dove: move CuBox led pinctrl to gpio-leds node

gpio-leds has support for pinctrl allocation, make use of it.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Kirkwood: Convert openblocks A6 board to pinctrl
Nobuhiro Iwamatsu [Sun, 23 Dec 2012 02:34:37 +0000 (11:34 +0900)]
ARM: Kirkwood: Convert openblocks A6 board to pinctrl

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Kirkwood: Add pinctrl of NAND to 88f6282
Nobuhiro Iwamatsu [Sun, 23 Dec 2012 02:34:36 +0000 (11:34 +0900)]
ARM: Kirkwood: Add pinctrl of NAND to 88f6282

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Kirkwood: Add pinctrl of TWSI1 to 88f6282
Nobuhiro Iwamatsu [Sun, 23 Dec 2012 02:34:34 +0000 (11:34 +0900)]
ARM: Kirkwood: Add pinctrl of TWSI1 to 88f6282

The 88f6282 has one more TWSI(TWSI1). This add the information to enable
pinctl of TWSI1.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Acked-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: kirkwood: add pinmux option for the SDIO interface on 88F6282
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:13 +0000 (15:49 +0100)]
arm: kirkwood: add pinmux option for the SDIO interface on 88F6282

This commit adds a pinmux option, pmx_sdio, to enable the muxing of
the SDIO interface on the 88F6282 SoC from Marvell.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: kirkwood: mplcec4: use Device Tree to probe SDIO
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:12 +0000 (15:49 +0100)]
arm: kirkwood: mplcec4: use Device Tree to probe SDIO

Now that the mvsdio driver has a Device Tree binding, and the SDIO
controller is declared in kirkwood.dtsi, migrate the mplcec4 board to
use the Device Tree to probe the SDIO controller and to mux the pins
of the SDIO interface correctly.

This patch has not been tested, it remains to be tested by a person
having access to the hardware.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Stefan Peter <s.peter@mpl.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: kirkwood: dreamplug: use Device Tree to probe SDIO
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:11 +0000 (15:49 +0100)]
arm: kirkwood: dreamplug: use Device Tree to probe SDIO

Now that the mvsdio driver has a Device Tree binding, and the SDIO
controller is declared in kirkwood.dtsi, migrate the dreamplug board
to use the Device Tree to probe the SDIO controller and to mux this
interface properly.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: kirkwood: add Device Tree informations for the SDIO controller
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:10 +0000 (15:49 +0100)]
arm: kirkwood: add Device Tree informations for the SDIO controller

Now that the SDIO controller has a Device Tree binding, let's use it
in kirkwood.dtsi.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: enable the SDIO interface on the Globalscale Mirabox
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:09 +0000 (15:49 +0100)]
arm: mvebu: enable the SDIO interface on the Globalscale Mirabox

The Globalscale Mirabox uses the SDIO interface of the Armada 370 to
connect to a Wifi/Bluetooth SD8787 chip, so we enable the SDIO
interface of this board in its Device Tree file.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: enable the SD card slot on Armada 370 DB board
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:08 +0000 (15:49 +0100)]
arm: mvebu: enable the SD card slot on Armada 370 DB board

The Armada XP DB evaluation board has one SD card slot, directly
connected to the SDIO IP of the SoC, so we add a device tree
description for it.

However, in the default configuration of the board, the SD card slot
is not usable: the connector plugged into CON40 must be changed
against a different one, provided with the board by the
manufacturer. Since such a manual modification of the hardware is
needed, we did not enable the SDIO interface by default, and left it
to the board user to modify the Device Tree if needed. Since this
board is really only an evaluation board for developers and not a
final product, it is not too bad.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: enable the SD card slot on Armada XP DB board
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:07 +0000 (15:49 +0100)]
arm: mvebu: enable the SD card slot on Armada XP DB board

The Armada XP DB evaluation board has one SD card slot, directly
connected to the SDIO IP of the SoC, so we enable this
IP. Unfortunately, there are no GPIOs for card-detect and
write-protect.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: add pin muxing options for the SDIO interface on Armada XP
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:06 +0000 (15:49 +0100)]
arm: mvebu: add pin muxing options for the SDIO interface on Armada XP

The SDIO interface is only available on pins MPP30/31/32/33/34/35 on
the various Armada XP variants, so we provide a pin muxing option for
this in the Armada XP .dtsi files.

Even though those muxing options are the same for MV78230, MV78260 and
MV78460, we keep them in each .dtsi file, because the number of pins,
and therefore the declaration of the pinctrl node, is different for
each SoC variant.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: add pin muxing options for the SDIO interface on Armada 370
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:05 +0000 (15:49 +0100)]
arm: mvebu: add pin muxing options for the SDIO interface on Armada 370

The SDIO interface is available either on pins MPP9/11/12/13/14/15 or
MPP47/48/49/50/51/52 on the Armada 370. Even though all combinations
are potentially possible, those two muxing options are the most
probable ones, so we provide those at the SoC level .dtsi file.

In practice, in turns out the Armada 370 DB board uses the former,
while the Armada 370 Mirabox uses the latter.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: add DT information for the SDIO interface of Armada 370/XP
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:04 +0000 (15:49 +0100)]
arm: mvebu: add DT information for the SDIO interface of Armada 370/XP

Now that the mvsdio MMC driver has a Device Tree binding, we add the
Device Tree informations to describe the SDIO interface available in
the Armada 370/XP SoCs.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: Add RTC support for Armada 370 and Armada XP
Gregory CLEMENT [Wed, 12 Dec 2012 09:06:24 +0000 (10:06 +0100)]
arm: mvebu: Add RTC support for Armada 370 and Armada XP

The Armada 370 and Armada XP Socs have the same controller that the
one used in the orion platforms. This patch updates the device tree
for these SoCs.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Acked-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Florian Fainelli <florian@openwrt.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoMerge tag 'tags/boards_for_v3.9' into mvebu/dt
Jason Cooper [Thu, 31 Jan 2013 20:39:53 +0000 (20:39 +0000)]
Merge tag 'tags/boards_for_v3.9' into mvebu/dt

mvebu boards for v3.9
 - Guruplug Server Plus DT board
 - RD-A370-A1 board
 - mvebu improved SMP support in interrupt controller
 - update defconfigs
 - split legacy and DT setup for dove
 - remove some redundant clock aliases

depends on:
 - tags/mvebu_fixes_for_v3.8-rc6
 - tags/cleanup_for_v3.9_round2
 - tags/drivers_for_v3.9
 - mmc/mmc-next up to:
    d293875 mmc: mvsdio: add pinctrl integration

11 years agoARM: kirkwood: convert Guruplug Server Plus to use the device tree
Willy Tarreau [Sun, 9 Dec 2012 18:40:04 +0000 (19:40 +0100)]
ARM: kirkwood: convert Guruplug Server Plus to use the device tree

Add a device tree entry for the Guruplug Server Plus board. This port
was based both on the work done on the dreamplug and the dockstar.

It builds, boots and works on my Guruplug Server Plus.

Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: add DTS file for Marvell RD-A370-A1 board
Florian Fainelli [Wed, 9 Jan 2013 19:56:07 +0000 (20:56 +0100)]
arm: mvebu: add DTS file for Marvell RD-A370-A1 board

This patch adds the DTS file to support the Marvell RD-A370-A1
(Reference Design board) also known as RD-88F6710 board. It is almost
entirely similar to the DB-A370 board except that the first Ethernet PHY
is SGMII-wired and the second is a switch which is RGMII-wired.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: Improve the SMP support of the interrupt controller
Gregory CLEMENT [Wed, 5 Dec 2012 20:43:23 +0000 (21:43 +0100)]
arm: mvebu: Improve the SMP support of the interrupt controller

This patch makes the interrupt controller driver more SMP aware for
the Armada XP SoCs. It adds the support for the per-CPU irq. It also
adds the implementation for the set_affinity hook.

Patch initialy wrote by Yehuda Yitschak and reworked by Gregory
CLEMENT.

Signed-off-by: Yehuda Yitschak <yehuday@marvell.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Dove: split legacy and DT setup
Sebastian Hesselbarth [Tue, 18 Dec 2012 00:24:27 +0000 (01:24 +0100)]
ARM: Dove: split legacy and DT setup

In the beginning of DT for Dove it was reasonable to have it close to
non-DT code. With improved DT support, it became more and more difficult
to not break non-DT while changing DT code.

This patch splits up DT board setup and introduces a DOVE_LEGACY config
to allow to remove legacy code for DT-only kernels.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: dove: update dove_defconfig with a few useful options
Olof Johansson [Sun, 13 Jan 2013 17:54:07 +0000 (09:54 -0800)]
ARM: dove: update dove_defconfig with a few useful options

This refreshes the dove_defconfig, and adds:
PRINTK_TIME
DEVTMPFS
EXT4

They're quite useful, and allows booting a cubox ubuntu rootfs on SD card,
since that by default uses ext4.

The rest of the churn is due to options and defaults moving around, no
functional difference.

Signed-off-by: Olof Johansson <olof@lixom.net>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Kirkwood: Remove redundent SDIO clock alias
Andrew Lunn [Thu, 10 Jan 2013 21:01:09 +0000 (22:01 +0100)]
ARM: Kirkwood: Remove redundent SDIO clock alias

Now that SDIO is instantiated via DT, and the SDIO DT node has a clocks
property, we no longer need a C coded clock alias. Remove it.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Kirkwood: Remove redundent USB clock alias
Andrew Lunn [Thu, 10 Jan 2013 21:01:08 +0000 (22:01 +0100)]
ARM: Kirkwood: Remove redundent USB clock alias

Now that USB is instantiated via DT, and the USB DT node has a clocks
property, we no longer need a C coded clock alias. Remove it.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: add LEDs support to defconfig file
Thomas Petazzoni [Mon, 7 Jan 2013 16:27:14 +0000 (17:27 +0100)]
arm: mvebu: add LEDs support to defconfig file

The OpenBlocks AX3-4 platform has several LEDs, so it sounds wise to
enable LED support in mvebu_defconfig. We anticipate that more
platforms using Marvell EBU SoCs will have LEDs in the future.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: enable btmrvl driver in mvebu_defconfig
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:19 +0000 (15:49 +0100)]
arm: mvebu: enable btmrvl driver in mvebu_defconfig

The Globalscale Mirabox platform, based on the Armada 370 from
Marvell, has a SD8787 Wireless/Bluetooth chip connected on the SDIO
interface. Now that the mvsdio has a Device Tree binding, and the
necessary Device Tree informations have been added at the SoC and
board level, let's enable the btmrvl driver for the Bluetooth part of
the SD8787 chip.

For now, the driver gets probed correctly, detects the device but
apparently fails to push the firmware to the device:

Bluetooth: vendor=0x2df, device=0x911a, class=255, fn=2
Bluetooth: FW failed to be active in time!
Bluetooth: Downloading firmware failed!
Bluetooth: vendor=0x2df, device=0x911b, class=255, fn=3
Bluetooth: FW failed to be active in time!
Bluetooth: Downloading firmware failed!

This will have to be investigated separately.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: enable mwifiex driver in mvebu_defconfig
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:18 +0000 (15:49 +0100)]
arm: mvebu: enable mwifiex driver in mvebu_defconfig

The Globalscale Mirabox platform, based on the Armada 370 from
Marvell, has a SD8787 Wireless chip connected on the SDIO
interface. Now that the mvsdio has a Device Tree binding, and the
necessary Device Tree informations have been added at the SoC and
board level, let's enable the mwifiex driver for the Wireless part of
the SD8787 chip.

For now, the driver gets probed correctly, detects a device and shows
the network interfaces. However, scanning Wifi networks doesn't work
for now, with a 'CMD_RESP: cmd 0x6 error, result=0x1' message. This
will have to be investigated separately.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: enable SDIO support in mvebu_defconfig
Thomas Petazzoni [Fri, 21 Dec 2012 14:49:17 +0000 (15:49 +0100)]
arm: mvebu: enable SDIO support in mvebu_defconfig

Now that the mvsdio driver has gained Device Tree support and the
necessary Device Tree informations has been added for Armada 370 and
Armada XP platforms, we enable the MMC subsystem and the mvsdio driver
in mvebu_defconfig.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoarm: mvebu: Update defconfig with Marvell RTC support
Gregory CLEMENT [Wed, 12 Dec 2012 09:06:26 +0000 (10:06 +0100)]
arm: mvebu: Update defconfig with Marvell RTC support

The RTC class driver is already part of the mvebu_defconfig but the
Marvell internal RTC not yet. Now that its support is added for mvebu
let's update the config file.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Florian Fainelli <florian@openwrt.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoMerge commit 'd293875' into mvebu/boards
Jason Cooper [Thu, 31 Jan 2013 17:39:01 +0000 (17:39 +0000)]
Merge commit 'd293875' into mvebu/boards

Pulled in mmc/mmc-next up to:

d293875 mmc: mvsdio: add pinctrl integration

11 years agoMerge tag 'tags/drivers_for_v3.9' into mvebu/boards
Jason Cooper [Thu, 31 Jan 2013 17:38:48 +0000 (17:38 +0000)]
Merge tag 'tags/drivers_for_v3.9' into mvebu/boards

mvebu drivers for v3.9
 - use rtc-mv in mvebu armv7 SoCs
 - add pci-e hotplug for kirkwood

Depends on:
 - tags/mvebu_fixes_for_v3.8-rc6

11 years agoMerge tag 'tags/cleanup_for_v3.9_round2' into mvebu/boards
Jason Cooper [Thu, 31 Jan 2013 17:38:38 +0000 (17:38 +0000)]
Merge tag 'tags/cleanup_for_v3.9_round2' into mvebu/boards

cleanup for v3.9 round2
 - remove unneeded #includes for mach-dove
 - remove unneeded #includes and code for the nsa310

11 years agoMerge tag 'tags/mvebu_fixes_for_v3.8-rc6' into mvebu/boards
Jason Cooper [Thu, 31 Jan 2013 17:38:25 +0000 (17:38 +0000)]
Merge tag 'tags/mvebu_fixes_for_v3.8-rc6' into mvebu/boards

fixes for v3.8-rc6

 - add missing gpio interrupt lines to dove dt
 - fix bad logic for printing MPP error message on orion boards
 - build proper serial port driver after changing mvebu DT compatible property
   - This is a change to mvebu_defconfig that I wouldn't usually push out as a
     fix.  However, the commit

     b24212f arm: mvebu: Use dw-apb-uart instead of ns16650 as UART driver

     changed the serial driver for the board in the dts file.  without the patch
     I've included in this pull, users won't see any log messages.

11 years agocpuidle: kirkwood: Move out of mach directory
Andrew Lunn [Wed, 9 Jan 2013 12:22:15 +0000 (13:22 +0100)]
cpuidle: kirkwood: Move out of mach directory

Move the Kirkwood cpuidle driver out of arch/arm/mach-kirkwood and
into drivers/cpuidle. Convert the driver into a platform driver.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: dove: cleanup includes
Sebastian Hesselbarth [Tue, 29 Jan 2013 21:23:09 +0000 (22:23 +0100)]
ARM: dove: cleanup includes

This patch cleans unneccessary includes and reorders the remaining
includes in common dove code.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: kirkwood: nsa310: cleanup includes and unneeded code
Jason Cooper [Wed, 23 Jan 2013 19:58:21 +0000 (19:58 +0000)]
ARM: kirkwood: nsa310: cleanup includes and unneeded code

After removing the unneeded linux/i2c.h, linux/of.h was needed for
of_machine_is_compatible().  i2c.h had included of.h.

Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agortc: Add support of rtc-mv for MVEBU SoCs
Gregory CLEMENT [Wed, 12 Dec 2012 09:06:23 +0000 (10:06 +0100)]
rtc: Add support of rtc-mv for MVEBU SoCs

The Armada 370 and Armada XP Socs have the same controller that the
one used in the orion platforms. This patch enables the selection of
rtc-mv with mvebu platforms.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Acked-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Florian Fainelli <florian@openwrt.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoARM: Kirkwood: Support basic hotplug for PCI-E
Jason Gunthorpe [Wed, 21 Nov 2012 18:25:28 +0000 (11:25 -0700)]
ARM: Kirkwood: Support basic hotplug for PCI-E

Unconditionally register the PCI-E bus, even if the link is currently
down. When the link is brought up the bus can be scanned through
/sys/bus/pci/rescan or otherwise. Since the HW has no interrupt for
link up, userspace will have to take care of the timing.

An earlier version of this was contingent on CONFIG_HOTPLUG, but
that is being removed from the kernel.

This also fixes printing the link up/down message to be displayed
on one line (structured logging broke this?)

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
11 years agoMerge tag 'tags/mvebu_fixes_for_v3.8-rc6' into mvebu/drivers
Jason Cooper [Wed, 30 Jan 2013 20:12:25 +0000 (20:12 +0000)]
Merge tag 'tags/mvebu_fixes_for_v3.8-rc6' into mvebu/drivers

fixes for v3.8-rc6

 - add missing gpio interrupt lines to dove dt
 - fix bad logic for printing MPP error message on orion boards
 - build proper serial port driver after changing mvebu DT compatible property
   - This is a change to mvebu_defconfig that I wouldn't usually push out as a
     fix.  However, the commit

     b24212f arm: mvebu: Use dw-apb-uart instead of ns16650 as UART driver

     changed the serial driver for the board in the dts file.  without the patch
     I've included in this pull, users won't see any log messages.

11 years agommc: mvsdio: add pinctrl integration
Chris Ball [Mon, 28 Jan 2013 11:26:53 +0000 (06:26 -0500)]
mmc: mvsdio: add pinctrl integration

On many Marvell SoCs, the pins used for the SDIO interface are part of
the MPP pins, that are muxable pins. In order to get the muxing of
those pins correct, this commit integrates the mvsdio driver with the
pinctrl infrastructure by calling devm_pinctrl_get_select_default()
during ->probe().

Note that we permit this function to fail because not all Marvell
platforms have yet been fully converted to using the pinctrl
infrastructure.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Stefan Peter <s.peter@mpl.ch>
Tested-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: mvsdio: implement a Device Tree binding
Thomas Petazzoni [Wed, 16 Jan 2013 13:13:59 +0000 (14:13 +0100)]
mmc: mvsdio: implement a Device Tree binding

This patch adds a simple Device Tree binding for the mvsdio driver, as
well as the necessary documentation for it. Compatibility with non-DT
platforms is preserved, by keeping the platform_data based
initialization.

We introduce a small difference between non-DT and DT platforms: DT
platforms are required to provide a clocks = <...> property, which the
driver uses to get the frequency of the clock that goes to the SDIO
IP. The behaviour on non-DT platforms is kept unchanged: a clock
reference is not mandatory, but the clock frequency must be passed in
the "clock" field of the mvsdio_platform_data structure.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Stefan Peter <s.peter@mpl.ch>
Tested-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: mvsdio: use slot-gpio for card detect gpio
Thomas Petazzoni [Wed, 16 Jan 2013 13:13:58 +0000 (14:13 +0100)]
mmc: mvsdio: use slot-gpio for card detect gpio

The MMC core subsystem provides in drivers/mmc/core/slot-gpio.c a nice
set of helper functions to simplify the management of the card detect
GPIO in MMC host drivers. This patch migrates the mvsdio driver to
using those helpers, which will make the ->probe() code simpler, and
therefore ease the process of adding a Device Tree binding for this
driver.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Stefan Peter <s.peter@mpl.ch>
Tested-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: mvsdio: use slot-gpio infrastructure for write protect gpio
Thomas Petazzoni [Wed, 16 Jan 2013 13:13:57 +0000 (14:13 +0100)]
mmc: mvsdio: use slot-gpio infrastructure for write protect gpio

The MMC core subsystem provides in drivers/mmc/core/slot-gpio.c a nice
set of helper functions to simplify the management of the write
protect GPIO in MMC host drivers. This patch migrates the mvsdio
driver to using those helpers, which will make the ->probe() code
simpler, and therefore ease the process of adding a Device Tree
binding for this driver.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Stefan Peter <s.peter@mpl.ch>
Tested-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sdhci-esdhc-imx: remove ESDHC_CD_GPIO handling from IO accessory
Shawn Guo [Tue, 15 Jan 2013 15:19:54 +0000 (23:19 +0800)]
mmc: sdhci-esdhc-imx: remove ESDHC_CD_GPIO handling from IO accessory

With commit 9444e07 (mmc: remove unncessary mmc_gpio_free_cd() call from
slot-gpio users) in place, the ESDHC_CD_GPIO handling in IO accessories
becomes unnecessary.  Remove it.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sdhci: introduce sdhci_update_clock helper to re-enable clock
Andy Shevchenko [Mon, 7 Jan 2013 14:31:08 +0000 (16:31 +0200)]
mmc: sdhci: introduce sdhci_update_clock helper to re-enable clock

There are three places where same piece of code is used. Let's split it
to a separate function.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sdhci-pxav3: add IRQ wake up support
Kevin Liu [Mon, 14 Jan 2013 19:38:53 +0000 (14:38 -0500)]
mmc: sdhci-pxav3: add IRQ wake up support

[cjb: The MMP3 architecture requires a registered interrupt to retire wfi
when waking from suspend.]

Signed-off-by: Jialing Fu <jlfu@marvell.com>
Signed-off-by: Kevin Liu <kliu5@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sdhci: add IRQ wake up support
Kevin Liu [Sat, 5 Jan 2013 09:21:33 +0000 (17:21 +0800)]
mmc: sdhci: add IRQ wake up support

Don't disable SD Host IRQ during suspend if it is wake up source.
Enable wakeup event during suspend.

Signed-off-by: Jialing Fu <jlfu@marvell.com>
Signed-off-by: Kevin Liu <kliu5@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sdhci: disable interrupt before free_irq
Kevin Liu [Sat, 5 Jan 2013 09:18:28 +0000 (17:18 +0800)]
mmc: sdhci: disable interrupt before free_irq

Current code missed disabling interrupts before free irq which is shared.

Notice below comments for function free_irq (kernel/irq/manage.c):
On a shared IRQ the caller must ensure the interrupt is disabled
on the card it drives before calling this function.

Original code has below issue during suspend/resume when multiple SD
hosts share the same IRQ:
1. Assume there are two hosts (host1 for emmc while host2 for sd) share
the same mmc irq.
2. When system suspend, host2 will be suspended before host1.
So the sequence is below:
step1: irq handler for host2 removed ->
step2: irq handler for host1 removed and irq disabled ->
... system suspended ...
... system resumed ...
step3: irq enabled and the irq handler for host1 restored ->
step4: irq handler for host2 restored
3. So there is the buggy time slot that the irq is enabled but the irq
handler for host2 is removed. Then host2 interrupt can be triggered
but can't be handled at that moment.

Signed-off-by: Jialing Fu <jlfu@marvell.com>
Signed-off-by: Kevin Liu <kliu5@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: add BCM2835 driver
Stephen Warren [Thu, 3 Jan 2013 05:34:49 +0000 (22:34 -0700)]
mmc: add BCM2835 driver

Add a very simple driver for the BCM2835 SoC, which is used in the
Raspberry Pi board.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: fix async request mechanism for sequential read scenarios
Konstantin Dorfman [Mon, 14 Jan 2013 19:28:17 +0000 (14:28 -0500)]
mmc: fix async request mechanism for sequential read scenarios

When current request is running on the bus and if next request fetched
by mmcqd is NULL, mmc context (mmcqd thread) gets blocked until the
current request completes. This means that if new request comes in while
the mmcqd thread is blocked, this new request can not be prepared in
parallel to current ongoing request. This may result in delaying the new
request execution and increase it's latency.

This change allows to wake up the MMC thread on new request arrival.
Now once the MMC thread is woken up, a new request can be fetched and
prepared in parallel to the current running request which means this new
request can be started immediately after the current running request
completes.

With this change read throughput is improved by 16%.

Signed-off-by: Konstantin Dorfman <kdorfman@codeaurora.org>
Reviewed-by: Seungwon Jeon <tgih.jun@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: queue: exclude asynchronous transfer for special request
Seungwon Jeon [Wed, 26 Dec 2012 01:40:17 +0000 (10:40 +0900)]
mmc: queue: exclude asynchronous transfer for special request

Unlike normal r/w request, special requests(discard, flush)
is finished with a one-time issue_fn. Request change to
mqrq_prev makes unnecessary call.

Signed-off-by: Seungwon Jeon <tgih.jun@samsung.com>
Reviewed-by: Konstantin Dorfman <kdorfman@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh-mmcif: simplify IRQ processing
Guennadi Liakhovetski [Wed, 12 Dec 2012 14:45:14 +0000 (15:45 +0100)]
mmc: sh-mmcif: simplify IRQ processing

The classical way to process IRQs is read out the status, ack all triggered
IRQs, possibly mask them, then process them. Follow this simple procesure
instead of the current complex custom algorithm.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh-mmcif: report all errors
Teppei Kamijou [Wed, 12 Dec 2012 14:38:18 +0000 (15:38 +0100)]
mmc: sh-mmcif: report all errors

Make error reporting in the driver more verbose. This patch is based on
an earlier work by Teppei Kamijou, but we try to not add any new error
messages to the log in the normal case to avoid confusing the user, and
also add a few more dev_dbg() calls.

Signed-off-by: Teppei Kamijou <teppei.kamijou.yb@renesas.com>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
[g.liakhovetski@gmx.de: avoid producing new errors in normal case]
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh-mmcif: fix I/O errors
Guennadi Liakhovetski [Wed, 12 Dec 2012 14:38:17 +0000 (15:38 +0100)]
mmc: sh-mmcif: fix I/O errors

The INT_BUFWEN IRQ often arrives with other bits set too. If they are not
cleared, an additional IRQ can be triggered, sometimes also after the MMC
request has already been completed. This leads to block I/O errors. Earlier
Teppei Kamijou also observed these additional interrupts and proposed to
explicitly wait for them. This patch chooses an alternative approach of
clearing all active bits immediately, when processing the main interrupt.

Reported-by: Teppei Kamijou <teppei.kamijou.yb@renesas.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh-mmcif: reset DMA completion immediately before starting DMA
Guennadi Liakhovetski [Wed, 12 Dec 2012 14:38:16 +0000 (15:38 +0100)]
mmc: sh-mmcif: reset DMA completion immediately before starting DMA

DMA completion can be signalled from the DMA callback and from the error
handler. If both are called, the completion struct can enter an
inconsistent state. To prevent this move completion initialisation
immediately before activating DMA.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh-mmcif: reset error code for any opcode
Guennadi Liakhovetski [Wed, 12 Dec 2012 14:38:15 +0000 (15:38 +0100)]
mmc: sh-mmcif: reset error code for any opcode

If a command execution has produced an error, it has to be reset as a part
of the error handling.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh-mmcif: fix a race, causing an Oops on SMP
Guennadi Liakhovetski [Wed, 12 Dec 2012 14:38:14 +0000 (15:38 +0100)]
mmc: sh-mmcif: fix a race, causing an Oops on SMP

Oopses have been observed on SMP in the sh-mmcif IRQ thread, when the two
IRQ threads run simultaneously on two CPUs. Also take care to guard the
timeout work and the DMA completion callback from possible NULL-pointer
dereferences and races.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh-mmcif: (cosmetic) simplify boolean return blocks
Guennadi Liakhovetski [Wed, 12 Dec 2012 14:38:13 +0000 (15:38 +0100)]
mmc: sh-mmcif: (cosmetic) simplify boolean return blocks

Use "return condition" instead of "if (condition) return true; return false"
in functions, returning bool.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh-mmcif: Terminate DMA transactions when detecting timeout or error
Teppei Kamijou [Wed, 12 Dec 2012 14:38:12 +0000 (15:38 +0100)]
mmc: sh-mmcif: Terminate DMA transactions when detecting timeout or error

If a DMA transaction fails, terminate all outstanding DMA transfers and
unmap buffers.

Signed-off-by: Teppei Kamijou <teppei.kamijou.yb@renesas.com>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
[g.liakhovetski@gmx.de: forward-port, add dma_unmap_sg() in error cases]
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh-mmcif: fix missing and consolidate IO completion timeouts
Guennadi Liakhovetski [Wed, 12 Dec 2012 14:38:11 +0000 (15:38 +0100)]
mmc: sh-mmcif: fix missing and consolidate IO completion timeouts

Read block and write block operations are currently missing completion
timeouts. Add missing timeouts and consolidate them at one location.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh_mmcif: Avoid unnecessary mmc_delay() at mmc_card_sleepawake()
Teppei Kamijou [Wed, 12 Dec 2012 14:38:10 +0000 (15:38 +0100)]
mmc: sh_mmcif: Avoid unnecessary mmc_delay() at mmc_card_sleepawake()

SH/R-Mobile MMCIF host controller can wait while the card signals busy.
Set MMC_CAP_WAIT_WHILE_BUSY to inform an upper layer (core/mmc_ops.c)
not to insert unnecessary mmc_delay().

Signed-off-by: Teppei Kamijou <teppei.kamijou.yb@renesas.com>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh_mmcif: Use msecs_to_jiffies() for host->timeout
Teppei Kamijou [Wed, 12 Dec 2012 14:38:09 +0000 (15:38 +0100)]
mmc: sh_mmcif: Use msecs_to_jiffies() for host->timeout

Timeout period should be properly normalized using msecs_to_jiffies().

Signed-off-by: Teppei Kamijou <teppei.kamijou.yb@renesas.com>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh_mmcif: Add support for eMMC Dual Data Rate
Teppei Kamijou [Wed, 12 Dec 2012 14:38:08 +0000 (15:38 +0100)]
mmc: sh_mmcif: Add support for eMMC Dual Data Rate

Some MMCIF implementations support the Dual Data Rate. With this patch,
platforms can set the MMC_CAP_UHS_DDR50 capability flag in MMCIF platform
data. This will let the MMC core to actually use the DDR mode.

Signed-off-by: Teppei Kamijou <teppei.kamijou.yb@renesas.com>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh_mmcif: add support for bundled MMCIF IRQs
Shinya Kuribayashi [Mon, 14 Jan 2013 19:12:36 +0000 (14:12 -0500)]
mmc: sh_mmcif: add support for bundled MMCIF IRQs

On newer SoCs like R-Mobile U2, MMCIF interrupts are bundled.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh_mmcif: ensure run-time suspend call is processed before suspend
Teppei Kamijou [Wed, 12 Dec 2012 14:38:06 +0000 (15:38 +0100)]
mmc: sh_mmcif: ensure run-time suspend call is processed before suspend

With this post-v2.6.35 change applied:

commit a0a1a5fd4fb15ec61117c759fe9f5c16c53d9e9c
Author: Tejun Heo <tj@kernel.org>
Date:   Tue Jun 29 10:07:12 2010 +0200
    workqueue: reimplement workqueue freeze using max_active

freeze_workqueues_begin() was introduced and workqueue now gets frozen
before device drivers suspend operations.

We have to ensure that run-time PM suspend operation completes before
system-wide suspend is started.

Signed-off-by: Teppei Kamijou <teppei.kamijou.yb@renesas.com>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sh_mmcif: force to fail CMD52 immediately
Teppei Kamijou [Wed, 12 Dec 2012 14:38:05 +0000 (15:38 +0100)]
mmc: sh_mmcif: force to fail CMD52 immediately

mmc_rescan() sends CMD52 (SD_IO_RW_DIRECT) to reset SDIO card during
card detection. CMD52 should be ignored by SD/eMMC cards, but we can
also abort it in the driver immediately, since MMCIF doesn't support
SDIO cards anyway.

Signed-off-by: Teppei Kamijou <teppei.kamijou.yb@renesas.com>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sdhci-esdhc-imx: use slot-gpio helpers for CD and WP
Shawn Guo [Tue, 11 Dec 2012 14:32:20 +0000 (22:32 +0800)]
mmc: sdhci-esdhc-imx: use slot-gpio helpers for CD and WP

Use slot-gpio helpers to save some code in the driver.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: remove unncessary mmc_gpio_free_cd() call from slot-gpio users
Shawn Guo [Tue, 11 Dec 2012 14:32:19 +0000 (22:32 +0800)]
mmc: remove unncessary mmc_gpio_free_cd() call from slot-gpio users

Since slot-gpio uses devm_* managed functions in mmc_gpio_request_cd()
now, we can remove those mmc_gpio_free_cd() call from host drivers'
.probe() error path and .remove().

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: slot-gpio: use devm_* managed functions to ease users
Shawn Guo [Tue, 11 Dec 2012 14:32:18 +0000 (22:32 +0800)]
mmc: slot-gpio: use devm_* managed functions to ease users

Use devm_* managed functions, so that slot-gpio users do not have to
call mmc_gpio_free_ro/cd to free up resources requested in
mmc_gpio_request_ro/cd.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sdhci: query card presence from cd-gpio before asking SDHCI
Shawn Guo [Tue, 11 Dec 2012 07:23:42 +0000 (15:23 +0800)]
mmc: sdhci: query card presence from cd-gpio before asking SDHCI

Call mmc_gpio_get_cd() to query card presence from cd-gpio before
asking SDHCI.  The rationale behind this change is that flag
SDHCI_QUIRK_BROKEN_CARD_DETECTION is designed for SDHCI controller to
tell that SDHCI_PRESENT_STATE is broken, and it should be used for this
case only.  So when cd-gpio is being used, the controller should set
the flag to tell that SDHCI_PRESENT_STATE is not available.

However, the existing code will skip checking cd-gpio as long as flag
SDHCI_QUIRK_BROKEN_CARD_DETECTION is set.  Change the querying order
between cd-gpio and SDHCI to support the rationale above.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sdio: print correct UHS mode during card detection
Subhash Jadavani [Tue, 4 Dec 2012 11:36:20 +0000 (17:06 +0530)]
mmc: sdio: print correct UHS mode during card detection

When SDIO3.0 card is detected, incorrect bus speed mode
is printed as part of card detection print in kernel logs.

This change fixes it so that user won't be confused by
looking at incorrect card detection message in logs.

Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Tested-by: Jackey Shen <Jackey.Shen@amd.com>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
11 years agommc: sdio: Fix SDIO 3.0 UHS-I initialization sequence
Sujit Reddy Thumma [Tue, 4 Dec 2012 11:36:19 +0000 (17:06 +0530)]
mmc: sdio: Fix SDIO 3.0 UHS-I initialization sequence

According to UHS-I initialization sequence for SDIO 3.0 cards,
the host must set bit[24] (S18R) of OCR register during OCR
handshake to know whether the SDIO card is capable of doing
1.8V I/O.

Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Reviewed-by: Johan Rudholm <johan.rudholm@stericsson.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>