forked from openSUSE/kernel
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/k…
…ernel/git/arm/arm-soc Pull ARM SoC driver updates from Arnd Bergmann: "These are changes for drivers that are intimately tied to some SoC and for some reason could not get merged through the respective subsystem maintainer tree. Most of the new code is for the Keystone Navigator driver, which is new base support that is going to be needed for their hardware accelerated network driver and other units. Most of the commits are for moving old code around from at91 and omap for things that are done in device drivers nowadays. - at91: move reset, poweroff, memory and clocksource code into drivers directories - socfpga: add edac driver (through arm-soc, as requested by Boris) - omap: move omap-intc code to drivers/irqchip - sunxi: added an RTC driver for sun6i - omap: mailbox driver related changes - keystone: support for the "Navigator" component - versatile: new reboot, led and soc drivers" * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (92 commits) bus: arm-ccn: Fix spurious warning message leds: add device tree bindings for register bit LEDs soc: add driver for the ARM RealView power: reset: driver for the Versatile syscon reboot leds: add a driver for syscon-based LEDs drivers/soc: ti: fix build break with modules MAINTAINERS: Add Keystone Multicore Navigator drivers entry soc: ti: add Keystone Navigator DMA support Documentation: dt: soc: add Keystone Navigator DMA bindings soc: ti: add Keystone Navigator QMSS driver Documentation: dt: soc: add Keystone Navigator QMSS bindings rtc: sunxi: Depend on platforms sun4i/sun7i that actually have the rtc rtc: sun6i: Add sun6i RTC driver irqchip: omap-intc: remove unnecessary comments irqchip: omap-intc: correct maximum number or MIR registers irqchip: omap-intc: enable TURBO idle mode irqchip: omap-intc: enable IP protection irqchip: omap-intc: remove unnecesary of_address_to_resource() call irqchip: omap-intc: comment style cleanup irqchip: omap-intc: minor improvement to omap_irq_pending() ...
- Loading branch information
Showing
108 changed files
with
7,609 additions
and
1,299 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
99 changes: 99 additions & 0 deletions
99
Documentation/devicetree/bindings/leds/register-bit-led.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
Device Tree Bindings for Register Bit LEDs | ||
|
||
Register bit leds are used with syscon multifunctional devices | ||
where single bits in a certain register can turn on/off a | ||
single LED. The register bit LEDs appear as children to the | ||
syscon device, with the proper compatible string. For the | ||
syscon bindings see: | ||
Documentation/devicetree/bindings/mfd/syscon.txt | ||
|
||
Each LED is represented as a sub-node of the syscon device. Each | ||
node's name represents the name of the corresponding LED. | ||
|
||
LED sub-node properties: | ||
|
||
Required properties: | ||
- compatible : must be "register-bit-led" | ||
- offset : register offset to the register controlling this LED | ||
- mask : bit mask for the bit controlling this LED in the register | ||
typically 0x01, 0x02, 0x04 ... | ||
|
||
Optional properties: | ||
- label : (optional) | ||
see Documentation/devicetree/bindings/leds/common.txt | ||
- linux,default-trigger : (optional) | ||
see Documentation/devicetree/bindings/leds/common.txt | ||
- default-state: (optional) The initial state of the LED. Valid | ||
values are "on", "off", and "keep". If the LED is already on or off | ||
and the default-state property is set the to same value, then no | ||
glitch should be produced where the LED momentarily turns off (or | ||
on). The "keep" setting will keep the LED at whatever its current | ||
state is, without producing a glitch. The default is off if this | ||
property is not present. | ||
|
||
Example: | ||
|
||
syscon: syscon@10000000 { | ||
compatible = "arm,realview-pb1176-syscon", "syscon"; | ||
reg = <0x10000000 0x1000>; | ||
|
||
[email protected] { | ||
compatible = "register-bit-led"; | ||
offset = <0x08>; | ||
mask = <0x01>; | ||
label = "versatile:0"; | ||
linux,default-trigger = "heartbeat"; | ||
default-state = "on"; | ||
}; | ||
[email protected] { | ||
compatible = "register-bit-led"; | ||
offset = <0x08>; | ||
mask = <0x02>; | ||
label = "versatile:1"; | ||
linux,default-trigger = "mmc0"; | ||
default-state = "off"; | ||
}; | ||
[email protected] { | ||
compatible = "register-bit-led"; | ||
offset = <0x08>; | ||
mask = <0x04>; | ||
label = "versatile:2"; | ||
linux,default-trigger = "cpu0"; | ||
default-state = "off"; | ||
}; | ||
[email protected] { | ||
compatible = "register-bit-led"; | ||
offset = <0x08>; | ||
mask = <0x08>; | ||
label = "versatile:3"; | ||
default-state = "off"; | ||
}; | ||
[email protected] { | ||
compatible = "register-bit-led"; | ||
offset = <0x08>; | ||
mask = <0x10>; | ||
label = "versatile:4"; | ||
default-state = "off"; | ||
}; | ||
[email protected] { | ||
compatible = "register-bit-led"; | ||
offset = <0x08>; | ||
mask = <0x20>; | ||
label = "versatile:5"; | ||
default-state = "off"; | ||
}; | ||
[email protected] { | ||
compatible = "register-bit-led"; | ||
offset = <0x08>; | ||
mask = <0x40>; | ||
label = "versatile:6"; | ||
default-state = "off"; | ||
}; | ||
[email protected] { | ||
compatible = "register-bit-led"; | ||
offset = <0x08>; | ||
mask = <0x80>; | ||
label = "versatile:7"; | ||
default-state = "off"; | ||
}; | ||
}; |
108 changes: 108 additions & 0 deletions
108
Documentation/devicetree/bindings/mailbox/omap-mailbox.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
OMAP2+ Mailbox Driver | ||
===================== | ||
|
||
The OMAP mailbox hardware facilitates communication between different processors | ||
using a queued mailbox interrupt mechanism. The IP block is external to the | ||
various processor subsystems and is connected on an interconnect bus. The | ||
communication is achieved through a set of registers for message storage and | ||
interrupt configuration registers. | ||
|
||
Each mailbox IP block has a certain number of h/w fifo queues and output | ||
interrupt lines. An output interrupt line is routed to an interrupt controller | ||
within a processor subsystem, and there can be more than one line going to a | ||
specific processor's interrupt controller. The interrupt line connections are | ||
fixed for an instance and are dictated by the IP integration into the SoC | ||
(excluding the SoCs that have a Interrupt Crossbar IP). Each interrupt line is | ||
programmable through a set of interrupt configuration registers, and have a rx | ||
and tx interrupt source per h/w fifo. Communication between different processors | ||
is achieved through the appropriate programming of the rx and tx interrupt | ||
sources on the appropriate interrupt lines. | ||
|
||
The number of h/w fifo queues and interrupt lines dictate the usable registers. | ||
All the current OMAP SoCs except for the newest DRA7xx SoC has a single IP | ||
instance. DRA7xx has multiple instances with different number of h/w fifo queues | ||
and interrupt lines between different instances. The interrupt lines can also be | ||
routed to different processor sub-systems on DRA7xx as they are routed through | ||
the Crossbar, a kind of interrupt router/multiplexer. | ||
|
||
Mailbox Device Node: | ||
==================== | ||
A Mailbox device node is used to represent a Mailbox IP instance within a SoC. | ||
The sub-mailboxes are represented as child nodes of this parent node. | ||
|
||
Required properties: | ||
-------------------- | ||
- compatible: Should be one of the following, | ||
"ti,omap2-mailbox" for OMAP2420, OMAP2430 SoCs | ||
"ti,omap3-mailbox" for OMAP3430, OMAP3630 SoCs | ||
"ti,omap4-mailbox" for OMAP44xx, OMAP54xx, AM33xx, | ||
AM43xx and DRA7xx SoCs | ||
- reg: Contains the mailbox register address range (base | ||
address and length) | ||
- interrupts: Contains the interrupt information for the mailbox | ||
device. The format is dependent on which interrupt | ||
controller the OMAP device uses | ||
- ti,hwmods: Name of the hwmod associated with the mailbox | ||
- ti,mbox-num-users: Number of targets (processor devices) that the mailbox | ||
device can interrupt | ||
- ti,mbox-num-fifos: Number of h/w fifo queues within the mailbox IP block | ||
|
||
Child Nodes: | ||
============ | ||
A child node is used for representing the actual sub-mailbox device that is | ||
used for the communication between the host processor and a remote processor. | ||
Each child node should have a unique node name across all the different | ||
mailbox device nodes. | ||
|
||
Required properties: | ||
-------------------- | ||
- ti,mbox-tx: sub-mailbox descriptor property defining a Tx fifo | ||
- ti,mbox-rx: sub-mailbox descriptor property defining a Rx fifo | ||
|
||
Sub-mailbox Descriptor Data | ||
--------------------------- | ||
Each of the above ti,mbox-tx and ti,mbox-rx properties should have 3 cells of | ||
data that represent the following: | ||
Cell #1 (fifo_id) - mailbox fifo id used either for transmitting | ||
(ti,mbox-tx) or for receiving (ti,mbox-rx) | ||
Cell #2 (irq_id) - irq identifier index number to use from the parent's | ||
interrupts data. Should be 0 for most of the cases, a | ||
positive index value is seen only on mailboxes that have | ||
multiple interrupt lines connected to the MPU processor. | ||
Cell #3 (usr_id) - mailbox user id for identifying the interrupt line | ||
associated with generating a tx/rx fifo interrupt. | ||
|
||
Example: | ||
-------- | ||
|
||
/* OMAP4 */ | ||
mailbox: mailbox@4a0f4000 { | ||
compatible = "ti,omap4-mailbox"; | ||
reg = <0x4a0f4000 0x200>; | ||
interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; | ||
ti,hwmods = "mailbox"; | ||
ti,mbox-num-users = <3>; | ||
ti,mbox-num-fifos = <8>; | ||
mbox_ipu: mbox_ipu { | ||
ti,mbox-tx = <0 0 0>; | ||
ti,mbox-rx = <1 0 0>; | ||
}; | ||
mbox_dsp: mbox_dsp { | ||
ti,mbox-tx = <3 0 0>; | ||
ti,mbox-rx = <2 0 0>; | ||
}; | ||
}; | ||
|
||
/* AM33xx */ | ||
mailbox: mailbox@480C8000 { | ||
compatible = "ti,omap4-mailbox"; | ||
reg = <0x480C8000 0x200>; | ||
interrupts = <77>; | ||
ti,hwmods = "mailbox"; | ||
ti,mbox-num-users = <4>; | ||
ti,mbox-num-fifos = <8>; | ||
mbox_wkupm3: wkup_m3 { | ||
ti,mbox-tx = <0 0 0>; | ||
ti,mbox-rx = <0 0 3>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
* sun6i Real Time Clock | ||
|
||
RTC controller for the Allwinner A31 | ||
|
||
Required properties: | ||
- compatible : Should be "allwinner,sun6i-a31-rtc" | ||
- reg : physical base address of the controller and length of | ||
memory mapped region. | ||
- interrupts : IRQ lines for the RTC alarm 0 and alarm 1, in that order. | ||
|
||
Example: | ||
|
||
rtc: rtc@01f00000 { | ||
compatible = "allwinner,sun6i-a31-rtc"; | ||
reg = <0x01f00000 0x54>; | ||
interrupts = <0 40 4>, <0 41 4>; | ||
}; |
111 changes: 111 additions & 0 deletions
111
Documentation/devicetree/bindings/soc/ti/keystone-navigator-dma.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
Keystone Navigator DMA Controller | ||
|
||
This document explains the device tree bindings for the packet dma | ||
on keystone devices. The Keystone Navigator DMA driver sets up the dma | ||
channels and flows for the QMSS(Queue Manager SubSystem) who triggers | ||
the actual data movements across clients using destination queues. Every | ||
client modules like NETCP(Network Coprocessor), SRIO(Serial Rapid IO), | ||
CRYPTO Engines etc has its own instance of dma hardware. QMSS has also | ||
an internal packet DMA module which is used as an infrastructure DMA | ||
with zero copy. | ||
|
||
Navigator DMA cloud layout: | ||
------------------ | ||
| Navigator DMAs | | ||
------------------ | ||
| | ||
|-> DMA instance #0 | ||
| | ||
|-> DMA instance #1 | ||
. | ||
. | ||
| | ||
|-> DMA instance #n | ||
|
||
Navigator DMA properties: | ||
Required properties: | ||
- compatible: Should be "ti,keystone-navigator-dma" | ||
- clocks: phandle to dma instances clocks. The clock handles can be as | ||
many as the dma instances. The order should be maintained as per | ||
the dma instances. | ||
- ti,navigator-cloud-address: Should contain base address for the multi-core | ||
navigator cloud and number of addresses depends on SOC integration | ||
configuration.. Navigator cloud global address needs to be programmed | ||
into DMA and the DMA uses it as the physical addresses to reach queue | ||
managers. Note that these addresses though points to queue managers, | ||
they are relevant only from DMA perspective. The QMSS may not choose to | ||
use them since it has a different address space view to reach all | ||
its components. | ||
|
||
DMA instance properties: | ||
Required properties: | ||
- reg: Should contain register location and length of the following dma | ||
register regions. Register regions should be specified in the following | ||
order. | ||
- Global control register region (global). | ||
- Tx DMA channel configuration register region (txchan). | ||
- Rx DMA channel configuration register region (rxchan). | ||
- Tx DMA channel Scheduler configuration register region (txsched). | ||
- Rx DMA flow configuration register region (rxflow). | ||
|
||
Optional properties: | ||
- reg-names: Names for the register regions. | ||
- ti,enable-all: Enable all DMA channels vs clients opening specific channels | ||
what they need. This property is useful for the userspace fast path | ||
case where the linux drivers enables the channels used by userland | ||
stack. | ||
- ti,loop-back: To loopback Tx streaming I/F to Rx streaming I/F. Used for | ||
infrastructure transfers. | ||
- ti,rx-retry-timeout: Number of dma cycles to wait before retry on buffer | ||
starvation. | ||
|
||
Example: | ||
|
||
knav_dmas: knav_dmas@0 { | ||
compatible = "ti,keystone-navigator-dma"; | ||
clocks = <&papllclk>, <&clkxge>; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
ranges; | ||
ti,navigator-cloud-address = <0x23a80000 0x23a90000 | ||
0x23aa0000 0x23ab0000>; | ||
|
||
dma_gbe: dma_gbe@0 { | ||
reg = <0x2004000 0x100>, | ||
<0x2004400 0x120>, | ||
<0x2004800 0x300>, | ||
<0x2004c00 0x120>, | ||
<0x2005000 0x400>; | ||
reg-names = "global", "txchan", "rxchan", | ||
"txsched", "rxflow"; | ||
}; | ||
|
||
dma_xgbe: dma_xgbe@0 { | ||
reg = <0x2fa1000 0x100>, | ||
<0x2fa1400 0x200>, | ||
<0x2fa1800 0x200>, | ||
<0x2fa1c00 0x200>, | ||
<0x2fa2000 0x400>; | ||
reg-names = "global", "txchan", "rxchan", | ||
"txsched", "rxflow"; | ||
}; | ||
}; | ||
|
||
Navigator DMA client: | ||
Required properties: | ||
- ti,navigator-dmas: List of one or more DMA specifiers, each consisting of | ||
- A phandle pointing to DMA instance node | ||
- A DMA channel number as a phandle arg. | ||
- ti,navigator-dma-names: Contains dma channel name for each DMA specifier in | ||
the 'ti,navigator-dmas' property. | ||
|
||
Example: | ||
|
||
netcp: netcp@2090000 { | ||
.. | ||
ti,navigator-dmas = <&dma_gbe 22>, | ||
<&dma_gbe 23>, | ||
<&dma_gbe 8>; | ||
ti,navigator-dma-names = "netrx0", "netrx1", "nettx"; | ||
.. | ||
}; |
Oops, something went wrong.