summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorVignesh Raghavendra <vigneshr@ti.com>2021-05-10 20:06:03 +0530
committerLokesh Vutla <lokeshvutla@ti.com>2021-05-12 16:36:38 +0530
commitc409b4932dba6403a706f9453d627abfb5d93e20 (patch)
treee1ceef89ae0fbaf3d52a18fc56d47536c72dbc2a /include/linux
parent91f1e792fe085cd14919803b55983b8c760effb0 (diff)
downloadu-boot-c409b4932dba6403a706f9453d627abfb5d93e20.tar.gz
soc: ti: k3-navss-ringacc: Add AM64 ringacc support
AM64 dual mode rings are modeled as pair of Rings objects which has common configuration and memory buffer, but separate real-time control register sets for each direction mem2dev (forward) and dev2mem (reverse). AM64 rings must be requested only using k3_ringacc_request_rings_pair(), and forward ring must always be initialized/configured. After this any other Ringacc APIs can be used without any callers changes. Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/soc/ti/k3-navss-ringacc.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/soc/ti/k3-navss-ringacc.h b/include/linux/soc/ti/k3-navss-ringacc.h
index 9176277ff0..1e9b7d9125 100644
--- a/include/linux/soc/ti/k3-navss-ringacc.h
+++ b/include/linux/soc/ti/k3-navss-ringacc.h
@@ -238,4 +238,19 @@ int k3_nav_ringacc_ring_push_head(struct k3_nav_ring *ring, void *elem);
*/
int k3_nav_ringacc_ring_pop_tail(struct k3_nav_ring *ring, void *elem);
+/* DMA ring support */
+struct ti_sci_handle;
+
+/**
+ * struct struct k3_ringacc_init_data - Initialization data for DMA rings
+ */
+struct k3_ringacc_init_data {
+ const struct ti_sci_handle *tisci;
+ u32 tisci_dev_id;
+ u32 num_rings;
+};
+
+struct k3_nav_ringacc *k3_ringacc_dmarings_init(struct udevice *dev,
+ struct k3_ringacc_init_data *data);
+
#endif /* __SOC_TI_K3_NAVSS_RINGACC_API_H_ */