Skip to content

Commit 2ced5a3

Browse files
committed
Merge tag 'drivers_soc_for_5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into arm/drivers
SOC: TI Keystone Ring Accelerator driver The Ring Accelerator (RINGACC or RA) provides hardware acceleration to enable straightforward passing of work between a producer and a consumer. There is one RINGACC module per NAVSS on TI AM65x SoCs. * tag 'drivers_soc_for_5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone: soc: ti: k3: add navss ringacc driver bindings: soc: ti: add documentation for k3 ringacc Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Olof Johansson <[email protected]>
2 parents 0619372 + 3277e8a commit 2ced5a3

File tree

5 files changed

+1472
-0
lines changed

5 files changed

+1472
-0
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
* Texas Instruments K3 NavigatorSS Ring Accelerator
2+
3+
The Ring Accelerator (RA) is a machine which converts read/write accesses
4+
from/to a constant address into corresponding read/write accesses from/to a
5+
circular data structure in memory. The RA eliminates the need for each DMA
6+
controller which needs to access ring elements from having to know the current
7+
state of the ring (base address, current offset). The DMA controller
8+
performs a read or write access to a specific address range (which maps to the
9+
source interface on the RA) and the RA replaces the address for the transaction
10+
with a new address which corresponds to the head or tail element of the ring
11+
(head for reads, tail for writes).
12+
13+
The Ring Accelerator is a hardware module that is responsible for accelerating
14+
management of the packet queues. The K3 SoCs can have more than one RA instances
15+
16+
Required properties:
17+
- compatible : Must be "ti,am654-navss-ringacc";
18+
- reg : Should contain register location and length of the following
19+
named register regions.
20+
- reg-names : should be
21+
"rt" - The RA Ring Real-time Control/Status Registers
22+
"fifos" - The RA Queues Registers
23+
"proxy_gcfg" - The RA Proxy Global Config Registers
24+
"proxy_target" - The RA Proxy Datapath Registers
25+
- ti,num-rings : Number of rings supported by RA
26+
- ti,sci-rm-range-gp-rings : TI-SCI RM subtype for GP ring range
27+
- ti,sci : phandle on TI-SCI compatible System controller node
28+
- ti,sci-dev-id : TI-SCI device id of the ring accelerator
29+
- msi-parent : phandle for "ti,sci-inta" interrupt controller
30+
31+
Optional properties:
32+
-- ti,dma-ring-reset-quirk : enable ringacc / udma ring state interoperability
33+
issue software w/a
34+
35+
Example:
36+
37+
ringacc: ringacc@3c000000 {
38+
compatible = "ti,am654-navss-ringacc";
39+
reg = <0x0 0x3c000000 0x0 0x400000>,
40+
<0x0 0x38000000 0x0 0x400000>,
41+
<0x0 0x31120000 0x0 0x100>,
42+
<0x0 0x33000000 0x0 0x40000>;
43+
reg-names = "rt", "fifos",
44+
"proxy_gcfg", "proxy_target";
45+
ti,num-rings = <818>;
46+
ti,sci-rm-range-gp-rings = <0x2>; /* GP ring range */
47+
ti,dma-ring-reset-quirk;
48+
ti,sci = <&dmsc>;
49+
ti,sci-dev-id = <187>;
50+
msi-parent = <&inta_main_udmass>;
51+
};
52+
53+
client:
54+
55+
dma_ipx: dma_ipx@<addr> {
56+
...
57+
ti,ringacc = <&ringacc>;
58+
...
59+
}

drivers/soc/ti/Kconfig

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,17 @@ config TI_SCI_PM_DOMAINS
8080
called ti_sci_pm_domains. Note this is needed early in boot before
8181
rootfs may be available.
8282

83+
config TI_K3_RINGACC
84+
bool "K3 Ring accelerator Sub System"
85+
depends on ARCH_K3 || COMPILE_TEST
86+
depends on TI_SCI_INTA_IRQCHIP
87+
help
88+
Say y here to support the K3 Ring accelerator module.
89+
The Ring Accelerator (RINGACC or RA) provides hardware acceleration
90+
to enable straightforward passing of work between a producer
91+
and a consumer. There is one RINGACC module per NAVSS on TI AM65x SoCs
92+
If unsure, say N.
93+
8394
endif # SOC_TI
8495

8596
config TI_SCI_INTA_MSI_DOMAIN

drivers/soc/ti/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ obj-$(CONFIG_ARCH_OMAP2PLUS) += omap_prm.o
1010
obj-$(CONFIG_WKUP_M3_IPC) += wkup_m3_ipc.o
1111
obj-$(CONFIG_TI_SCI_PM_DOMAINS) += ti_sci_pm_domains.o
1212
obj-$(CONFIG_TI_SCI_INTA_MSI_DOMAIN) += ti_sci_inta_msi.o
13+
obj-$(CONFIG_TI_K3_RINGACC) += k3-ringacc.o

0 commit comments

Comments
 (0)