mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-20 19:44:23 +00:00
feat(versal): replace irq array with switch case
Replaced array of interrupt to PM node index map with switch-case for Versal. As a result, the size of code got reduced by 527 bytes. In case of error return invalid node index i.e. XPM_NODEIDX_DEV_MIN. Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com> Change-Id: Ifb17366362e2d1757d8933e1ce29083f7ad86b8f
This commit is contained in:
parent
c38d90f796
commit
0ec6c31320
1 changed files with 68 additions and 49 deletions
|
@ -50,54 +50,6 @@ static const struct pm_proc pm_procs_all[] = {
|
||||||
|
|
||||||
const struct pm_proc *primary_proc = &pm_procs_all[0];
|
const struct pm_proc *primary_proc = &pm_procs_all[0];
|
||||||
|
|
||||||
/* Interrupt to PM node index map */
|
|
||||||
static enum pm_device_node_idx irq_node_map[IRQ_MAX + 1] = {
|
|
||||||
[13] = XPM_NODEIDX_DEV_GPIO,
|
|
||||||
[14] = XPM_NODEIDX_DEV_I2C_0,
|
|
||||||
[15] = XPM_NODEIDX_DEV_I2C_1,
|
|
||||||
[16] = XPM_NODEIDX_DEV_SPI_0,
|
|
||||||
[17] = XPM_NODEIDX_DEV_SPI_1,
|
|
||||||
[18] = XPM_NODEIDX_DEV_UART_0,
|
|
||||||
[19] = XPM_NODEIDX_DEV_UART_1,
|
|
||||||
[20] = XPM_NODEIDX_DEV_CAN_FD_0,
|
|
||||||
[21] = XPM_NODEIDX_DEV_CAN_FD_1,
|
|
||||||
[22] = XPM_NODEIDX_DEV_USB_0,
|
|
||||||
[23] = XPM_NODEIDX_DEV_USB_0,
|
|
||||||
[24] = XPM_NODEIDX_DEV_USB_0,
|
|
||||||
[25] = XPM_NODEIDX_DEV_USB_0,
|
|
||||||
[26] = XPM_NODEIDX_DEV_USB_0,
|
|
||||||
[37] = XPM_NODEIDX_DEV_TTC_0,
|
|
||||||
[38] = XPM_NODEIDX_DEV_TTC_0,
|
|
||||||
[39] = XPM_NODEIDX_DEV_TTC_0,
|
|
||||||
[40] = XPM_NODEIDX_DEV_TTC_1,
|
|
||||||
[41] = XPM_NODEIDX_DEV_TTC_1,
|
|
||||||
[42] = XPM_NODEIDX_DEV_TTC_1,
|
|
||||||
[43] = XPM_NODEIDX_DEV_TTC_2,
|
|
||||||
[44] = XPM_NODEIDX_DEV_TTC_2,
|
|
||||||
[45] = XPM_NODEIDX_DEV_TTC_2,
|
|
||||||
[46] = XPM_NODEIDX_DEV_TTC_3,
|
|
||||||
[47] = XPM_NODEIDX_DEV_TTC_3,
|
|
||||||
[48] = XPM_NODEIDX_DEV_TTC_3,
|
|
||||||
[56] = XPM_NODEIDX_DEV_GEM_0,
|
|
||||||
[57] = XPM_NODEIDX_DEV_GEM_0,
|
|
||||||
[58] = XPM_NODEIDX_DEV_GEM_1,
|
|
||||||
[59] = XPM_NODEIDX_DEV_GEM_1,
|
|
||||||
[60] = XPM_NODEIDX_DEV_ADMA_0,
|
|
||||||
[61] = XPM_NODEIDX_DEV_ADMA_1,
|
|
||||||
[62] = XPM_NODEIDX_DEV_ADMA_2,
|
|
||||||
[63] = XPM_NODEIDX_DEV_ADMA_3,
|
|
||||||
[64] = XPM_NODEIDX_DEV_ADMA_4,
|
|
||||||
[65] = XPM_NODEIDX_DEV_ADMA_5,
|
|
||||||
[66] = XPM_NODEIDX_DEV_ADMA_6,
|
|
||||||
[67] = XPM_NODEIDX_DEV_ADMA_7,
|
|
||||||
[74] = XPM_NODEIDX_DEV_USB_0,
|
|
||||||
[126] = XPM_NODEIDX_DEV_SDIO_0,
|
|
||||||
[127] = XPM_NODEIDX_DEV_SDIO_0,
|
|
||||||
[128] = XPM_NODEIDX_DEV_SDIO_1,
|
|
||||||
[129] = XPM_NODEIDX_DEV_SDIO_1,
|
|
||||||
[142] = XPM_NODEIDX_DEV_RTC,
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* irq_to_pm_node_idx - Get PM node index corresponding to the interrupt number
|
* irq_to_pm_node_idx - Get PM node index corresponding to the interrupt number
|
||||||
* @irq: Interrupt number
|
* @irq: Interrupt number
|
||||||
|
@ -106,8 +58,75 @@ static enum pm_device_node_idx irq_node_map[IRQ_MAX + 1] = {
|
||||||
*/
|
*/
|
||||||
enum pm_device_node_idx irq_to_pm_node_idx(uint32_t irq)
|
enum pm_device_node_idx irq_to_pm_node_idx(uint32_t irq)
|
||||||
{
|
{
|
||||||
|
enum pm_device_node_idx dev_idx = XPM_NODEIDX_DEV_MIN;
|
||||||
|
|
||||||
assert(irq <= IRQ_MAX);
|
assert(irq <= IRQ_MAX);
|
||||||
return irq_node_map[irq];
|
|
||||||
|
switch (irq) {
|
||||||
|
case 13:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_GPIO;
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_I2C_0;
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_I2C_1;
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_SPI_0;
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_SPI_1;
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_UART_0;
|
||||||
|
break;
|
||||||
|
case 19:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_UART_1;
|
||||||
|
break;
|
||||||
|
case 20:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_CAN_FD_0;
|
||||||
|
break;
|
||||||
|
case 21:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_CAN_FD_1;
|
||||||
|
break;
|
||||||
|
case 22:
|
||||||
|
case 23:
|
||||||
|
case 24:
|
||||||
|
case 25:
|
||||||
|
case 26:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_USB_0;
|
||||||
|
break;
|
||||||
|
case 37:
|
||||||
|
case 38:
|
||||||
|
case 39:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_TTC_0;
|
||||||
|
break;
|
||||||
|
case 40:
|
||||||
|
case 41:
|
||||||
|
case 42:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_TTC_1;
|
||||||
|
break;
|
||||||
|
case 43:
|
||||||
|
case 44:
|
||||||
|
case 45:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_TTC_2;
|
||||||
|
break;
|
||||||
|
case 46:
|
||||||
|
case 47:
|
||||||
|
case 48:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_TTC_3;
|
||||||
|
break;
|
||||||
|
case 56:
|
||||||
|
case 57:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_GEM_0;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
dev_idx = XPM_NODEIDX_DEV_MIN;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return dev_idx;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue