ARM: dts: dra72-evm: set active_slave to 1

In dra72x EVM CPSW slave 1 is pinned out and slave 0 is connected to
expantion headers, as a side effect ethtool is not able to get phy
settings using :ethtool eth0". So set active_slave to <1> for
dra72x EVM.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
ti_config_fragments/baseport.cfg: Enable CONFIG_PREEMPT_VOLUNTARY

CONFIG_PREEMPT_NONE causes RCU sched stalls when running an in-kernel test.
CONFIG_PREEMPT_VOLUNTARY reduces the overhead and increases performance.
So enabling the same.

Signed-off-by: Joel Fernandes <joelf@ti.com>
Signed-off-by: Chase Maupin <Chase.Maupin@ti.com>
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
ti_config_fragments/baseport.cfg: Update with options for OpenSSL AF_ALG

OpenSSL AF_ALG users need these options enabled so that OpenSSL
can use the crypto drivers, enable options for the same.

Signed-off-by: Joel Fernandes <joelf@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
ARM: OMAP: DRA7xx: Make L4SEC clock domain SWSUP only

Using HWSUP for l4sec clock domain is causing warnings in HWMOD code for DRA7.
Based on some observations, once the clock domain goes into an IDLE state
(because of no activity etc), the IDLEST for the module goes to '0x2' value
which means Interface IDLE condition. So far so go, however once the MODULEMODE
is set to disabled for the particular IP, the IDLEST for the module should go
to '0x3', per the HW AUTO IDLE protocol. However this is not observed and there
is no reason per the protocl for the transition to not happen. This could
potentially be a bug in the HW AUTO state-machine.

Work around for this is to use SWSUP only for the particular clockdomain. With
this all the transitions of IDLEST happen correctly and warnings don't occur.

Signed-off-by: Joel Fernandes <joelf@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
dmaengine: omap-dma: Add memory barrier to dma_resume path

Add mb() call to resume path to ensure the necessary barrier.
Resume can happen after waking up from suspend for example.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
dmaengine: omap-dma: Restore the CLINK_CTRL in resume path

When the audio stream is paused or suspended we stop the sDMA and when it
is unpaused/resumed we start the channel without reconfiguring it.
The omap_dma_stop() clears the link configuration when we pause the dma, but
it is not setting it back on start. This will result only one audio buffer
to be played back and the DMA will stop, since the linking is disabled.
We need to restore the CLINK_CTRL register in case of resume.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Merge branch 'platform-ti-linux-3.14.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree into ti-linux-3.14.y

TI-Feature: platform_base
TI-Tree: git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree.git
TI-Branch: platform-ti-linux-3.14.y

* 'platform-ti-linux-3.14.y' of git://git.ti.com/~rrnayak/ti-linux-kernel/platform-linux-feature-tree:
  dmaengine: omap-dma: Restore the CLINK_CTRL in resume path
  dmaengine: omap-dma: Add memory barrier to dma_resume path
  ARM: OMAP: DRA7xx: Make L4SEC clock domain SWSUP only
  ti_config_fragments/baseport.cfg: Update with options for OpenSSL AF_ALG
  ti_config_fragments/baseport.cfg: Enable CONFIG_PREEMPT_VOLUNTARY

Signed-off-by: Dan Murphy <DMurphy@ti.com>
input: touchscreen: ti_am335x_tsc: Interchange touchscreen and ADC steps

This patch makes the initial changes required to workaround TSC-false
pen-up interrupts. It is required to implement these changes in order to
remove udelay in the TSC interrupt handler and false pen-up events.
The charge step is to be executed immediately after sampling X+. Hence
TSC is made to use higher numbered steps (steps 5 to 16 for 5 co-ordinate
readouts, 4 wire TSC configuration) and ADC to use lower ones. Further
X co-ordinate readouts must be the last to be sampled, thus co-ordinates
are sampled in the order Y-Z-X.

Signed-off-by: Brad Griffis <bgriffis@ti.com>
[vigneshr@ti.com: Ported the patch from v3.12 to v3.14]
Signed-off-by: Vignesh R <vigneshr@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
input: touchscreen: ti_am335x_tsc: Remove udelay in interrupt handler

TSC interrupt handler had udelay to avoid reporting of false pen-up
interrupt to user space. This patch implements workaround suggesting in
Advisory 1.0.31 of silicon errata for am335x, thus eliminating udelay
and touchscreen lag. This also improves performance of touchscreen and
eliminates sudden jump of cursor at touch release.

IDLECONFIG and CHARGECONFIG registers are to be configured
with same values in order to eliminate false pen-up events. This
workaround may result in false pen-down to be detected, hence considerable
charge step delay needs to be added.

TSC steps are disabled at the end of every sampling cycle and EOS bit is
set. Once the EOS bit is set, the TSC steps need to be re-enabled to begin
next sampling cycle.

In one shot mode, sequencer automatically disables all enabled steps at
the end of each cycle. (both ADC steps and TSC steps) Hence these steps
need not be saved in reg_se_cache for clearing these steps at a later
stage.

Signed-off-by: Brad Griffis <bgriffis@ti.com>
[vigneshr@ti.com: Ported patch from v3.12 to v3.14]
Signed-off-by: Vignesh R <vigneshr@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
HACK: ARM: dra7xx-evm: dcan: Disable DCAN

DCAN was never tested and we don't know for sure if it works.
It also produces "_wait_target_disable_ failed" errors all
over the place.

Disable DCAN on dra7 and dra72 boards till we have a working
version.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Merge branch 'connectivity-ti-linux-3.14.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel into ti-linux-3.14.y

TI-Feature: connectivity
TI-Tree: git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel.git
TI-Branch: connectivity-ti-linux-3.14.y

* 'connectivity-ti-linux-3.14.y' of git://git.ti.com/connectivity-integration-tree/connectivity-ti-linux-kernel:
  HACK: ARM: dra7xx-evm: dcan: Disable DCAN
  input: touchscreen: ti_am335x_tsc: Remove udelay in interrupt handler
  input: touchscreen: ti_am335x_tsc: Interchange touchscreen and ADC steps
  ARM: dts: dra72-evm: set active_slave to 1

Signed-off-by: Dan Murphy <DMurphy@ti.com>
backport: gpio_backlight.c from: v3.15.10

Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
firmware: am335x-pm-firmware.elf

#git://git.ti.com/ti-cm3-pm-firmware/amx3-cm3.git
#4e219d5053ee41b8fa8f85b48b1529ae4c6feb48

Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
BeagleBone pinmux helper

This patch was derived from 2 commits, but I removed the non-pinmux-helper portions
and added the helper to the bb.org_defconfig:

capemgr: Capemgr makefiles and Kconfig fragments.

Introduce a cape loader using DT overlays and dynamic
DT objects.

Makefile and Kconfig fragments.

Signed-off-by: Pantelis Antoniou <panto@antoniou-consulting.com>

Conflicts:
	arch/arm/mach-omap2/Kconfig
	drivers/misc/Kconfig
	drivers/misc/Makefile

And:

Pinmux helper driver.

    That's just a hack to get a pinmux helper driver working.

    Define in the DT

    	helper {
    		compatible = "bone-pinmux-helper";
    		pinctrl-names = "default";
    		pinctrl-0 = <&helper_pins>;
    		status = "okay";
    	};
pinmux-helper: Add runtime configuration capability

Pinctrl already supports multiple states. Just make them visible.
pinmux-helper: Switch to using kmalloc

devm_kfree warned out... why? no idea.
gpio: Introduce GPIO OF helper

A gpio OF helper driver that allows configuration to be done via
DT.
Add dir-changeable property to gpio-of-helper

Signed-off-by: Charles Steinkuehler <charles@steinkuehler.net>
am33xx.dtsi: add ocp label

Signed-off-by: Jason Kridner <jdk@ti.com>
beaglebone: added expansion header to dtb

This adds gpio and pinmux helpers to the majority of available expansion header pins
based on the cape-universal work from Charles Steinkuehler making them userspace
configurable. This is not a substitute for Capemgr as it doesn't perform the
configuration based on cape detection, nor does it enable dynamic configuration of
all types of peripherals that could be on a cape. It does, however, enable many
developers to rapidly experiment with a lesser degree of complexity.

Derived from:
https://github.com/cdsteinkuehler/beaglebone-universal-io/blob/52461b52ef3203e648399c16c7e160c848a04b5c$

Signed-off-by: Jason Kridner <jdk@ti.com>
Cc: Charles Steinkuehler <charles@steinkuehler.net>
Signed-off-by: Robert Nelson <robertcnelson@gmail.com>