soc: ti: k3-navss-ringacc: Initialize base address of ring cfg registers

Initialize base address of ring config registers required to natively
setup ring cfg registers in the absence of Device Manager (DM) services
at R5 SPL stage.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
This commit is contained in:
Kishon Vijay Abraham I 2022-05-02 20:18:04 +05:30 committed by Praneeth Bajjuri
parent 07557018ce
commit 75acccd29c
1 changed files with 6 additions and 1 deletions

View File

@ -1029,8 +1029,8 @@ static int k3_nav_ringacc_init(struct udevice *dev, struct k3_nav_ringacc *ringa
struct k3_nav_ringacc *k3_ringacc_dmarings_init(struct udevice *dev,
struct k3_ringacc_init_data *data)
{
void __iomem *base_rt, *base_cfg;
struct k3_nav_ringacc *ringacc;
void __iomem *base_rt;
int i;
ringacc = devm_kzalloc(dev, sizeof(*ringacc), GFP_KERNEL);
@ -1048,6 +1048,10 @@ struct k3_nav_ringacc *k3_ringacc_dmarings_init(struct udevice *dev,
if (IS_ERR(base_rt))
return base_rt;
base_cfg = (uint32_t *)devfdt_get_addr_name(dev, "cfg");
if (IS_ERR(base_cfg))
return base_cfg;
ringacc->rings = devm_kzalloc(dev,
sizeof(*ringacc->rings) *
ringacc->num_rings * 2,
@ -1062,6 +1066,7 @@ struct k3_nav_ringacc *k3_ringacc_dmarings_init(struct udevice *dev,
for (i = 0; i < ringacc->num_rings; i++) {
struct k3_nav_ring *ring = &ringacc->rings[i];
ring->cfg = base_cfg + KNAV_RINGACC_CFG_REGS_STEP * i;
ring->rt = base_rt + k3_dmaring_RING_RT_REGS_STEP * i;
ring->parent = ringacc;
ring->ring_id = i;