interrupt_controller: gicv3_its: add get_msi_addr API

Add get_msi_addr() callback to ITS API to retrieve the GITS_TRANSLATER
physical address to be set in the MSI message address field.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
This commit is contained in:
Neil Armstrong 2021-08-09 17:05:33 +02:00 committed by Carles Cufí
commit 318999d656
2 changed files with 18 additions and 0 deletions

View file

@ -561,6 +561,13 @@ static unsigned int gicv3_its_alloc_intid(const struct device *dev)
return atomic_inc(&nlpi_intid);
}
static uint32_t gicv3_its_get_msi_addr(const struct device *dev)
{
const struct gicv3_its_config *cfg = (const struct gicv3_its_config *)dev->config;
return cfg->base_addr + GITS_TRANSLATER;
}
#define ITS_RDIST_MAP(n) \
{ \
const struct device *dev = DEVICE_DT_INST_GET(n); \
@ -651,6 +658,7 @@ struct its_driver_api gicv3_its_api = {
.setup_deviceid = gicv3_its_init_device_id,
.map_intid = gicv3_its_map_intid,
.send_int = gicv3_its_send_int,
.get_msi_addr = gicv3_its_get_msi_addr,
};
#define GICV3_ITS_INIT(n) \