Commit Graph

35 Commits

Author SHA1 Message Date
Linus Walleij
1b283eea62 ARM: dts: fix the SD card on the Snowball
This fixes a very annoying regression on the Snowball SD card
that has been around for a while. It turns out that the device
tree does not configure the direction pins properly, nor sets
up the pins for the voltage converter properly at boot. Unless
all things are correctly set up, the feedback clock will not
work, and makes the driver spew messages in the console (but
it works, very slowly):

root@Ux500:/ mount /dev/mmcblk0p2 /mnt/
[    9.953460] mmci-pl18x 80126000.sdi0_per1: error during DMA transfer!
[    9.960296] mmcblk0: error -110 sending status command, retrying
[    9.966461] mmcblk0: error -110 sending status command, retrying
[    9.972534] mmcblk0: error -110 sending status command, aborting

Fix this by rectifying the device tree to correspond to that of
the Ux500 HREF boards plus the DAT31DIR setting that is unique for
the Snowball, and things start working smoothly. Add in the SDR12
and SDR25 modes which this host can do without any problems.

I don't know if this has ever been correct, sadly. It works after
this patch.

Cc: stable@vger.kernel.org
Reported-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
2016-10-17 13:45:48 -07:00
Linus Walleij
ad9454b903 ARM: dts: Ux500: name the GPIO lines on Snowball
Using the new line naming mechanism from the GPIO subsystem, name
the GPIO lines on the Snowball board that are connected as
GPIO on this design.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2016-06-08 09:42:41 +02:00
Linus Walleij
ba3fb047fc ARM: dts: Ux500: move compatible string to chipset
Move the compatible string "stericsson,ab8500" from the board
definitions into the main node in the chipset file where it
belongs.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2016-06-08 09:42:40 +02:00
Linus Walleij
1b1e8e024b ARM: dts: ux500: use the GPIO DT header
Use the <dt-bindings/gpio/gpio.h> header instead of using
hardcoded values for the GPIO flags. Eradicate the totally
bogus "0x4" flag used and set that to GPIO_ACTIVE_HIGH as is
proper, switch the inverted card detect on the Snowball to
flag using GPIO_ACTIVE_LOW instead of using the MMC-specific
inversion flag.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2016-03-29 09:34:08 +02:00
Linus Walleij
c80b4010d7 ARM: ux500: Assign proper sensor IRQs for Snowball
The Snowball gyro and magnetometer DRDY (data ready) lines are used
as interrupt triggers by the IIO subsystem, triggering new data
retrieveal on edges on this signal. Thus assign them as the primary
interrupt in the device tree. The "other interrupt" coming out of
the sensors is for alarms and similar complex events, the DRDY is
for periodic measures, which is what we want.

After this the generic_buffer tool from IIO tools gives a nice
stream of readings after enabling the desired channels in sysfs.

Cc: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-11-17 09:37:09 +01:00
Sudeep Holla
4db7062c9a ARM: dts: fix gpio-keys wakeup-source property
The keyboard driver for GPIO buttons(gpio-keys) checks for one of the
two boolean properties to enable gpio buttons as wakeup source:
1. "wakeup-source" or
2. the legacy "gpio-key,wakeup"

However juno, ste-snowball and emev2-kzm9d dts file have a undetected
"wakeup" property to indictate the wakeup source.

This patch fixes it by making use of "wakeup-source" property.

Cc: Magnus Damm <magnus.damm@gmail.com>
Acked-by: Simon Horman <horms@verge.net.au>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2015-10-22 09:53:57 -07:00
Linus Walleij
1d8aca9df6 ARM: ux500: fix MMC/SD card regression
Ux500 is regressing due to commit
a21763a0b1
"pinctrl: nomadik: activate strict mux mode" which disallows
Nomadik GPIO 5 to be muxed in as a level shifter voltage select
pin, as it is currently described as being used for RX on UART1.

The behaviour is correct, instead the hardware config has been
incorrecly specified: UART1 is indeed unused on HREFv60plus and
Snowball and that is why HREFv60plus can use the pins it would
normally occupy as the voltage select line for the MMC/SD
levelshifter (Snowball uses it for I2C4).

The reason UART1 was anyway enabled on these platforms was
probably to secure the port enumeration to userspace. This
can be solved by using aliases (done in a separate patch) so
we can now deactivate UART1 and let MMC/SD use it properly
on HREFv60plus. We explicitly activate it only for the
older HREFprev60 board.

To complete, we set up the pin configuration for these pins
properly in the sdi0 node.

Cc: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
2015-07-14 11:15:57 +02:00
Linus Walleij
109978dea4 ARM: ux500: define serial port aliases
This enumerates the PL011 serial ports on the Ux500. This is
necessary to do if we want to remove one of the serial ports,
since userspace depends on console to be present on ttyAMA2
and we must not break userspace.

Cc: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
2015-07-14 11:15:42 +02:00
Arnd Bergmann
9d8a71ff5c Ux500 Device Tree changes for the v4.2 series:
Define CPU topology, connect that with CoreSight blocks,
 add sensor information to DT boards.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVUyYjAAoJEEEQszewGV1zZGIP/jiHCMNtMgFOjPxfDI3lwvpl
 p9b6YUeEVknUk0yObYmHcqt6vg71zhiAUndJV5P/dN7jN2n8Cr7JIs52uVkpGuhh
 2CkQgXTMlCpR6LnFWgUT1OMRKg6EBP/JFOJdHbFq+HD6QsBAD9oKULt9VPValtrM
 2VkktKaetXHJND7nwdC8MTKe+4oOs/YpOy+yKVYb/iWNMrTCPCFLBI5BRKLUaPdd
 A0EtGARSkCGU9QZkGvuyhI4UY1KWi4JjKfD9GNmka3FTq8y5MGjdgn1VEw9whZcW
 wtJFiTuZ9CM+Jm+WyJx6bdZwlIjMKMrGaaMDeRnoh9UQml4+DDyJJWgbeAT8rhQS
 XP5NG4I9X1RSqen1XUikPPBl2V5u1baIfaP4noLxuu4yVYfUTuC76T+k+FCAPxQu
 Ymw/RWWmPwodXrN7OBlpPW7rTUk269LVCrWpIFQkhkDnrmYH4Rs8CAv4boDd3yj1
 P4ew49Cu0Y489vR8DBndbUlXjL/ssD2Uh4DZp8fzURTfnu2P6Yzk9Q98At87uqqp
 Hz/OfLBcnX5N7myu+fMkKBf7Ju3Nz/Ho1hA/q8rsPXfazvQcYm5gL9vI1wljRn0B
 b8++F+scoiM0iEY/OpjWX8box9w+gE7lq/14QqRVpRmCNyC1JtlQT7AoXCSDMkic
 EJn4vhHoLu4Bhl9/ypND
 =+QE+
 -----END PGP SIGNATURE-----

Merge tag 'ux500-v4.2-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/dt

Merge "Ux500 Device Tree changes for the v4.2 series" form Linus Walleij:

Define CPU topology, connect that with CoreSight blocks,
add sensor information to DT boards.

* tag 'ux500-v4.2-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson:
  ARM: ux500: add the sensors to the STUIB board
  ARM: ux500: assign the sensor trigger IRQs
  ARM: ux500: fix lsm303dlh magnetometer compat string
  ARM: ux500: add CoreSight blocks to DTS file
  ARM: ux500: define CPU topology
2015-05-13 13:37:26 +02:00
Linus Walleij
22a9316702 ARM: ux500: assign the sensor trigger IRQs
The ST sensors on the Ux500 boards were not utilizing the IRQs
for data ready sample triggers. Enable this by assigning the
right GPIO lines and interrupt lines (when the GPIO lines are
used for IRQs) to the accelerometer, gyro and magnetometer
sensors.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-05-13 12:22:18 +02:00
Linus Walleij
93deea9a60 ARM: ux500: fix lsm303dlh magnetometer compat string
The magnetometer found on the Ux500 TVK and Snowball boards
is a LSM303DLH not a LSM303DLM, small differences but still
different. Put in the right compatible strings and things start
working smoothly.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-05-13 12:22:18 +02:00
Ulf Hansson
11133db7a8 ARM: ux500: Enable GPIO regulator for SD-card for snowball
Fixes: c94a4ab7af ("ARM: ux500: Disable the MMCI gpio-regulator by default")
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-04-27 09:01:02 +02:00
Ulf Hansson
53d2669844 ARM: ux500: Move GPIO regulator for SD-card into board DTSs
The GPIO regulator for the SD-card isn't a ux500 SOC configuration, but
instead it's specific to the board. Move the definition of it, into the
board DTSs.

Fixes: c94a4ab7af ("ARM: ux500: Disable the MMCI gpio-regulator by default")
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-04-27 09:01:01 +02:00
Linus Walleij
1637d480f8 pinctrl: nomadik: force-convert to generic config bindings
This converts the Nomadik pin controller and all associated device
trees to use the standard, generic config bindings for pin controllers.
There are no such device trees deployed in the wild so this is
safe to do to set a good example.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2014-10-20 09:08:26 +02:00
Linus Walleij
68d41f23ce pinctrl: nomadik: force-convert to generic mux bindings
This converts the Nomadik pin controller and all associated device
trees to use the standard, generic mux bindings for pin controllers.
There are no such device trees deployed in the wild so this is
safe to do to set a good example.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2014-10-20 09:08:26 +02:00
Linus Walleij
dbd366fdf2 ARM: ux500: disable msp2 node on Snowball
Analogous to commit 8858d88a25
that fixed commit 70b41abc15
"ARM: ux500: move MSP pin control to the device tree"
accidentally activated MSP2, giving rise to a boot scroll
scream as the kernel attempts to probe a driver for it and
fails to obtain DMA channel 14.

For some reason I forgot to fix this on the Snowball. Fix
this up by marking the node disabled again.

Cc: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Kevin Hilman <khilman@linaro.org>
2014-09-02 10:57:25 -07:00
Linus Walleij
d0e3bc8133 ARM: ux500: add misc sensors to the device trees
This adds the STMicroelectonics MEMS sensor devices to the Ux500
family device trees:

- Accelerometer
- Magnetometer
- Gyroscope
- Pressure (barometer)

Cc: Lee Jones <lee.jones@linaro.org>
Cc: Denis CIOCCA <denis.ciocca@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2014-07-07 11:54:07 +02:00
Ulf Hansson
30cdd668bb ARM: ux500: Convert to the common mmc DT bindings for highspeed mode
The mmci host driver supports the common mmc DT parser, which enables
us to use the use common names instead.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
2014-05-12 12:52:40 +02:00
Linus Walleij
8320062928 ARM: ux500: move AB8500 GPIOs to device tree
Move the AB8500 muxing and biasing settings over from the board
file to the device tree, include it in the reference designs using
the AB8500: HREF prior to v60, v60plus and Snowball. Set up these
GPIO lines using hogs, just like in the board file.

Cc: Patrice Chotard <patrice.chotard@st.com>
Cc: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2014-02-04 20:46:50 +01:00
Ulf Hansson
a1ab5e4c80 ARM: ux500: Configure regulator for I/O voltage for SD-card slot
To be able to enable SDR12|25 for SD-cards, we needed to fixup the
configuration in DT of the gpio regulator, which handles the signal
voltage level. Some configuration were missing and some were wrong.

Cc: Lee Jones <lee.jones@linaro.org>
Cc: devicetree@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-12-13 10:27:58 +01:00
Linus Walleij
4d4629fcc2 ARM: ux500: move snowball pin configs to device tree
Move the few remaining snowball pin configurations to the device
tree, reference these as hogs to the pin controller until there
are real devices that can make use of them.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-26 21:01:57 +01:00
Linus Walleij
2f4b84f8ec ARM: ux500: move snowball LED pin control to device tree
This moves the Snowball LED pin config to the device tree.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-26 21:01:57 +01:00
Linus Walleij
fd8f9eac9d ARM: ux500: convert Snowball SPI pin reference
The SPI0 block is not at all connected to the AB8500 on the
Snowball: it is connected to the external header. These pins
on the header may also be used for GPIO, but let's assume
that SPI is a probable usecase on the Snowball and mux in the
SPI block and use these for SPI.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-26 21:01:57 +01:00
Linus Walleij
a48bf4b9fc ARM: ux500: move snowball ethernet config to device tree
This transfers the muxing and biasing of the ethernet-related
pins on the snowball over to the device tree.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-26 21:01:57 +01:00
Linus Walleij
817a5b967d ARM: ux500: move MCDE pin config to device tree
This moves the MCDE pin control table out of the board file
and into the device tree. Some pins and configs have been
marked as used by sub-devices or slaves to the MCDE, such
as I2C device 0-070 which is the HDMI interface circuit
AV8100, but the pins rather belong to the MCDE SOC block
as they come out of the main ASIC. The touch screen GPIO
is not related to MCDE so this gets deleted and need to
be tied to the respective touch screen (I2C) device
once that device is added instead.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-26 21:01:56 +01:00
Linus Walleij
a12f703c5a ARM: ux500: move MUSB pin config to device tree
This moves the MUSB pin control table out of the board file
and into the device tree. Tie the config to the on-chip MUSB
device rather than the ab8500-usb device which is off-chip.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-26 21:01:55 +01:00
Linus Walleij
70b41abc15 ARM: ux500: move MSP pin control to the device tree
This moves the static, device-tied pin control configuration
out of the board file board-mop500-pins.c and into the device
tree. Add nodes for MSP0 and MSP2 on the HREF and Snowball
so we can reference the pins properly.

Cc: Lee Jones <lee.jones@linaro.org>
Cc: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-26 21:01:55 +01:00
Linus Walleij
1e66235330 ARM: ux500: move MMC/SD/SDIO pin control to the device tree
This moves the static, device-tied pin control configuration
out of the board file board-mop500-pins.c and into the device
tree. Add entries for SDI1 and SDI2 on the Snowball so that the
WLAN pins on SDI1 can be used further on, and the unused pins
on SDI2 can be put to sleep.

Cc: Lee Jones <lee.jones@linaro.org>
Cc: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-26 21:01:55 +01:00
Linus Walleij
96fee13f0f ARM: ux500: move I2C pin control to the device tree
This moves the static, device-tied pin control configuration
out of the board file board-mop500-pins.c and into the device
tree. Define possible states also for I2C4 even if it's not
used by any board file at this time.

Cc: Lee Jones <lee.jones@linaro.org>
Cc: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-26 21:01:55 +01:00
Linus Walleij
3bfdebbaeb ARM: ux500: move UART pin control to the device tree
This moves the static, device-tied pin control configuration
out of the board file board-mop500-pins.c and into the device
tree.

We create a new .dtsi-file to be shared between all the
MOP500-related boards, that include all HREF variants and
the Snowball board. Assign pin states for HREF and Snowball
boards alike.

Cc: Lee Jones <lee.jones@linaro.org>
Cc: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-26 21:01:55 +01:00
Lee Jones
6cb7ea99fd ARM: ux500: Enable CPUFreq on Snowball
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-09-26 11:09:27 +02:00
Lee Jones
7fb2afc781 ARM: ux500: Supply the Ethernet clock lookup to Snowball's DT
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-09-26 11:04:40 +02:00
Linus Walleij
8cc3168ccd ARM: ux500: delete surplus PRCMU regulator defines
The Ux500 boards are layered like this:
ste-snowball.dts includes ste-href.dtsi that includes
ste-dbx500.dtsi.

The dbx500.dtsi defines the PRCMU SoC regulators so the SoC will
probe and you can use ampersand references where need be.

However the HREF common dtsi and these two boards redefine the
same PRCMU SoC regulators with the very same names and properties
for no reason. This is like filling in the same line three
times instead of drawing it once. Just delete the surplus
references and have the PRCMU regulators defines in the SoC
files ste-dbx500.dtsi, this is enough.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-09-26 11:03:54 +02:00
Linus Walleij
2ce05a14bb ARM: ux500: fix devicetree builds
The patch set beginning with commit:
"ARM: ux500: Apply a ste-* prefix onto snowball.dts"
thru commit:
"ARM: ux500: Remove u9540.dts as it's been replaced"
altered the names of the ux500 device tree files but forgot
to:

- Rename the ccu8540-pinctrl.dtsi file

- Update #include statements from files using these
  files, so the build broke.

- Update the Makefile for the device trees so the build
  broke.

Fix it up so we can build them all again.

Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
2013-08-14 22:32:07 +02:00
Lee Jones
32ceadd7bb ARM: ux500: Apply a ste-* prefix onto snowball.dts
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
2013-08-07 15:31:56 +02:00