ARM: DRA7: hwmod: Fix RNG hwmod flags

RNG doesn't support module smart-idle wakeup/smart-idle property.
Currently hwmod is setting it to smart-idle, which RNG doesn't support
and giving the folllwong warning while idling:
[    0.197727] omap_hwmod: rng: _wait_target_disable failed
So enable HWMOD_SWSUP_SIDLE flag to not rely on module's smart-idle
mode.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
ARM: dts: DRA7: hwspinlock: Remove interrupts property

Hwspinlocks does not have interrupts. The interrupts
property in the dt node was added by mistake while updating
irq crossbar no's.

Acked-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Darren Etheridge <detheridge@ti.com>
ARM: dts: DRA7: DMM: Fix interrupts property

Fixing the IRQ corssbar no for DMM.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Darren Etheridge <detheridge@ti.com>
drivers: dma: omap-dma: Avoid hard-coding of the dma-request channels

The total number of dma-request channels is hard-coded. Instead read the
data from DT.

Signed-off-by: R Sricharan <r.sricharan@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
drivers: dma: of-dma: Add support for dma-request line routers

In some socs dma requests lines from the peripherals to the
dma controller can be connected either directly or through
a crossbar router. The crossbar in turn maps the peripheral
request line to a free dma-controller request line. In such
cases the crossbar associated with the particular request lines
has to configured.

This add two APIS, one to register the crossbar router and other
to retrieve the router associated with a dma request line. The
peripheral's dma-specs mentions the dma-controller, request-line and
also the IP to which it is connected to via DT.

The dma-controller will have to check if a request line is routed
and then use that router's map/unmap function to configure the
request line.

Signed-off-by: R Sricharan <r.sricharan@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
drivers: dma: omap-dma: Add a seperate xlate function to get router data

Each dma-request channel can be connected to the dma-controller either
directly or through a crossbar router. In such cases request lines
should be routed to the dma-controller. Adding a xlate function
which would retrieve and store the router data associated with a particular
channel in the dma-channel specific structure. This is used to map/unmap
the dma request lines.

Signed-off-by: R Sricharan <r.sricharan@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
drivers: omap-dma: Add crossbar line as a resource to omap_chan structure

In socs which have crossbar to route the peripheral dma request
line to the dma controller, only the peripheral crossbar request line
number is fixed and this is passed through the DT nodes. The dma request
channel to be used is allocated dynamically.

The total number of crossbar channels are registered during probe a
the dma request line free is mapped using the registered router's map function
during the device_alloc_chan_resource callback and freed with free_resource.
When a router is not registered, the dma request number is same as the
crossbar number.

Signed-off-by: R Sricharan <r.sricharan@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
drivers: dma: Add dma crossbar driver

DRA7XX dma controller IP's are preceded by a crossbar which
routes the dma requests from the peripherals to the dma
request input lines of the appropriate dma controller.
With this the dma controller's available request lines
are shared between the peripherals.

The driver maintains a list of free dma request lines and
allocates one during the map callback which is invoked as
a part the dma engine driver's device_alloc_chan_resources
callback. The allocated request line is freed during the
device_free_chan_resources.

Signed-off-by: R Sricharan <r.sricharan@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
arm: dts: dra: Add dma crossbar node

Adding the crossbar node.

Signed-off-by: R Sricharan <r.sricharan@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
arm: dts: dra: Add dma-request crossbar phandle to dma-spec

The dma-request lines from peripherals are connected to
the dma-controller through a crossbar router. Adding this
crossbar phandle to the peripheral's dma-specs. This is
used by the driver to identify the router associated with
a dma-request line and map it.

Signed-off-by: R Sricharan <r.sricharan@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
arm: dra: Enable dma crossbar support on dra7xx

Enable dma crossbar support on dra7xx

Signed-off-by: R Sricharan <r.sricharan@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
arm: dts: dra7: Change the total dma-req numbers to crossbar channels

On DRA7 there is a crossbar router which maps the peripheral
dma request channels to the dma controller inputs. The
dma-controller can receive requests from any of the crossbar
channels. So register the total number crossbar channels instead
of the shared dma-request lines.

Signed-off-by: R Sricharan <r.sricharan@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
clk: ti: change clock init to use generic of_clk_init

Previously, the TI clock driver initialized all the clocks hierarchically
under each separate clock provider node. Now, each clock that requires
IO access will instead check their parent node to find out which IO range
to use.

This patch allows the TI clock driver to use a few new features provided
by the generic of_clk_init, and also allows registration of clock nodes
outside the clock hierarchy (for example, any external clocks.)

This patch also effectively reverts cf345a4e7213d0a662683591dcec6779832da67e
as the retry mechanism for clockdomain init is no longer needed.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: Jyri Sarha <jsarha@ti.com>
Tested-by: Jyri Sarha <jsarha@ti.com>
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:
  clk: ti: change clock init to use generic of_clk_init
  arm: dts: dra7: Change the total dma-req numbers to crossbar channels
  arm: dra: Enable dma crossbar support on dra7xx
  arm: dts: dra: Add dma-request crossbar phandle to dma-spec
  arm: dts: dra: Add dma crossbar node
  drivers: dma: Add dma crossbar driver
  drivers: omap-dma: Add crossbar line as a resource to omap_chan structure
  drivers: dma: omap-dma: Add a seperate xlate function to get router data
  drivers: dma: of-dma: Add support for dma-request line routers
  drivers: dma: omap-dma: Avoid hard-coding of the dma-request channels
  ARM: dts: DRA7: DMM: Fix interrupts property
  ARM: dts: DRA7: hwspinlock: Remove interrupts property
  ARM: DRA7: hwmod: Fix RNG hwmod flags

Signed-off-by: Dan Murphy <DMurphy@ti.com>