android-sdk/kernel-video.git
6 years agoMerge branch 'platform-ti-linux-3.14.y' of git://git.ti.com/~rrnayak/ti-linux-kernel... ti-linux-3.14.y ti-linux-3.14.y-mm
Dan Murphy [Tue, 2 Sep 2014 17:42:20 +0000 (12:42 -0500)]
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: add "ti,gpio-gate-clock" controlled clock
  ARM: DTS: dra72-evm: Rename mmc2_3v3 regulator to the board level power name
  ARM: DTS: dra7-evm: Rename mmc2_3v3 regulator to the board level power name
  clk: ti: set CLK_SET_RATE_NO_REPARENT for ti,mux-clock
  clk: ti: fix clk_init retry logic with generic of_clk_init use

Conflicts:
arch/arm/boot/dts/dra7-evm.dts
arch/arm/boot/dts/dra72-evm.dts

Signed-off-by: Dan Murphy <DMurphy@ti.com>
6 years agoclk: ti: add "ti,gpio-gate-clock" controlled clock
Jyri Sarha [Thu, 28 Aug 2014 09:42:31 +0000 (12:42 +0300)]
clk: ti: add "ti,gpio-gate-clock" controlled clock

The added ti,gpio-gate-clock is a basic clock that can be enabled and
disabled trough a gpio output. The DT binding document for the clock
is also added. For EPROBE_DEFER handling the registering of the clock
has to be delayed until of_clk_get() call time.

Acked-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Jyri Sarha <jsarha@ti.com>
6 years agoMerge branch 'connectivity-ti-linux-3.14.y' of git://git.ti.com/connectivity-integrat...
Dan Murphy [Tue, 2 Sep 2014 14:33:17 +0000 (09:33 -0500)]
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:
  drivers: net: cpsw: switch-config: set/get port state
  drivers: net: cpsw: switch-config: unknown vlan handling
  ARM: OMAP2+: gpmc: Sanity check GPMC fck on probe
  ARM: OMAP2+: gpmc: Don't complain if wait pin is used without r/w monitoring
  ARM: dts: am43xx-epos-evm: Don't use read/write wait monitoring
  ARM: dts: am437x-gp-evm: Don't use read/write wait monitoring
  ARM: dts: am43xx-evm: Use BCH16 ECC scheme instead of BCH8

Signed-off-by: Dan Murphy <DMurphy@ti.com>
6 years agodrivers: net: cpsw: switch-config: set/get port state
Mugunthan V N [Tue, 2 Sep 2014 13:04:21 +0000 (18:34 +0530)]
drivers: net: cpsw: switch-config: set/get port state

Configuring port states handling of the packet switching to the slave port
like disabling packet forwarding/learning.

Note: Using this interface an user can disable all the slave ports which
      will bring down the Ethernet interface.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agodrivers: net: cpsw: switch-config: unknown vlan handling
Mugunthan V N [Tue, 2 Sep 2014 13:04:20 +0000 (18:34 +0530)]
drivers: net: cpsw: switch-config: unknown vlan handling

Currently only known VLANs are handled inside the switch, when an
unknown VLAN is received the switch will drop the packets. This
ioctl allows user to subscribe the ports for unknown VLAN ids, then
switch will start forwarding unknown VLAN packets as configured by
the user. Additional features of the unknown vlan handling of the
switch other than port forwarding are untag on egress, registered
and unregistered multicast of the unknown VLAN ids

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: OMAP2+: gpmc: Sanity check GPMC fck on probe
Roger Quadros [Mon, 1 Sep 2014 12:18:56 +0000 (15:18 +0300)]
ARM: OMAP2+: gpmc: Sanity check GPMC fck on probe

This prevents potential division by zero errors
if GPMC fck turns out to be zero due to faulty clock
data.

Use resource managed clk_get() API.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: OMAP2+: gpmc: Don't complain if wait pin is used without r/w monitoring
Roger Quadros [Mon, 1 Sep 2014 11:36:09 +0000 (14:36 +0300)]
ARM: OMAP2+: gpmc: Don't complain if wait pin is used without r/w monitoring

For NAND read & write wait pin monitoring must be kept disabled as the
wait pin is only used to indicate NAND device ready status and not to
extend each read/write cycle.

So don't print a warning if wait pin is specified while read/write
monitoring is not in the device tree.

Sanity check wait pin number irrespective if read/write monitoring is
set or not.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: dts: am43xx-epos-evm: Don't use read/write wait monitoring
Roger Quadros [Mon, 1 Sep 2014 11:36:08 +0000 (14:36 +0300)]
ARM: dts: am43xx-epos-evm: Don't use read/write wait monitoring

NAND uses wait pin only to indicate device readiness after
a block/page operation. It is not use to extend individual
read/write cycle and so read/write wait pin monitoring must
be disabled for NAND.

Add gpmc wait pin information as the NAND uses wait pin 0
for device ready indication.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: dts: am437x-gp-evm: Don't use read/write wait monitoring
Roger Quadros [Mon, 1 Sep 2014 11:36:07 +0000 (14:36 +0300)]
ARM: dts: am437x-gp-evm: Don't use read/write wait monitoring

NAND uses wait pin only to indicate device readiness after
a block/page operation. It is not use to extend individual
read/write cycle and so read/write wait pin monitoring must
be disabled for NAND.

This patch also gets rid of the below warning when NAND is
accessed for the first time.

omap_l3_noc 44000000.ocp: L3 application error: target 13 mod:1 (unclearable)

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: dts: am43xx-evm: Use BCH16 ECC scheme instead of BCH8
Roger Quadros [Mon, 1 Sep 2014 11:36:06 +0000 (14:36 +0300)]
ARM: dts: am43xx-evm: Use BCH16 ECC scheme instead of BCH8

Both the am43xx EVMs use a NAND chip with page size 4096 bytes
and spare area of 225 bytes per page.

For such a setup it is preferrable to use BCH16 ECC scheme over
BCH8. This also makes it compatible with ROM code ECC scheme so
we can boot with NAND after flashing from kernel.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: DTS: dra72-evm: Rename mmc2_3v3 regulator to the board level power name
Peter Ujfalusi [Mon, 1 Sep 2014 11:36:00 +0000 (17:06 +0530)]
ARM: DTS: dra72-evm: Rename mmc2_3v3 regulator to the board level power name

The power line feeding the SD card is also used by other devices on the EVM.
Use generic name instead of mmc2_3v3 so when other devices want to use the
same regulator it will look a bit better.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
6 years agoARM: DTS: dra7-evm: Rename mmc2_3v3 regulator to the board level power name
Peter Ujfalusi [Thu, 28 Aug 2014 11:26:08 +0000 (14:26 +0300)]
ARM: DTS: dra7-evm: Rename mmc2_3v3 regulator to the board level power name

mmc2_3v3 is derived from the board level evm_3v3_sw power line and other
components are using the same line for their power needs.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
6 years agoMerge branch 'rpmsg-ti-linux-3.14.y' of git://git.ti.com/rpmsg/rpmsg into ti-linux...
Dan Murphy [Mon, 1 Sep 2014 23:10:24 +0000 (18:10 -0500)]
Merge branch 'rpmsg-ti-linux-3.14.y' of git://git.ti.com/rpmsg/rpmsg into ti-linux-3.14.y

TI-Feature: rpmsg-ti-linux-3.14.y
TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
TI-Branch:

* 'rpmsg-ti-linux-3.14.y' of git://git.ti.com/rpmsg/rpmsg: (128 commits)
  ti_config_fragments: rpmsg: Add remoteproc and rpmsg modules
  net/rpmsg: add support for new rpmsg sockets
  rpmsg: add api for creating and deleting rpmsg channels
  drm/omap: flush the mapped page in kmap/kunmap
  rpmsg: rpc: introduce a new rpmsg_rpc driver
  ARM: OMAP: DRA7: change IPU1 clk domain to SWSUP for proper boot
  ARM: dts: beagle-x15: Enable IPU & DSP rproc and CMA nodes
  ARM: dts: beagle-x15: Add mailboxes, timers for rprocs
  ARM: dts: beagle-x15: Add CMA reserved memory nodes for IPUs & DSPs
  ARM: dts: dra72-evm: Enable DSP1 & IPU rproc and CMA nodes
  ARM: dts: dra72-evm: Add mailboxes, timers for rprocs
  ARM: dts: dra72-evm: Add CMA reserved memory nodes for IPUs & DSP1
  ARM: dts: dra7-evm: Add watchdog timers for IPU2
  ARM: dts: dra7-evm: Enable IPU & DSP rproc and CMA nodes
  ARM: dts: dra7-evm: Add timers to IPUs and DSPs
  ARM: dts: dra7-evm: Add mailboxes to IPU and DSP nodes
  ARM: dts: dra7-evm: Add CMA reserved memory nodes for IPUs & DSPs
  ARM: dts: DRA72x: Add aliases for rproc nodes
  ARM: dts: DRA74x: Add aliases for rproc nodes
  ARM: OMAP2+: Add pdata-quirks for DSP2 rproc on DRA74x
  ...

Conflicts:
arch/arm/boot/dts/am57xx-beagle-x15.dts
arch/arm/boot/dts/dra7-evm.dts
arch/arm/boot/dts/dra72-evm.dts
arch/arm/boot/dts/dra72x.dtsi
arch/arm/boot/dts/dra74x.dtsi
arch/arm/mach-omap2/pdata-quirks.c

Signed-off-by: Dan Murphy <DMurphy@ti.com>
6 years agoMerge branch 'pm-ti-linux-3.14.y' of git://git.ti.com/~kristo/ti-linux-kernel/pm...
Dan Murphy [Mon, 1 Sep 2014 21:05:30 +0000 (16:05 -0500)]
Merge branch 'pm-ti-linux-3.14.y' of git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree into ti-linux-3.14.y

TI-Feature: power_management_base
TI-Tree: git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree.git
TI-Branch: pm-ti-linux-3.14.y

* 'pm-ti-linux-3.14.y' of git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree: (36 commits)
  ARM: dts: am43xx: Add scale data fw to wkup_m3 node
  ARM: dts: am33xx: Add scale data fw to wkup_m3 node
  ARM: OMAP2: pm33xx: Provide i2c voltage scaling data to wkup_m3
  remoteproc: wkup_m3_rproc: Add device to rproc_ready callback
  remoteproc: wkup_m3_rproc: Introduce wkup_m3_copy_aux_data
  ARM: AM43xx: PM: disable DCOLDO DPLL PER force active to allow suspend
  ARM: AM43XX: PM: change RTC_SCRATCH1 register handling for rtc-only mode
  ARM: OMAP2+: opp33xx: Change OPP50 initialization
  ARM: OMAP2: sleep43xx: Set MPU Clockdomain to HW_AUTO after suspend
  rtc: OMAP: Add external 32k clock feature
  ARM: dts" AM437x: Correct and reorder the rtc compatibility strings
  ARM: AM33XX/AM43XX: re-order suspend-params
  ARM: AM43XX: Add RTC-only suspend
  remoteproc: wkup_m3: Add rtc_only support
  ARM: dts: AM437X: Enable RTC
  ARM: OMAP2: Add functions to save and restore clock/dpll context en-masse.
  ARM: dts: am437x-gp-evm: force enable dcdc3 regulator during suspend
  regulator: tps65218: Enable suspend configuration
  regulator: of: add support for enabling regulator during suspend
  regulator: tps65217: Enable suspend configuration
  ...

Conflicts:
arch/arm/boot/dts/am437x-sk-evm.dts
arch/arm/boot/dts/am43x-epos-evm.dts

Signed-off-by: Dan Murphy <DMurphy@ti.com>
6 years agoclk: ti: set CLK_SET_RATE_NO_REPARENT for ti,mux-clock
Tomi Valkeinen [Wed, 27 Aug 2014 17:26:58 +0000 (20:26 +0300)]
clk: ti: set CLK_SET_RATE_NO_REPARENT for ti,mux-clock

[ Upstream commit 7d5fc85d961b807c799786afd175f5d964a2109f ]

When setting the rate of a clock, by default the clock framework will
change the parent of the clock to the most suitable one in
__clk_mux_determine_rate() (most suitable by looking at the clock rate).

This is a rather dangerous default, and causes problems on AM43x when
using display and ethernet. There are multiple ways to select the clock
muxes on AM43x, and some of those clock paths have the same source
clocks for display and ethernet. When changing the clock rate for the
display subsystem, the clock framework decides to change the display mux
from the dedicated display PLL to a shared PLL which is used by the
ethernet, and then changes the rate of the shared PLL, breaking the
ethernet.

As I don't think there ever is a case where we want the clock framework
to automatically change the parent clock of a clock mux, this patch sets
the CLK_SET_RATE_NO_REPARENT for all ti,mux-clocks.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Jyri Sarha <jsarha@ti.com>
6 years agoclk: ti: fix clk_init retry logic with generic of_clk_init use
Tero Kristo [Mon, 1 Sep 2014 09:37:42 +0000 (12:37 +0300)]
clk: ti: fix clk_init retry logic with generic of_clk_init use

Adding support for using generic of_clk_init caused an issue with retrying
clock init, in such way that retry init was never attempted for failed
clocks. Fixed by exporting the retry init call into its own driver API,
and calling this after of_clk_init from low level IO init.

Fixes: e80e55ebbf2856614 ("clk: ti: change clock init to use generic of_clk_init")
Reported-by: Carlos Hernandez <ceh@ti.com>
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Tested-by: Sekhar Nori <nsekhar@ti.com>
6 years agoMerge branch 'connectivity-ti-linux-3.14.y' of git://git.ti.com/connectivity-integrat...
Dan Murphy [Mon, 1 Sep 2014 10:33:12 +0000 (05:33 -0500)]
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:
  ARM: dts: dra72-evm: Fix NAND GPMC timings
  ARM: dts: dra7-evm: Fix NAND GPMC timings
  ARM: OMAP2+: gpmc: Keep Chip Select disabled while configuring it
  ARM: OMAP2+: gpmc: Always enable A26-A11 for non NAND devices
  ARM: OMAP2+: gpmc: Error out if timings fail in gpmc_probe_generic_child()
  ARM: OMAP2+: gpmc: Print error message in set_gpmc_timing_reg()

Signed-off-by: Dan Murphy <DMurphy@ti.com>
6 years agoMerge branch 'connectivity-ti-linux-3.14.y' of git://git.ti.com/connectivity-integrat...
Dan Murphy [Mon, 1 Sep 2014 09:33:11 +0000 (04:33 -0500)]
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:
  mfd: ti_am335x_tscadc: Fix TSC operation after ADC continouous mode
  ARM: dts: omap3430-sdp: Revert to using software ECC for NAND
  ARM: OMAP2+: GPMC: Support Software ECC scheme via DT
  mtd: nand: omap: Revert to using software ECC by default

Signed-off-by: Dan Murphy <DMurphy@ti.com>
6 years agoARM: dts: dra72-evm: Fix NAND GPMC timings
Roger Quadros [Fri, 29 Aug 2014 16:11:55 +0000 (19:11 +0300)]
ARM: dts: dra72-evm: Fix NAND GPMC timings

The nand timings were scaled down by 2 to account for
the 2x rate returned by clk_get_rate(gpmc_fclk).

As the clock data is now fixed by [1], revert back to actual
timings (i.e. scale them up by 2).

[1] - commit 863fab68f5384f8941c9b0b203675d4a9890fc54
    ARM: dts: dra7xx-clocks: Fix the l3 and l4 clock rates

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: dts: dra7-evm: Fix NAND GPMC timings
Roger Quadros [Fri, 29 Aug 2014 16:11:54 +0000 (19:11 +0300)]
ARM: dts: dra7-evm: Fix NAND GPMC timings

The nand timings were scaled down by 2 to account for
the 2x rate returned by clk_get_rate(gpmc_fclk).

As the clock data is now fixed by [1], revert back to actual
timings (i.e. scale them up by 2).

[1] - commit 863fab68f5384f8941c9b0b203675d4a9890fc54
    ARM: dts: dra7xx-clocks: Fix the l3 and l4 clock rates

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: OMAP2+: gpmc: Keep Chip Select disabled while configuring it
Roger Quadros [Fri, 29 Aug 2014 16:11:53 +0000 (19:11 +0300)]
ARM: OMAP2+: gpmc: Keep Chip Select disabled while configuring it

As per the OMAP reference manual [1], the Chip Select must be
disabled (i.e. CSVALID is 0) while configuring any of the
Chip select parameters.

[1] - 10.1.5.1 Chip-Select Base Address and Region Size Configuration
http://www.ti.com/lit/pdf/swpu177

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: OMAP2+: gpmc: Always enable A26-A11 for non NAND devices
Roger Quadros [Fri, 29 Aug 2014 16:11:52 +0000 (19:11 +0300)]
ARM: OMAP2+: gpmc: Always enable A26-A11 for non NAND devices

Although RESET state of LIMITEDADDRESS bit in GPMC_CONFIG register
is 0 (i.e. A26-A11 enabled), faulty bootloaders might accidentally
set this bit. e.g. u-boot 2014.07 with CONFIG_NOR disabled.

Explicity disable LIMITEDADDRESS bit for non NAND devices so that
they can always work.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: OMAP2+: gpmc: Error out if timings fail in gpmc_probe_generic_child()
Roger Quadros [Fri, 29 Aug 2014 16:11:51 +0000 (19:11 +0300)]
ARM: OMAP2+: gpmc: Error out if timings fail in gpmc_probe_generic_child()

gpmc_cs_set_timings() returns non-zero if there was
an error while setting the GPMC timings. e.g. Timing was too
large to be accomodated with current GPMC clock frequency and available
timing range. Fail in this case, else we risk operating a NOR device
with non compliant timings.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: OMAP2+: gpmc: Print error message in set_gpmc_timing_reg()
Roger Quadros [Fri, 29 Aug 2014 16:11:50 +0000 (19:11 +0300)]
ARM: OMAP2+: gpmc: Print error message in set_gpmc_timing_reg()

Simplify set_gpmc_timing_reg() and always print error message
if the requested timing cannot be achieved due to a too fast
GPMC functional clock, irrespective if whether DEBUG is defined
or not. This should help us debug timing configuration issues,
which were otherwise simply not being displayed in the kernel log.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agoARM: dts: am43xx: Add scale data fw to wkup_m3 node
Dave Gerlach [Thu, 28 Aug 2014 19:18:53 +0000 (14:18 -0500)]
ARM: dts: am43xx: Add scale data fw to wkup_m3 node

Add appropriate scale-data-fw names for all am43xx platforms.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
6 years agoARM: dts: am33xx: Add scale data fw to wkup_m3 node
Dave Gerlach [Thu, 28 Aug 2014 19:18:52 +0000 (14:18 -0500)]
ARM: dts: am33xx: Add scale data fw to wkup_m3 node

Add appropriate scale-data-fw names for all am33xx platforms.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
6 years agoARM: OMAP2: pm33xx: Provide i2c voltage scaling data to wkup_m3
Dave Gerlach [Thu, 28 Aug 2014 19:18:51 +0000 (14:18 -0500)]
ARM: OMAP2: pm33xx: Provide i2c voltage scaling data to wkup_m3

Allow loading of a binary containing i2c scaling sequences to be
provided to the wkup_m3 firmware in order to properly scale voltage
rails on the PMIC during low power modes like DeepSleep0. Proper binary
format is determined by the FW in use.

PM Code expects firmware to have 0x0C57 present as the first two bytes
followed by one byte defining offset to sleep sequence followed by one
byte defining offset to wake sequence and then lastly both sequences.
Each sequence is a series of I2C transfers in the form:

u8 length | u8 chip address | u8 byte0/reg address | u8 byte1 | u8 byteN ..

The length indicates the number of bytes to transfer, including the
register address. The length of each transfer is limited by the I2C buffer
size of 32 bytes.

Based on previous work by Russ Dill.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
6 years agoremoteproc: wkup_m3_rproc: Add device to rproc_ready callback
Dave Gerlach [Thu, 28 Aug 2014 19:18:50 +0000 (14:18 -0500)]
remoteproc: wkup_m3_rproc: Add device to rproc_ready callback

Pass wkup_m3 device to the rproc_ready callback so that the driver user
can have a reference to the wkup_m3.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
6 years agoremoteproc: wkup_m3_rproc: Introduce wkup_m3_copy_aux_data
Dave Gerlach [Thu, 28 Aug 2014 19:18:49 +0000 (14:18 -0500)]
remoteproc: wkup_m3_rproc: Introduce wkup_m3_copy_aux_data

Introduce wkup_m3_copy_aux_data to give users of wkup_m3_rproc the
ability to copy data to a predefined data region that can be accessed by
the firmware running on the CM3.

Aux Data region is defined as the last 255 bytes of the DMEM used by the
wkup_m3.

Useful for providing i2c sequences to the CM3 firmware for scaling PMIC
voltages during low power modes.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
6 years agoARM: AM43xx: PM: disable DCOLDO DPLL PER force active to allow suspend
Tero Kristo [Fri, 29 Aug 2014 13:17:11 +0000 (16:17 +0300)]
ARM: AM43xx: PM: disable DCOLDO DPLL PER force active to allow suspend

This register is currently not properly restored by rtc-only resume, thus
force write its contents.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
6 years agoARM: AM43XX: PM: change RTC_SCRATCH1 register handling for rtc-only mode
Tero Kristo [Fri, 29 Aug 2014 13:06:20 +0000 (16:06 +0300)]
ARM: AM43XX: PM: change RTC_SCRATCH1 register handling for rtc-only mode

RTC_SCRATCH1 now contains board type in bits 16-31, and this information
is populated by bootloader. Print a warning during boot if the contents
of this register are wrong, indicating a wrong bootloader version.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
6 years agoARM: OMAP2+: opp33xx: Change OPP50 initialization
Dave Gerlach [Mon, 25 Aug 2014 23:18:39 +0000 (18:18 -0500)]
ARM: OMAP2+: opp33xx: Change OPP50 initialization

Modify how we initialize 300MHz OPP, make sure we do not accidentally enable
one and then immediately disable it if the other 300MHz OPP is not
selected by eFuse.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
6 years agoARM: OMAP2: sleep43xx: Set MPU Clockdomain to HW_AUTO after suspend
Dave Gerlach [Mon, 25 Aug 2014 23:18:38 +0000 (18:18 -0500)]
ARM: OMAP2: sleep43xx: Set MPU Clockdomain to HW_AUTO after suspend

Configure MPU CLKSTCTRL to HW_AUTO so that cpuidle is able to
automatically gate the mpu clock during WFI for additional power
savings.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
6 years agomfd: ti_am335x_tscadc: Fix TSC operation after ADC continouous mode
Vignesh R [Mon, 1 Sep 2014 06:31:06 +0000 (12:01 +0530)]
mfd: ti_am335x_tscadc: Fix TSC operation after ADC continouous mode

After enabling and disabling ADC continuous mode via sysfs, ts_print_raw
fails to return any data. This is because when ADC is configured for
continuous mode, it disables touch screen steps.These steps are not
re-enabled when ADC continuous mode is disabled. Therefore existing values
of REG_SE needs to be cached before enabling continuous mode and
disabling touch screen steps and enabling ADC steps. The cached value
are to be restored to REG_SE once ADC is disabled.

Fixes: 7ca6740cd1cd ("mfd: input: iio: ti_amm335x: Rework TSC/ADC synchronization")

Cc: stable@vger.kernel.org # v3.13+
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Vignesh R <vigneshr@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
6 years agortc: OMAP: Add external 32k clock feature
Keerthy [Tue, 26 Aug 2014 05:43:41 +0000 (11:13 +0530)]
rtc: OMAP: Add external 32k clock feature

Add external 32k clock feature.

Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: dts" AM437x: Correct and reorder the rtc compatibility strings
Keerthy [Tue, 26 Aug 2014 05:43:40 +0000 (11:13 +0530)]
ARM: dts" AM437x: Correct and reorder the rtc compatibility strings

Correct and reorder the rtc compatibility strings.

Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: AM33XX/AM43XX: re-order suspend-params
Tero Kristo [Tue, 26 Aug 2014 05:43:39 +0000 (11:13 +0530)]
ARM: AM33XX/AM43XX: re-order suspend-params

Required for AM33XX rtc-only mode support. AM33XX uses first four parameters
only, AM43XX uses all.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
[j-keerthy@ti.com] Ported to 3.14 with minor rework
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: AM43XX: Add RTC-only suspend
Tero Kristo [Tue, 26 Aug 2014 05:43:38 +0000 (11:13 +0530)]
ARM: AM43XX: Add RTC-only suspend

During RTC-only suspend, power is lost to the wkup domain, so we need to save
and restore the state of that domain. We also need to store some information
within the RTC registers so that u-boot can do the right thing at powerup.

The state is entered by getting the RTC to bring the pmic_power_en line low,
which will instruct the PMIC to disable the appropriate power rails after
putting DDR into self-refresh mode. To bring pmic_power_en low, we need to get
an ALARM2 event. Since we are running from SRAM at that point, it means
calculating what the next second is (via ASM) and programming that into the
RTC.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
[j-keerthy@ti.com] Rework and ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoremoteproc: wkup_m3: Add rtc_only support
Keerthy [Tue, 26 Aug 2014 05:43:37 +0000 (11:13 +0530)]
remoteproc: wkup_m3: Add rtc_only support

Add rtc_only support.

Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: dts: AM437X: Enable RTC
Keerthy [Tue, 26 Aug 2014 05:43:36 +0000 (11:13 +0530)]
ARM: dts: AM437X: Enable RTC

Enable RTC.

Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: OMAP2: Add functions to save and restore clock/dpll context en-masse.
Russ Dill [Tue, 26 Aug 2014 05:43:35 +0000 (11:13 +0530)]
ARM: OMAP2: Add functions to save and restore clock/dpll context en-masse.

The clock/dpll registers are in the WKUP power domain. Under both RTC-only
suspend and hibernation, these registers are lost.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
[j-keerthy@ti.com] ported to 3.14 with quite a bit of rework
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: dts: am437x-gp-evm: force enable dcdc3 regulator during suspend
Tero Kristo [Tue, 26 Aug 2014 05:43:34 +0000 (11:13 +0530)]
ARM: dts: am437x-gp-evm: force enable dcdc3 regulator during suspend

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoregulator: tps65218: Enable suspend configuration
Tero Kristo [Tue, 26 Aug 2014 05:43:33 +0000 (11:13 +0530)]
regulator: tps65218: Enable suspend configuration

This allows platform data to specify which power rails should be on or off
during RTC only suspend. This is necessary to keep DDR state while in RTC
only suspend.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
[j-keerthy@ti.com] ported to 3.14 with minor fixes
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoregulator: of: add support for enabling regulator during suspend
Tero Kristo [Tue, 26 Aug 2014 05:43:32 +0000 (11:13 +0530)]
regulator: of: add support for enabling regulator during suspend

regulator-suspend-enable is a new boolean property which can be used
to define regulators that should be enabled during suspend.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoregulator: tps65217: Enable suspend configuration
Russ Dill [Tue, 26 Aug 2014 05:43:31 +0000 (11:13 +0530)]
regulator: tps65217: Enable suspend configuration

This allows platform data to specify which power rails should be on or off
during RTC only suspend. This is necessary to keep DDR state while in RTC
only suspend.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
[j-keerthy@ti.com] ported to 3.14 with minor fixes
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: OMAP2: Drop the concept of certain power domains not being able to lose context.
Russ Dill [Tue, 26 Aug 2014 05:43:29 +0000 (11:13 +0530)]
ARM: OMAP2: Drop the concept of certain power domains not being able to lose context.

It isn't much of a win, and with hibernation, everything loses context.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
[j-keerthy@ti.com] ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: OMAP2: Add functions to save and restore pinctrl context.
Russ Dill [Tue, 26 Aug 2014 05:43:28 +0000 (11:13 +0530)]
ARM: OMAP2: Add functions to save and restore pinctrl context.

This adds a pair of context save/restore functions to save/restore the state
of a set of pinctrl registers. This simplifies some of the AM33XX PM code as
some of the pinctrl registers are lost when the per power domain loses power.
The pincrtl code can perform the necessary save/restore.

This will also be necessary for hibernation and RTC only sleep, as all
pinctrl registers all lost.

Signed-off-by: Russ Dill <Russ.Dill@gmail.com>
[t-kristo@ti.com: dropped unnecessary code]
Signed-off-by: Tero Kristo <t-kristo@ti.com>
[j-keerthy@ti.com] ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: AM43XX: Add functions to save/restore am43xx control registers
Tero Kristo [Tue, 26 Aug 2014 05:43:27 +0000 (11:13 +0530)]
ARM: AM43XX: Add functions to save/restore am43xx control registers

These registers are part of the wkup domain and are lost during RTC only
suspend and also hibernation, so storing/restoring their state is
necessary.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
[j-keerthy@ti.com] ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: AM33XX: Add functions to save/restore am33xx control registers.
Russ Dill [Tue, 26 Aug 2014 05:43:26 +0000 (11:13 +0530)]
ARM: AM33XX: Add functions to save/restore am33xx control registers.

These registers are part of the wkup domain and are lost during RTC only
suspend and also hibernation, so storing/restoring their state is
necessary.

Signed-off-by: Russ Dill <russ.dill@ti.com>
[j-keerthy@ti.com] ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: OMAP2: Add functions to save and restore powerdomain context en-masse.
Russ Dill [Tue, 26 Aug 2014 05:43:25 +0000 (11:13 +0530)]
ARM: OMAP2: Add functions to save and restore powerdomain context en-masse.

The powerdomain control registers are stored in the WKUP powerdomain on
AM33XX, which is lost on RTC-only suspend and also hibernate. This adds
context save and restore functions for those registers.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
[j-keerthy@ti.com] ported to 3.14 with
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: OMAP2: Add functions to save and restore omap hwmod context en-masse.
Russ Dill [Tue, 26 Aug 2014 05:43:24 +0000 (11:13 +0530)]
ARM: OMAP2: Add functions to save and restore omap hwmod context en-masse.

This is used to support suspend modes like RTC-only and hibernate where
the state of these registers is lost.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
[j-keerthy@ti.com] ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: OMAP2: Add functions to save and restore clockdomain context en-masse.
Russ Dill [Tue, 26 Aug 2014 05:43:23 +0000 (11:13 +0530)]
ARM: OMAP2: Add functions to save and restore clockdomain context en-masse.

This is used to support suspend modes like RTC-only and hibernate where
the state of the registers controlling clockdomains is lost.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
[j-keerthy@ti.com] ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoRTC: Add functionality to read/write rtc scratch registers.
Russ Dill [Tue, 26 Aug 2014 05:43:22 +0000 (11:13 +0530)]
RTC: Add functionality to read/write rtc scratch registers.

Many RTCs provide scratch registers that are maintained so long as the RTC
has power. Provide a generic method to access these registers.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
[j-keerthy@ti.com] ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: dts: AM43xx: setup rtc as system-power-controller
Tero Kristo [Tue, 26 Aug 2014 05:43:21 +0000 (11:13 +0530)]
ARM: dts: AM43xx: setup rtc as system-power-controller

This allows the device to enter into RTC only power mode with the help
of the RTC timer.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoMFD: Don't set TPS65217 STATUS_OFF until an actual power off event.
Russ Dill [Tue, 26 Aug 2014 05:43:20 +0000 (11:13 +0530)]
MFD: Don't set TPS65217 STATUS_OFF until an actual power off event.

This allows the TPS to be used with RTC only suspend/resume, otherwise
it powers off when attempting suspend.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
[j-keerthy@ti.com] ported to 3.14 with minor fixes
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoMFD: tps65217: add max_register property to regmap_config
Tero Kristo [Tue, 26 Aug 2014 05:43:19 +0000 (11:13 +0530)]
MFD: tps65217: add max_register property to regmap_config

This makes it possible to use regmap debugfs to access the registers from
userspace.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: dts: AM33XX: Set pmic-shutdown-controller for BeagleBone
AnilKumar Ch [Tue, 26 Aug 2014 05:43:18 +0000 (11:13 +0530)]
ARM: dts: AM33XX: Set pmic-shutdown-controller for BeagleBone

Set ti,pmic-shutdown-controller for BeagleBone in
am335x-bone-common.dts file, this flag is used by the driver to
set tps65217 PMIC status to OFF when PWR_EN toggle.

Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
[j-keerthy@ti.com] ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: dts: AM33XX: Enable system power off control in am335x-bone
AnilKumar Ch [Tue, 26 Aug 2014 05:43:17 +0000 (11:13 +0530)]
ARM: dts: AM33XX: Enable system power off control in am335x-bone

Enable system power off control for BeagleBone in am335x-bone-common.dts
file under rtc node. RTC is the incharge of controlling the system power.
This flag is used by the driver to hook up the pm_power_off system call.

Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
[j-keerthy@ti.com] ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agortc: omap: split rtc_power_off and add a delay loop at end
Tero Kristo [Tue, 26 Aug 2014 05:43:16 +0000 (11:13 +0530)]
rtc: omap: split rtc_power_off and add a delay loop at end

rtc_power_off is now split into two separate functions, which of one can
be called externally to program the power-off delays (needed for RTC-only
mode.) The actual power-off functionality is also changed to add a delay
loop of 1 second at the end to give the RTC-PMIC functionality time to
kick in.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
[j-keerthy@ti.com] ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoARM: OMAP: Rework omap-rtc poweroff for faster poweroff.
Russ Dill [Tue, 26 Aug 2014 05:43:15 +0000 (11:13 +0530)]
ARM: OMAP: Rework omap-rtc poweroff for faster poweroff.

The existing implementation could take up to 2 seconds to poweroff. The
new implementation takes up to a second.

This also fixes an issue with POWER_UP notification. Systems with
RTC power off control define the bit in the status register that
indicates that a power up has occurred with a bit that instead indicates
that ALARM2 (used for power off) has occurred.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
[j-keerthy@ti.com] ported to 3.14 with minor fixes
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agortc: OMAP: Add system pm_power_off to rtc driver
Colin Foe-Parker [Tue, 26 Aug 2014 05:43:14 +0000 (11:13 +0530)]
rtc: OMAP: Add system pm_power_off to rtc driver

Add system power off control to rtc driver which is the in-charge
of controlling the BeagleBone system power. The power_off routine
can be hooked up to "pm_power_off" system call.

System power off sequence:-
* Set PMIC STATUS_OFF when PMIC_POWER_EN is pulled low
* Enable PMIC_POWER_EN in rtc module
* Set rtc ALARM2 time
* Enable ALARM2 interrupt

Signed-off-by: Colin Foe-Parker <colin.foeparker@logicpd.com>
[anilkumar@ti.com: move poweroff additions to rtc driver]
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
[j-keerthy@ti.com] Ported to 3.14
Signed-off-by: Keerthy <j-keerthy@ti.com>
6 years agoMerge branch 'ti-linux-3.14.y-wlcore' of git.ti.com:wilink8-wlan/wilink8-wlan-ti...
Dan Murphy [Sun, 31 Aug 2014 16:32:36 +0000 (11:32 -0500)]
Merge branch 'ti-linux-3.14.y-wlcore' of git.ti.com:wilink8-wlan/wilink8-wlan-ti-linux-kernel into ti-linux-3.14.y

TI-Feature: wlcore
TI-Tree: git@git.ti.com:wilink8-wlan/wilink8-wlan-ti-linux-kernel.git
TI-Branch: ti-linux-3.14.y-wlcore

* 'ti-linux-3.14.y-wlcore' of git.ti.com:wilink8-wlan/wilink8-wlan-ti-linux-kernel:
  ti_config_fragments/wlan.cfg : Add wlan fragment
  Revert "ARM: OMAP2+: Added missing configuration to support WLAN features"

Signed-off-by: Dan Murphy <DMurphy@ti.com>
6 years agoti_config_fragments/wlan.cfg : Add wlan fragment
Yaniv Machani [Sun, 31 Aug 2014 13:50:35 +0000 (16:50 +0300)]
ti_config_fragments/wlan.cfg : Add wlan fragment

Add/Remove kernel configuration to support ti wl18xx in AMSDK

- Added security flags required for encrypted operation.
- Added softap configuration to support NAT and ip forwarding.
- Removed core modules - to allow build using backports (compat)

Signed-off-by: Yaniv Machani <yanivma@ti.com>
6 years agoRevert "ARM: OMAP2+: Added missing configuration to support WLAN features"
Yaniv Machani [Sun, 31 Aug 2014 09:02:22 +0000 (12:02 +0300)]
Revert "ARM: OMAP2+: Added missing configuration to support WLAN features"

This reverts commit 2152847e47e9da9a77c488950da58be03e2b58f4.
Extented wlcore parameters should be moved to fragments.

Signed-off-by: Yaniv Machani <yanivma@ti.com>
6 years agoti_config_fragments: rpmsg: Add remoteproc and rpmsg modules
Suman Anna [Fri, 29 Aug 2014 21:20:43 +0000 (16:20 -0500)]
ti_config_fragments: rpmsg: Add remoteproc and rpmsg modules

Add the RPMsg configuration script to enable modules required
for remoteproc/rpmsg communication with the remote processors
on various OMAP4+ SoCs.

Mailbox and IOMMU are chosen to be built-in, while remoteproc
and rpmsg stacks are chosen to be built as modules.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoMerge branch 'rproc-linux-3.14.y' of git://git.ti.com/rpmsg/remoteproc into rpmsg...
Suman Anna [Fri, 29 Aug 2014 20:39:57 +0000 (15:39 -0500)]
Merge branch 'rproc-linux-3.14.y' of git://git.ti.com/rpmsg/remoteproc into rpmsg-ti-linux-3.14.y

Pull in a fix from the remoteproc feature tree for the IPU1 boot
hang issue on 3.14 TI Integration kernel.

* 'rproc-linux-3.14.y' of git://git.ti.com/rpmsg/remoteproc:
  ARM: OMAP: DRA7: change IPU1 clk domain to SWSUP for proper boot

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoMerge branch 'rpmsg-linux-3.14.y' of git://git.ti.com/rpmsg/rpmsg into rpmsg-ti-linux...
Suman Anna [Fri, 29 Aug 2014 20:38:44 +0000 (15:38 -0500)]
Merge branch 'rpmsg-linux-3.14.y' of git://git.ti.com/rpmsg/rpmsg into rpmsg-ti-linux-3.14.y

Pull in the base rpmsg tree that adds two new rpmsg client drivers:
rpmsg-rpc & rpmsg-proto.

The rpmsg-rpc driver is currently used with the MultiMedia stack, and
needs a patch in omapdrm for proper cache flushing of the pages where
the rpc pointer translations are being handled.

The rpmsg-proto driver supports the MessageQ API in the IPC product

* 'rpmsg-linux-3.14.y' of git://git.ti.com/rpmsg/rpmsg:
  net/rpmsg: add support for new rpmsg sockets
  rpmsg: add api for creating and deleting rpmsg channels
  drm/omap: flush the mapped page in kmap/kunmap
  rpmsg: rpc: introduce a new rpmsg_rpc driver
  rpmsg: add api for getting the underlying virtio device

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agonet/rpmsg: add support for new rpmsg sockets
Ohad Ben-Cohen [Tue, 12 Mar 2013 00:01:23 +0000 (17:01 -0700)]
net/rpmsg: add support for new rpmsg sockets

Add the support for a new socket address and protocol
family: remote-processor sockets. The rpmsg protocol
driver provides the necessary support to expose a
rpmsg communication channel through the socket API
to userspace.

This patch is created from the initial rpmsg socket
support patch by Ohad on an older kernel.

Tested-by: G Anthony <a0783926@ti.com>
Signed-off-by: Ohad Ben Cohen <ohad@wizery.com>
[rtivy@ti.com: forward port and add .bind functionality]
Signed-off-by: Robert Tivy <rtivy@ti.com>
[s-anna@ti.com: rproc id retrieval logic, cleanup and uapi header split]
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agorpmsg: add api for creating and deleting rpmsg channels
Robert Tivy [Sat, 17 Aug 2013 00:23:31 +0000 (19:23 -0500)]
rpmsg: add api for creating and deleting rpmsg channels

The rpmsg channels are currently created and deleted only through
the device announcements from a remote processor. Two new exported
functions, rpmsg_create_channel and rpmsg_destroy_channel, are added
to be able to create and delete a rpmsg channel on a particular
virtual processor.

This is required for creating/deleting a channel from the HLOS-side
(needed by the rpmsg socket driver).

Signed-off-by: Robert Tivy <rtivy@ti.com>
[s-anna@ti.com: add delete channel api and documentation]
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agodrm/omap: flush the mapped page in kmap/kunmap
Erik Rainey [Tue, 17 Apr 2012 03:04:00 +0000 (22:04 -0500)]
drm/omap: flush the mapped page in kmap/kunmap

A kernel driver can access a omapdrm/gem backed buffer page through
a cycle of dma_buf_begin_cpu_access, dma_buf_kmap & dma_buf_kunmap,
dma_buf_end_cpu_access function invocations. Any changes to the
buffer by the kernel driver are not reflected properly in RAM,
so flush the cache deliberately in the kmap/kunmap dma_buf ops
implementations of the omapdrm/gem buffers.

Signed-off-by: Erik Rainey <erik.rainey@ti.com>
[s-anna@ti.com: add proper comments and commit description, port to 3.12]
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agorpmsg: rpc: introduce a new rpmsg_rpc driver
Suman Anna [Thu, 28 Feb 2013 20:50:10 +0000 (14:50 -0600)]
rpmsg: rpc: introduce a new rpmsg_rpc driver

The new rpmsg client driver, rpmsg_rpc, is introduced to provide a
framework for userspace applications to execute functions on different
remote processors.

The functions themselves are published by the remote processors by
different libraries. Each set of functions are published and supported
by a corresponding rpmsg server channel, and is exposed to the user-space
as its own device. User-space applications can open this character device,
and execute any of the published functions associated with the device.

The rpmsg-rpc driver allows any function upto 10 arguments with in-built
pointer translation. The kernel-userspace interaction allows any buffer
pointers to be replaced in the marshalled packet, provided the buffers
are obtained from allocators backed by dma_buf framework.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Erik Rainey <erik.rainey@ti.com>
6 years agoMerge branch 'platform-ti-linux-3.14.y' of git://git.ti.com/~rrnayak/ti-linux-kernel...
Dan Murphy [Fri, 29 Aug 2014 16:15:58 +0000 (11:15 -0500)]
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>
6 years agoMerge branch 'audio-display-ti-linux-3.14.y' of git://git.ti.com/~darrene/ti-linux...
Dan Murphy [Fri, 29 Aug 2014 15:41:44 +0000 (10:41 -0500)]
Merge branch 'audio-display-ti-linux-3.14.y' of git://git.ti.com/~darrene/ti-linux-kernel/audio-display-linux-feature-tree into ti-linux-3.14.y

TI-Feature: audio-display
TI-Tree: git://git.ti.com/~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-3.14.y

* 'audio-display-ti-linux-3.14.y' of git://git.ti.com/~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
  arm: dts: am335x-evm: add pinctrl sleep states for lcd
  drm/tilcdc: adopt pinctrl support
  ARM: dts: dra72-evm: Add HDMI node and tpd12s015 level shifter
  ARM: dts: dra72-evm: Add node for tlc59108 based DPI panel
  ARM: dts: am57xx_beagle_x15: add HDMI node

Conflicts:
arch/arm/boot/dts/am57xx-beagle-x15.dts
arch/arm/boot/dts/dra72-evm.dts

Signed-off-by: Dan Murphy <DMurphy@ti.com>
6 years agoclk: ti: change clock init to use generic of_clk_init
Tero Kristo [Fri, 29 Aug 2014 07:04:14 +0000 (10:04 +0300)]
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>
6 years agoMerge branch 'rproc-linux-3.14.y' of git://git.ti.com/rpmsg/remoteproc into rpmsg...
Suman Anna [Fri, 29 Aug 2014 03:36:25 +0000 (22:36 -0500)]
Merge branch 'rproc-linux-3.14.y' of git://git.ti.com/rpmsg/remoteproc into rpmsg-ti-linux-3.14.y

Pull in the updated remoteproc feature branch supporting the boot of
IPU and DSP remote processors in DRA74x/DRA72x SoCs on the various
supported DRA7 boards.

* 'rproc-linux-3.14.y' of git://git.ti.com/rpmsg/remoteproc: (1418 commits)
  ARM: dts: beagle-x15: Enable IPU & DSP rproc and CMA nodes
  ARM: dts: beagle-x15: Add mailboxes, timers for rprocs
  ARM: dts: beagle-x15: Add CMA reserved memory nodes for IPUs & DSPs
  ARM: dts: dra72-evm: Enable DSP1 & IPU rproc and CMA nodes
  ARM: dts: dra72-evm: Add mailboxes, timers for rprocs
  ARM: dts: dra72-evm: Add CMA reserved memory nodes for IPUs & DSP1
  ARM: dts: dra7-evm: Add watchdog timers for IPU2
  ARM: dts: dra7-evm: Enable IPU & DSP rproc and CMA nodes
  ARM: dts: dra7-evm: Add timers to IPUs and DSPs
  ARM: dts: dra7-evm: Add mailboxes to IPU and DSP nodes
  ARM: dts: dra7-evm: Add CMA reserved memory nodes for IPUs & DSPs
  ARM: dts: DRA72x: Add aliases for rproc nodes
  ARM: dts: DRA74x: Add aliases for rproc nodes
  ARM: OMAP2+: Add pdata-quirks for DSP2 rproc on DRA74x
  ARM: OMAP2+: Add rproc pdata-quirks for IPUs & DSP1 on DRA7
  ARM: DRA7: hwmod_data: add data for dsp2 processors
  ARM: DRA7: hwmod_data: add data for ipu and dsp1 rprocs
  ARM: dts: DRA74x: Add DSP2 processor device node
  ARM: dts: DRA7: Add common IPU and DSP nodes
  remoteproc/omap: add support for DRA7xx remote processors
  ...

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: OMAP: DRA7: change IPU1 clk domain to SWSUP for proper boot
Suman Anna [Mon, 16 Dec 2013 20:19:46 +0000 (14:19 -0600)]
ARM: OMAP: DRA7: change IPU1 clk domain to SWSUP for proper boot

This patch fixes a boot hang of the IPU1 processor on DRA7xx caused
by an improper AMMU/Unicache state upon initial deassertion of reset.

All the Cortex M3/M4 IPU processor subsystems in OMAP SoCs have a
AMMU/Unicache IP that dictates the memory attributes for addresses
seen by the processor cores. The AMMU/Unicache is configured/enabled
by the SCACHE_CONFIG.BYPASS bit - a value of 1 enables the cache and
mandates all addresses accessed by M3/M4 be defined in the AMMU. This
bit is not programmable from the host processor. The M3/M4 boot
sequence starts out with the AMMU/Unicache in disabled state, and
SYS/BIOS programs the AMMU regions and enables the Unicache during
one of its initial boot steps. This SCACHE_CONFIG.BYPASS bit is
however enabled by default whenever a RET reset is applied to the
IP, irrespective of whether it was previously enabled or not. The
AMMU registers lose their context whenever the reset is applied. The
reset is effective as long as the MMU portion of the subsystem is
enabled and clocked. This behavior is common to all the IPU subsystems
that have an AMMU/Unicache.

The IPU boot sequence involves enabling and programming the MMU, and
loading the processor and releasing the reset(s) for the processor.
The PM setup code currently sets the target state for most of the
power domains to RET, including the IPU1 power domain. The L2 MMU
can be enabled, programmed and accessed properly just fine with the
domain in hardware supervised mode, while the power domain goes
through a RET->ON->RET transition during the programming sequence.
However, the ON->RET transition asserts a RET reset, and the
SCACHE_CONFIG.BYPASS bit gets auto-set. An AMMU fault is thrown
immediately when the M3/M4 core's reset is released since the
first instruction address itself will not be defined in any valid
AMMU regions.

The ON->RET transition happens automatically on the power domain after
enabling the iommu due to the hardware supervised mode. Changing the
mode to SWSUP only maintains the domain in ON state after the iommu
is programmed and results in having the AMMU/Unicache in the expected
reset condition when booting the IPU processor.

Note that the current issue is seen only on kernels with Power
Management enabled and only for IPU1 as the IPU2 subsystem is within
CORE power domain, and CORE RET is not supported at the moment.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: beagle-x15: Enable IPU & DSP rproc and CMA nodes
Suman Anna [Tue, 19 Aug 2014 21:37:08 +0000 (16:37 -0500)]
ARM: dts: beagle-x15: Enable IPU & DSP rproc and CMA nodes

The IPU and DSP remote processor nodes and their associated
CMA pool nodes were previously disabled. The remote processor
nodes are enabled along with their corresponding CMA reserved
memory nodes for the AM57xx Beagle X15 board.

An associated pair of the rproc node and its CMA node can be
disabled later on if there is no use-case defined to use that
remote processor.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: beagle-x15: Add mailboxes, timers for rprocs
Suman Anna [Tue, 19 Aug 2014 21:38:31 +0000 (16:38 -0500)]
ARM: dts: beagle-x15: Add mailboxes, timers for rprocs

Add the required mailboxes and system timers to all the remote
processor device nodes (IPU1, IPU2, DSP1 and DSP2) for the AM57xx
Beagle X15 board. The mailbox and timer data is identical to that
of the equivalent processors on the DRA7 EVM board to maintain
firmware compatibility between both the board variants.

The watchdog timer data is also added, but only for the IPU2
remote processor node. The current firmware images do not have
watchdog configured for other processors.

The properties are chosen based on current firmwares, but can be
changed or removed as per the system integration needs after
making the appropriate changes on the firmware side.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: beagle-x15: Add CMA reserved memory nodes for IPUs & DSPs
Suman Anna [Tue, 19 Aug 2014 21:37:08 +0000 (16:37 -0500)]
ARM: dts: beagle-x15: Add CMA reserved memory nodes for IPUs & DSPs

The CMA reserved memory nodes have been added for the IPUs and the DSP
remoteproc devices on the AM57xx Beagle X15 board. The current CMA
pools and sizes are defined statically for each device. The addresses
chosen are the same as the respective processors on the DRA7 EVM board
to maintain firmware compatibility between the two boards. The starting
addresses are fixed to meet current dependencies on the remote processor
firmwares, and this will go away when the remote-side code has been
improved to gather this information runtime during its initialization.

The nodes are assigned to the respective rproc device nodes, but are
disabled so that they are not created unnecessarily without enabling
the corresponding rproc devices.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: dra72-evm: Enable DSP1 & IPU rproc and CMA nodes
Suman Anna [Mon, 11 Aug 2014 21:55:26 +0000 (16:55 -0500)]
ARM: dts: dra72-evm: Enable DSP1 & IPU rproc and CMA nodes

The IPU and DSP remote processor nodes and their associated
CMA pool nodes were previously disabled. The remote processor
nodes are enabled along with their corresponding CMA reserved
memory nodes for the DRA72 EVM board.

An associated pair of the rproc node and its CMA node can be
disabled later on if there is no use-case defined to use that
remote processor.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: dra72-evm: Add mailboxes, timers for rprocs
Suman Anna [Mon, 11 Aug 2014 21:57:38 +0000 (16:57 -0500)]
ARM: dts: dra72-evm: Add mailboxes, timers for rprocs

Add the required mailboxes and system timers to all the remote
processor device nodes (IPU1, IPU2 and DSP1) for the DRA72 EVM
board. This data is identical to that of the equivalent processors
on the DRA7 EVM board to maintain firmware compatibility between
both the SoC and board variants.

The watchdog timer data is also added, but only for the IPU2
remote processor node. The current firmware images do not have
watchdog configured for other processors.

The properties are chosen based on current firmware, but can be
changed or removed as per the system integration needs after
making the appropriate changes on the firmware side.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: dra72-evm: Add CMA reserved memory nodes for IPUs & DSP1
Suman Anna [Mon, 11 Aug 2014 21:55:26 +0000 (16:55 -0500)]
ARM: dts: dra72-evm: Add CMA reserved memory nodes for IPUs & DSP1

The CMA reserved memory nodes have been added for the IPUs and the
DSP1 remoteproc devices on DRA72 EVM board. The current CMA pools and
sizes are defined statically for each device. The addresses chosen
are the same as the respective processors on the DRA7 EVM board to
maintain firmware compatibility between the two boards. The starting
addresses are fixed to meet current dependencies on the remote
processor firmwares, and this will go away when the remote-side
code has been improved to gather this information runtime during
its initialization.

The nodes are assigned to the respective rproc device nodes, but are
disabled so that they are not created unnecessarily without enabling
the corresponding rproc devices.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: dra7-evm: Add watchdog timers for IPU2
Suman Anna [Mon, 11 Aug 2014 20:49:56 +0000 (15:49 -0500)]
ARM: dts: dra7-evm: Add watchdog timers for IPU2

The watchdog timer information has been added to the IPU2 remote
processor device node on DRA7 EVM board. The watchdog functionality
will use GPTimers 4 and 9 for each of the cores in IPU2. No watchdog
timer is added to the remaining IPU and DSP processors, but can be
easily added as per need.

The MPU-side drivers will use this data to initialize the watchdog
timers, and listen for any watchdog triggers. The BIOS-side code on
IPU2 needs to configure/refresh this timer properly to not throw a
watchdog error.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: dra7-evm: Enable IPU & DSP rproc and CMA nodes
Suman Anna [Wed, 6 Aug 2014 17:03:28 +0000 (12:03 -0500)]
ARM: dts: dra7-evm: Enable IPU & DSP rproc and CMA nodes

The IPU and DSP remote processor nodes and their associated
CMA pool nodes were previously disabled. The remote processor
nodes are enabled along with their corresponding CMA reserved
memory nodes for the DRA7 EVM board.

An associated pair of the rproc node and its CMA node can be
disabled later on if there is no use-case defined to use that
remote processor.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: dra7-evm: Add timers to IPUs and DSPs
Suman Anna [Wed, 6 Aug 2014 17:24:43 +0000 (12:24 -0500)]
ARM: dts: dra7-evm: Add timers to IPUs and DSPs

The BIOS System Tick timers have been added for the IPU and DSP
remoteproc devices for the DRA7 EVM board. The following timers
are chosen, as per the timers used on the current firmware images:
IPU2: GPTimer 3
IPU1: GPTimer 11
DSP1: GPTimer 5
DSP2: GPTimer 6

The timers are optional, but are mandatory to support device
management features such as power management and watchdog support.
The above are added to successfully boot and execute firmware images
configured with the respective timers, images that use internal
processor subsystem timers are not affected. The timers can be
changed or removed as per the system integration needs, if needed.

Each of the IPUs has two Cortex-M4 processors, and is currently
expected to be running in SMP-mode, so only a single timer suffices
to provide the BIOS tick timer. An additional timer should be added
for the second processor in IPU if it were to be run in non-SMP mode.
The timer value also needs to be unique from the ones used by other
processors so that they can be run simultaneously.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: dra7-evm: Add mailboxes to IPU and DSP nodes
Suman Anna [Wed, 6 Aug 2014 17:19:49 +0000 (12:19 -0500)]
ARM: dts: dra7-evm: Add mailboxes to IPU and DSP nodes

Add the required 'mboxes' property to all the IPU and DSP remote
processors (IPU1, IPU2, DSP1 and DSP2) on DRA7 EVM board. This
is required for running the Remote Processor Messaging (RPMsg)
stack between the host processor and each of the remote processors.

Each of the remote processors uses a single sub-mailbox node, the
IPUs are assumed to be running in SMP-mode. The chosen sub-mailboxes
match the values used in the current firmware images. This can be
changed, if needed, as per the system integration needs after making
appropriate changes on the firmware side as well.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: dra7-evm: Add CMA reserved memory nodes for IPUs & DSPs
Suman Anna [Wed, 6 Aug 2014 17:03:28 +0000 (12:03 -0500)]
ARM: dts: dra7-evm: Add CMA reserved memory nodes for IPUs & DSPs

The CMA reserved memory nodes have been added for the IPU and DSP
remoteproc devices on DRA7 EVM board. The current CMA pools and
sizes are defined statically for each device. The starting addresses
are fixed to meet current dependencies on the remote processor
firmwares, and will go away when the remote-side code has been
improved to gather this information runtime during its initialization.

The nodes are assigned to the respective rproc device nodes, but are
disabled so that they are not created unnecessarily without enabling
the corresponding rproc devices.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: DRA72x: Add aliases for rproc nodes
Suman Anna [Mon, 11 Aug 2014 22:16:52 +0000 (17:16 -0500)]
ARM: dts: DRA72x: Add aliases for rproc nodes

Add aliases for all the 3 remote processor nodes common to
all DRA72x boards. The aliases uses the stem "rproc", and
are defined in the order of the most common processors on
the DRA72x family. The ids are same as DRA74x except for
the missing DSP2.

The aliases can be overridden, if needed, in the respective
derivative board dts files.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: DRA74x: Add aliases for rproc nodes
Suman Anna [Thu, 7 Aug 2014 22:55:44 +0000 (17:55 -0500)]
ARM: dts: DRA74x: Add aliases for rproc nodes

Add aliases for all the IPU and DSP remoteproc processor
nodes common to all DRA74x boards. The aliases uses the
stem "rproc". The aliases are defined in the order of the
most common processors on the DRA74x family.

The aliases can be overridden, if needed, in the respective
derivative board dts files.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: OMAP2+: Add pdata-quirks for DSP2 rproc on DRA74x
Suman Anna [Wed, 6 Aug 2014 23:45:23 +0000 (18:45 -0500)]
ARM: OMAP2+: Add pdata-quirks for DSP2 rproc on DRA74x

The pdata quirks for the DSP2 remote processor device, present
usually on DRA74x SoCs, has been added. The DSP2 remote processor
is another identical instance as the DSP1 remote processor. The
quirks are almost the same as the DSP1 remote processor on DRA7xx,
except for the boot vector programming wrapper function.

The pdata quirks will be removed once the dependencies against
the arch/arm layres are resolved.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: OMAP2+: Add rproc pdata-quirks for IPUs & DSP1 on DRA7
Suman Anna [Wed, 6 Aug 2014 00:06:01 +0000 (19:06 -0500)]
ARM: OMAP2+: Add rproc pdata-quirks for IPUs & DSP1 on DRA7

The remote processors on DRA7xx requires similar device management
pdata-quirks (reset control, clocking, boot vector programming,
dmtimer API wrappers for enabling both system and watchdog timers)
as the IPU and DSP processors on OMAP4/OMAP5. All these pdata ops
are identical to the ones used on OMAP4/OMAP5 except for the boot
vector programming on DSPs on DRA7xx.

The pdata quirks for the most common remote processor subsystems
on DRA7xx - IPU1, IPU2 and the DSP1, have been added. The quirks
need to match the starting address in the auxdata for the respective
processors, as the same compatible string is used for all the
instances of the remote processor of the same type. The pdata
quirks will be removed once the dependencies against arch/arm
layers are resolved.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: DRA7: hwmod_data: add data for dsp2 processors
Suman Anna [Fri, 28 Jun 2013 00:10:37 +0000 (17:10 -0700)]
ARM: DRA7: hwmod_data: add data for dsp2 processors

The DRA7xx family of SoCs can have up to two identical DSP
processor subsystems, with most of them having a single DSP
processor subsystem. The second DSP is present only on DRA74x
variants currently. The relevant hwmod class and data structures
are added for this second DSP only for DRA74x SoC variants.
The hwmod data for this DSP2 is very similar to the data on
DSP1.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: DRA7: hwmod_data: add data for ipu and dsp1 rprocs
Suman Anna [Fri, 28 Jun 2013 00:10:37 +0000 (17:10 -0700)]
ARM: DRA7: hwmod_data: add data for ipu and dsp1 rprocs

The DRA7xx family of SoCs usually have two IPU and up to two DSP
remote processor subsystems. These subsystems are very similar to
the respective processor subsystems on OMAP4/OMAP5. The relevant
hwmod classes and data structures are added for IPU1, IPU2 and DSP1
remoteproc devices, the most common processors present on all DRA7xx
SoCs.

Do note that these hwmod data strucutures do not have a .modulemode
field as the devices are managed together with their corresponding
MMUs. Each of the processor subsystem and its MMU are present within
the same clock domain and requires the domain be clocked and enabled
until the last entity is disabled. The module is disabled properly
during the omap_device_idle processing of the MMU hwmod while
disabling the MMU.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: DRA74x: Add DSP2 processor device node
Suman Anna [Wed, 6 Aug 2014 23:41:16 +0000 (18:41 -0500)]
ARM: dts: DRA74x: Add DSP2 processor device node

The DRA7xx family of SoCs can contain upto two identical DSP
processor subsystems. The second DSP processor subsystem is
present only on the DRA74x variants. The processor device DT
node has been added in disabled state for this processor
subsystem in the DRA74x specific DTS file.

NOTE:
1. The node does not have any mailboxes, timers or CMA region
   assigned, they should be added in the respective board dts
   files.
2. The node should also be enabled as per the individual product
   configuration in the corresponding board dts files.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: dts: DRA7: Add common IPU and DSP nodes
Suman Anna [Wed, 6 Aug 2014 00:00:55 +0000 (19:00 -0500)]
ARM: dts: DRA7: Add common IPU and DSP nodes

The DRA7xx family of SOCs have two IPUs and upto two DSP
processor subsystems in general. The IPU processor subsystem
contains dual-core ARM Cortex-M4 processors, while the DSP
processor subsystem is based on the TI's standard TMS320C66x
DSP CorePac core. The IPUs are very similar to those on OMAP5.

Two IPUs and one DSP processor subsystems is the most common
configuration. The processor device DT nodes have been added
for these processor subsystems, and have been disabled by
default.

NOTE:
1. The nodes do not have any mailboxes, timers or CMA regions
   assigned, they should be added in the respective board dts
   files.
2. The enabling of these nodes is also left to the respective
   board dts files.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoremoteproc/omap: add support for DRA7xx remote processors
Suman Anna [Tue, 5 Aug 2014 23:57:08 +0000 (18:57 -0500)]
remoteproc/omap: add support for DRA7xx remote processors

DRA7xx SoC has two IPU and up to two DSP processor subsystems for
offloading different computation algorithms. The IPU processor
subsystem contains dual-core ARM Cortex-M4 processors, and is
very similar to those on OMAP5. The DSP processor subsystem is
based on the TI's standard TMS320C66x DSP CorePac core.

Support has been added to the OMAP remoteproc driver through new
DRA7xx specific compatibles for properly probing and booting the
all the different processor subsystem instances on DRA7 - IPU1,
IPU2, DSP1 & DSP2. A build dependency with SOC_DRA7XX is added to
enable the driver to be built in DRA7xx-only configuration.

The firmware lookup logic has to be adjusted for DRA7xx as there
are (can be) more than one instance of both the IPU and DSP remote
processors for the first time in OMAP4+ SoCs. The names (same as
prior kernel non-DT names) for the firmware images are fixed for
each processor and is expected to be as follows,
IPU1: dra7-ipu1-fw.xem4
IPU2: dra7-ipu2-fw.xem4
DSP1: dra7-dsp1-fw.xe66
DSP2: dra7-dsp2-fw.xe66

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: OMAP2+: remoteproc: add dra7 dsp boot control functions
Suman Anna [Wed, 6 Aug 2014 23:35:44 +0000 (18:35 -0500)]
ARM: OMAP2+: remoteproc: add dra7 dsp boot control functions

DRA7xx has upto two instances of DSP processors, and each DSP needs
its boot vector to be programmed in a Control module register. The
Control module API is currently limited only to the machine layers,
and the OMAP remoteproc driver programs the DSP Boot vectors using
a specific platform ops function.

The format of this boot control register is different from earlier
OMAP2+ SoCs, and is programmed by the dra7_dsp_ctrl_write_boot_addr()
function. Add the proper pdata ops implementation wrappers over this
function for properly writing the boot vector for each of the DSPs
in DRA7xx, so that they can be supplied to the OMAP remoteproc driver
through the respective platform data and pdata quirks.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoARM: OMAP2+: control: add dsp boot programming support for DRA7xx
Suman Anna [Tue, 16 Jul 2013 18:58:58 +0000 (13:58 -0500)]
ARM: OMAP2+: control: add dsp boot programming support for DRA7xx

DRA7xx has upto two instances of DSP processors, each with its own
boot control register. The format of the boot register is also
different from the earlier OMAP2+ SoCs. Support for this is added
by adding a new dra7_dsp_ctrl_write_boot_addr() function and reusing
it for omap_dsp_ctrl_write_boot_addr().

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoMerge branch 'iommu-linux-3.14.y' of git://git.ti.com/rpmsg/iommu into rproc-linux...
Suman Anna [Fri, 29 Aug 2014 00:17:12 +0000 (19:17 -0500)]
Merge branch 'iommu-linux-3.14.y' of git://git.ti.com/rpmsg/iommu into rproc-linux-3.14.y

Merge in the updated iommu feature branch into the remoteproc tree.
This merge pulls in the OMAP IOMMU driver support for both the DRA74x
and DRA72x SoC families, and on the DRA7 EVM, DRA72 EVM and AM57xx
Beagle X15 boards.

* 'iommu-linux-3.14.y' of git://git.ti.com/rpmsg/iommu: (32 commits)
  ARM: OMAP2+: Regroup pdata quirks based on SoC family
  ARM: DRA7: hwmod_data: Add reset data to second MMU on DSPs
  ARM: dts: dra7xx-clocks: Fix the l3 and l4 clock rates
  ARM: dts: dra72-evm: Mark TPS as wakeup capable pin
  ARM: AM437x: use pdata quirks for pinctrl information
  ARM: DRA7: use pdata quirks for pinctrl information
  ARM: OMAP5: use pdata quirks for pinctrl information
  pinctrl: single: AM437x: Add pinctrl compatibility
  pinctrl: single: add DRA7 pinctrl compatibility
  pinctrl: bindings: Add OMAP pinctrl binding
  ARM: dts: AM437x: switch to compatible pinctrl
  ARM: dts: DRA7: switch to compatible pinctrl
  ARM: dts: OMAP5: switch to compatible pinctrl
  ARM: dts: beagle-x15: Enable relevant IPU and DSP MMU nodes
  ARM: dts: dra72-evm: Enable relevant IPU and DSP MMU nodes
  ARM: dts: dra7-evm: Enable relevant IPU and DSP MMU nodes
  iommu/omap: add support to program multiple iommus
  iommu/omap: change the attach detection logic
  ARM: OMAP2+: devices: use sentinel terminated iommu archdata for ISP
  iommu/omap: add support for configuring dsp iommus on DRA7xx
  ...

Signed-off-by: Suman Anna <s-anna@ti.com>
Conflicts:
arch/arm/boot/dts/am57xx-beagle-x15.dts
arch/arm/boot/dts/dra7-evm.dts
arch/arm/boot/dts/dra72-evm.dts
arch/arm/mach-omap2/pdata-quirks.c

6 years agoMerge branch 'mailbox-linux-3.14.y' of git://git.ti.com/rpmsg/mailbox into rproc...
Suman Anna [Fri, 29 Aug 2014 00:00:26 +0000 (19:00 -0500)]
Merge branch 'mailbox-linux-3.14.y' of git://git.ti.com/rpmsg/mailbox into rproc-linux-3.14.y

Merge in the updated mailbox feature branch into the remoteproc tree.
This merge pulls in the mailbox support for DRA7xx SoCs. The merge also
pulls in automatically an updated platform base tree with support for
AM57xx Beagle X15 board support and other core DRA7xx features such as
IRQ Crossbar.

* 'mailbox-linux-3.14.y' of git://git.ti.com/rpmsg/mailbox: (1364 commits)
  ARM: dts: beagle-x15: Enable the system mailboxes 5 and 6
  ARM: dts: dra72-evm: Enable the system mailboxes 5 and 6
  ARM: dts: dra7-evm: Enable the system mailboxes 5 and 6
  ARM: dts: DRA72x: Add legacy sub-mailbox nodes for IPU1, IPU2 & DSP1
  ARM: dts: DRA74x: Add legacy sub-mailbox nodes for all IPUs & DSPs
  ARM: dts: DRA72x: Add sub-mailbox nodes for IPU1, IPU2 & DSP1
  ARM: dts: DRA74x: Add sub-mailbox nodes for all IPUs & DSPs
  ARM: dts: DRA7: Add interrupts property to mailbox nodes
  ARM: dts: Add am57xx-beagle-x15
  ARM: OMAP2+: board-generic: add support for AM57xx family
  ARM: dts: AM43xx: Add node for RNG
  ARM: dts: AM43xx: clk: Add RNG clk node
  ARM: AMx3xx: hwmod: Add data for RNG
  ARM: AM43xx: hwmod: Add data for DES
  ti_config_fragments/baseport.cfg: Enable Crypto hardware acclerators
  ARM: dts: DRA7: Add DT node for RNG IP
  ARM: dts: DRA7: Add DT node for SHA IP
  ARM: dts: DRA7: Add DT node for AES IP
  ARM: dts: DRA7: Add DT node for DES IP
  ARM: DRA7: hwmod: Add data for RNG IP
  ...

Signed-off-by: Suman Anna <s-anna@ti.com>
Conflicts:
arch/arm/boot/dts/omap5-uevm.dts
arch/arm/mach-omap2/omap_hwmod_54xx_data.c