openmv/lib/alif/Alif_CMSIS/Source/Driver_HWSEM.c
iabdalkader daf2bb30da misc: Restructure repo.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-13 08:28:34 +02:00

1242 lines
24 KiB
C

/* Copyright (C) 2022 Alif Semiconductor - All Rights Reserved.
* Use, distribution and modification of this code is permitted under the
* terms stated in the Alif Semiconductor Software License Agreement
*
* You should have received a copy of the Alif Semiconductor Software
* License Agreement with this file. If not, please write to:
* contact@alifsemi.com, or visit: https://alifsemi.com/license
*
*/
/**************************************************************************//**
* @file Driver_HWSEM.c
* @author Khushboo Singh
* @email khushboo.singh@alifsemi.com
* @version V1.0.0
* @date 16-June-2022
* @brief ARM CMSIS-Driver for Hardware Semaphore.
* @bug None.
* @Note None.
******************************************************************************/
/* Driver specific include */
#include "hwsem.h"
#include "Driver_HWSEM_Private.h"
#define ARM_HWSEM_DRV_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1, 0) /* Driver version */
/* Driver Version */
static const ARM_DRIVER_VERSION DriverVersion = {
ARM_HWSEM_API_VERSION,
ARM_HWSEM_DRV_VERSION
};
/* Driver Capabilities */
static const ARM_HWSEM_CAPABILITIES DriverCapabilities =
{
1, /* Supports HWSEM callback */
0
};
/**
\fn static ARM_DRIVER_VERSION Hwsem_GetVersion(void)
\brief Returns the driver version.
\return ARM_DRIVER_VERSION : Driver version
*/
static ARM_DRIVER_VERSION Hwsem_GetVersion(void)
{
return DriverVersion;
}
/**
\fn static ARM_HWSEM_CAPABILITIES Hwsem_GetCapabilities(void)
\brief Returns the Driver Capabilities
\return ARM_HWSEM_CAPABILITIES : Driver Capabilities
*/
static ARM_HWSEM_CAPABILITIES Hwsem_GetCapabilities(void)
{
return DriverCapabilities;
}
/**
\fn static int32_t Initialize(ARM_HWSEM_SignalEvent_t cb_event,
HWSEM_RESOURCES *hwsem)
\brief Initializes the driver instance with a call back function. The
(optional) callback function will be invoked (with HWSEM_AVAILABLE_CB_EVENT)
when the hwsem instance becomes available again after an unsuccessful
TryLock attempt.
\param[in] cb_event : call back function provided by user
\param[in] hwsem : Pointer to resources of the particular driver instance.
\return ARM_DRIVER_OK : On successful initialization.
\ ARM_DRIVER_ERROR_BUSY : Driver has already been initialized.
*/
static int32_t Initialize(ARM_HWSEM_SignalEvent_t cb_event, HWSEM_RESOURCES *hwsem)
{
/* Confirm that the driver is not already in use */
if (hwsem->state.initialized)
{
return ARM_DRIVER_ERROR_BUSY;
}
if (cb_event != NULL)
{
hwsem->cb_event = cb_event;
}
hwsem->state.initialized = 1;
return ARM_DRIVER_OK;
}
/**
\fn static int32_t Uninitialize(uint8_t HWSEM_RESOURCES *hwsem)
\brief Uninitializes the driver instance
\param[in] hwsem : Pointer to resources of the particular driver instance
\return ARM_DRIVER_OK : On success.
\ ARM_DRIVER_ERROR : If the driver instance has not been initialized before.
*/
static int32_t Uninitialize(HWSEM_RESOURCES *hwsem)
{
/* Confirm that the driver is initialized */
if (!(hwsem->state.initialized))
{
return ARM_DRIVER_ERROR;
}
hwsem->cb_event = NULL;
hwsem->state.initialized = 0;
return ARM_DRIVER_OK;
}
/**
\fn static int32_t Lock(HWSEM_RESOURCES *hwsem)
\brief Acquire the hw semaphore. If the semaphore is not available, spin until
it becomes available.
\param[in] hwsem : Pointer to resources of the particular driver instance
\return ARM_DRIVER_OK : If the hwsem is acquired successfully.
\ ARM_DRIVER_ERROR : If the driver is not initialized.
*/
static int32_t Lock(HWSEM_RESOURCES *hwsem)
{
/* Confirm that the driver is initialized */
if (!(hwsem->state.initialized))
{
return ARM_DRIVER_ERROR;
}
/* Spin until we get the lock */
while (hwsem_request(hwsem->regs, HWSEM_MASTERID) != HWSEM_MASTERID);
return ARM_DRIVER_OK;
}
/**
\fn static int32_t TryLock(HWSEM_RESOURCES *hwsem)
\brief Try to acquire the hwsem. If the hwsem is not available, return an error
code indicating the lock is busy.
\param[in] hwsem : Pointer to Resources of the particular driver instance
\return ARM_DRIVER_OK : If the hwsem is acquired successfully.
\ ARM_DRIVER_ERROR_BUSY : if semaphore is not available.
\ ARM_DRIVER_ERROR : If the driver is not initialized.
*/
static int32_t TryLock(HWSEM_RESOURCES *hwsem)
{
/* Confirm that the driver is initialized */
if (!(hwsem->state.initialized))
{
return ARM_DRIVER_ERROR;
}
if (hwsem_request(hwsem->regs, HWSEM_MASTERID) == HWSEM_MASTERID)
{
return ARM_DRIVER_OK;
}
/*
* If the semaphore is not available and if the user has provided a callback
* function, enable the IRQ.
*/
if (hwsem->cb_event != NULL)
{
NVIC_ClearPendingIRQ(hwsem->irq);
NVIC_SetPriority(hwsem->irq, hwsem->irq_priority);
NVIC_EnableIRQ(hwsem->irq);
}
return ARM_DRIVER_ERROR_BUSY;
}
/**
\fn static int32_t Unlock(HWSEM_RESOURCES *hwsem)
\brief Release the semaphore
\param[in] hwsem : Pointer to Resources of the particular driver instance
\return ARM_DRIVER_OK : On a successful unlock.
\ ARM_DRIVER_ERROR : If the driver is not initialized or the hwsem
has not been locked before.
*/
static int32_t Unlock(HWSEM_RESOURCES *hwsem)
{
/* Confirm that the driver is initialized */
if (!(hwsem->state.initialized))
{
return ARM_DRIVER_ERROR;
}
/* Check if the semaphore is locked */
if (hwsem_getcount(hwsem->regs) > 0)
{
/* Release the semaphore */
hwsem_release(hwsem->regs, HWSEM_MASTERID);
return ARM_DRIVER_OK;
}
else
{
return ARM_DRIVER_ERROR;
}
}
/**
\fn static int32_t GetCount(HWSEM_RESOURCES *hwsem)
\brief Get the semaphore count
\param[in] hwsem : Pointer to Resources of the particular driver instance
\return The current lock count of the semaphore instance.
\ ARM_DRIVER_ERROR : if driver is not initialized
*/
static int32_t GetCount(HWSEM_RESOURCES *hwsem)
{
/* Confirm that driver is initialized */
if (!(hwsem->state.initialized))
{
return ARM_DRIVER_ERROR;
}
return hwsem_getcount(hwsem->regs);
}
/**
\fn void HWSEM_IRQHandler(HWSEM_RESOURCES *hwsem)
\brief HWSEM instance specific part of Hw Semaphore Interrupt handler.
\param[in] hwsem : Pointer to the HWSEM device instance
*/
static void ARM_HWSEM_IRQHandler(HWSEM_RESOURCES *hwsem)
{
/* Disable Hw Sem IRQ*/
NVIC_DisableIRQ(hwsem->irq);
NVIC_ClearPendingIRQ(hwsem->irq);
/* Call the user provided call back function */
hwsem->cb_event(HWSEM_AVAILABLE_CB_EVENT, hwsem->sem_id);
}
/* HWSEM0 Driver Instance */
#if (RTE_HWSEM0)
/* HWSEM0 Resources */
static HWSEM_RESOURCES HWSEM0 = {
.regs = (HWSEM_Type *) HWSEM0_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ0_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM0_IRQPRIORITY,
.sem_id = HWSEMID0,
};
/* HWSEM0 Interrupt Handler */
void HWSEM_IRQ0Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM0);
}
static int32_t Hwsem0_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM0);
}
static int32_t Hwsem0_Uninitialize(void)
{
return Uninitialize(&HWSEM0);
}
static int32_t Hwsem0_Lock(void)
{
return Lock(&HWSEM0);
}
static int32_t Hwsem0_TryLock(void)
{
return TryLock(&HWSEM0);
}
static int32_t Hwsem0_Unlock(void)
{
return Unlock(&HWSEM0);
}
static int32_t Hwsem0_GetCount(void)
{
return GetCount(&HWSEM0);
}
/* HWSEM0 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM0 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem0_Initialize ,
Hwsem0_Uninitialize,
Hwsem0_Lock,
Hwsem0_TryLock,
Hwsem0_Unlock,
Hwsem0_GetCount
};
#endif
/* HSWEM1 Driver Instance */
#if (RTE_HWSEM1)
/* HWSEM1 Resources */
static HWSEM_RESOURCES HWSEM1 = {
.regs = (HWSEM_Type *) HWSEM1_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ1_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM1_IRQPRIORITY,
.sem_id = HWSEMID1,
};
/* HWSEM1 Interrupt Handler */
void HWSEM_IRQ1Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM1);
}
static int32_t Hwsem1_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM1);
}
static int32_t Hwsem1_Uninitialize(void)
{
return Uninitialize(&HWSEM1);
}
static int32_t Hwsem1_Lock(void)
{
return Lock(&HWSEM1);
}
static int32_t Hwsem1_TryLock(void)
{
return TryLock(&HWSEM1);
}
static int32_t Hwsem1_Unlock(void)
{
return Unlock(&HWSEM1);
}
static int32_t Hwsem1_GetCount(void)
{
return GetCount(&HWSEM1);
}
/* HWSEM1 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM1 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem1_Initialize ,
Hwsem1_Uninitialize,
Hwsem1_Lock,
Hwsem1_TryLock,
Hwsem1_Unlock,
Hwsem1_GetCount
};
#endif
/* HWSEM2 Driver Instance */
#if (RTE_HWSEM2)
/* HWSEM2 Resources */
static HWSEM_RESOURCES HWSEM2 = {
.regs = (HWSEM_Type *) HWSEM2_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ2_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM2_IRQPRIORITY,
.sem_id = HWSEMID2,
};
/* HWSEM2 Interrupt Handler */
void HWSEM_IRQ2Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM2);
}
static int32_t Hwsem2_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM2);
}
static int32_t Hwsem2_Uninitialize(void)
{
return Uninitialize(&HWSEM2);
}
static int32_t Hwsem2_Lock(void)
{
return Lock(&HWSEM2);
}
static int32_t Hwsem2_TryLock(void)
{
return TryLock(&HWSEM2);
}
static int32_t Hwsem2_Unlock(void)
{
return Unlock(&HWSEM2);
}
static int32_t Hwsem2_GetCount(void)
{
return GetCount(&HWSEM2);
}
/* HWSEM2 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM2 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem2_Initialize ,
Hwsem2_Uninitialize,
Hwsem2_Lock,
Hwsem2_TryLock,
Hwsem2_Unlock,
Hwsem2_GetCount
};
#endif
/* HWSEM3 Driver Instance */
#if (RTE_HWSEM3)
/* HWSEM3 Resources */
static HWSEM_RESOURCES HWSEM3 = {
.regs = (HWSEM_Type *) HWSEM3_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ3_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM3_IRQPRIORITY,
.sem_id = HWSEMID3,
};
/* HWSEM3 Interrupt Handler */
void HWSEM_IRQ3Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM3);
}
static int32_t Hwsem3_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM3);
}
static int32_t Hwsem3_Uninitialize(void)
{
return Uninitialize(&HWSEM3);
}
static int32_t Hwsem3_Lock(void)
{
return Lock(&HWSEM3);
}
static int32_t Hwsem3_TryLock(void)
{
return TryLock(&HWSEM3);
}
static int32_t Hwsem3_Unlock(void)
{
return Unlock(&HWSEM3);
}
static int32_t Hwsem3_GetCount(void)
{
return GetCount(&HWSEM3);
}
/* HWSEM3 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM3 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem3_Initialize ,
Hwsem3_Uninitialize,
Hwsem3_Lock,
Hwsem3_TryLock,
Hwsem3_Unlock,
Hwsem3_GetCount
};
#endif
/* HWSEM4 Driver Instance */
#if (RTE_HWSEM4)
/* HWSEM4 Resources */
static HWSEM_RESOURCES HWSEM4 = {
.regs = (HWSEM_Type *) HWSEM4_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ4_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM4_IRQPRIORITY,
.sem_id = HWSEMID4,
};
/* HWSEM4 Interrupt Handler */
void HWSEM_IRQ4Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM4);
}
static int32_t Hwsem4_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM4);
}
static int32_t Hwsem4_Uninitialize(void)
{
return Uninitialize(&HWSEM4);
}
static int32_t Hwsem4_Lock(void)
{
return Lock(&HWSEM4);
}
static int32_t Hwsem4_TryLock(void)
{
return TryLock(&HWSEM4);
}
static int32_t Hwsem4_Unlock(void)
{
return Unlock(&HWSEM4);
}
static int32_t Hwsem4_GetCount(void)
{
return GetCount(&HWSEM4);
}
/* HWSEM4 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM4 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem4_Initialize ,
Hwsem4_Uninitialize,
Hwsem4_Lock,
Hwsem4_TryLock,
Hwsem4_Unlock,
Hwsem4_GetCount
};
#endif
/* HWSEM5 Driver Instance */
#if (RTE_HWSEM5)
/* HWSEM5 Resources */
static HWSEM_RESOURCES HWSEM5 = {
.regs = (HWSEM_Type *) HWSEM5_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ5_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM5_IRQPRIORITY,
.sem_id = HWSEMID5,
};
/* HWSEM5 Interrupt Handler */
void HWSEM_IRQ5Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM5);
}
static int32_t Hwsem5_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM5);
}
static int32_t Hwsem5_Uninitialize(void)
{
return Uninitialize(&HWSEM5);
}
static int32_t Hwsem5_Lock(void)
{
return Lock(&HWSEM5);
}
static int32_t Hwsem5_TryLock(void)
{
return TryLock(&HWSEM5);
}
static int32_t Hwsem5_Unlock(void)
{
return Unlock(&HWSEM5);
}
static int32_t Hwsem5_GetCount(void)
{
return GetCount(&HWSEM5);
}
/* HWSEM5 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM5 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem5_Initialize ,
Hwsem5_Uninitialize,
Hwsem5_Lock,
Hwsem5_TryLock,
Hwsem5_Unlock,
Hwsem5_GetCount
};
#endif
/* HWSEM6 Driver Instance */
#if (RTE_HWSEM6)
/* HWSEM6 Resources */
static HWSEM_RESOURCES HWSEM6 = {
.regs = (HWSEM_Type *) HWSEM6_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ6_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM6_IRQPRIORITY,
.sem_id = HWSEMID6,
};
/* HWSEM6 Interrupt Handler */
void HWSEM_IRQ6Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM6);
}
static int32_t Hwsem6_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM6);
}
static int32_t Hwsem6_Uninitialize(void)
{
return Uninitialize(&HWSEM6);
}
static int32_t Hwsem6_Lock(void)
{
return Lock(&HWSEM6);
}
static int32_t Hwsem6_TryLock(void)
{
return TryLock(&HWSEM6);
}
static int32_t Hwsem6_Unlock(void)
{
return Unlock(&HWSEM6);
}
static int32_t Hwsem6_GetCount(void)
{
return GetCount(&HWSEM6);
}
/* HWSEM6 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM6 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem6_Initialize ,
Hwsem6_Uninitialize,
Hwsem6_Lock,
Hwsem6_TryLock,
Hwsem6_Unlock,
Hwsem6_GetCount
};
#endif
/* HWSEM0 Driver Instance */
#if (RTE_HWSEM7)
/* HWSEM7 Resources */
static HWSEM_RESOURCES HWSEM7 = {
.regs = (HWSEM_Type *) HWSEM7_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ7_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM7_IRQPRIORITY,
.sem_id = HWSEMID7,
};
/* HWSEM7 Interrupt Handler */
void HWSEM_IRQ7Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM7);
}
static int32_t Hwsem7_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM7);
}
static int32_t Hwsem7_Uninitialize(void)
{
return Uninitialize(&HWSEM7);
}
static int32_t Hwsem7_Lock(void)
{
return Lock(&HWSEM7);
}
static int32_t Hwsem7_TryLock(void)
{
return TryLock(&HWSEM7);
}
static int32_t Hwsem7_Unlock(void)
{
return Unlock(&HWSEM7);
}
static int32_t Hwsem7_GetCount(void)
{
return GetCount(&HWSEM7);
}
/* HWSEM7 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM7 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem7_Initialize ,
Hwsem7_Uninitialize,
Hwsem7_Lock,
Hwsem7_TryLock,
Hwsem7_Unlock,
Hwsem7_GetCount
};
#endif
/* HWSEM8 Driver Instance */
#if (RTE_HWSEM8)
/* HWSEM8 Resources */
static HWSEM_RESOURCES HWSEM8 = {
.regs = (HWSEM_Type *) HWSEM8_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ8_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM8_IRQPRIORITY,
.sem_id = HWSEMID8,
};
/* HWSEM8 Interrupt Handler */
void HWSEM_IRQ8Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM8);
}
static int32_t Hwsem8_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM8);
}
static int32_t Hwsem8_Uninitialize(void)
{
return Uninitialize(&HWSEM8);
}
static int32_t Hwsem8_Lock(void)
{
return Lock(&HWSEM8);
}
static int32_t Hwsem8_TryLock(void)
{
return TryLock(&HWSEM8);
}
static int32_t Hwsem8_Unlock(void)
{
return Unlock(&HWSEM8);
}
static int32_t Hwsem8_GetCount(void)
{
return GetCount(&HWSEM8);
}
/* HWSEM8 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM8 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem8_Initialize ,
Hwsem8_Uninitialize,
Hwsem8_Lock,
Hwsem8_TryLock,
Hwsem8_Unlock,
Hwsem8_GetCount
};
#endif
/* HWSEM9 Driver Instance */
#if (RTE_HWSEM9)
/* HWSEM9 Resources */
static HWSEM_RESOURCES HWSEM9 = {
.regs = (HWSEM_Type *) HWSEM9_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ9_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM9_IRQPRIORITY,
.sem_id = HWSEMID9,
};
/* HWSEM9 Interrupt Handler */
void HWSEM_IRQ9Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM9);
}
static int32_t Hwsem9_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM9);
}
static int32_t Hwsem9_Uninitialize(void)
{
return Uninitialize(&HWSEM9);
}
static int32_t Hwsem9_Lock(void)
{
return Lock(&HWSEM9);
}
static int32_t Hwsem9_TryLock(void)
{
return TryLock(&HWSEM9);
}
static int32_t Hwsem9_Unlock(void)
{
return Unlock(&HWSEM9);
}
static int32_t Hwsem9_GetCount(void)
{
return GetCount(&HWSEM9);
}
/* HWSEM9 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM9 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem9_Initialize ,
Hwsem9_Uninitialize,
Hwsem9_Lock,
Hwsem9_TryLock,
Hwsem9_Unlock,
Hwsem9_GetCount
};
#endif
/* HWSEM10 Driver Instance */
#if (RTE_HWSEM10)
/* HWSEM10 Resources */
static HWSEM_RESOURCES HWSEM10 = {
.regs = (HWSEM_Type *) HWSEM10_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ10_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM10_IRQPRIORITY,
.sem_id = HWSEMID10,
};
/* HWSEM10 Interrupt Handler */
void HWSEM_IRQ10Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM10);
}
static int32_t Hwsem10_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM10);
}
static int32_t Hwsem10_Uninitialize(void)
{
return Uninitialize(&HWSEM10);
}
static int32_t Hwsem10_Lock(void)
{
return Lock(&HWSEM10);
}
static int32_t Hwsem10_TryLock(void)
{
return TryLock(&HWSEM10);
}
static int32_t Hwsem10_Unlock(void)
{
return Unlock(&HWSEM10);
}
static int32_t Hwsem10_GetCount(void)
{
return GetCount(&HWSEM10);
}
/* HWSEM10 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM10 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem10_Initialize ,
Hwsem10_Uninitialize,
Hwsem10_Lock,
Hwsem10_TryLock,
Hwsem10_Unlock,
Hwsem10_GetCount
};
#endif
/* HWSEM11 Driver Instance */
#if (RTE_HWSEM11)
/* HWSEM11 Resources */
static HWSEM_RESOURCES HWSEM11 = {
.regs = (HWSEM_Type *) HWSEM11_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ11_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM11_IRQPRIORITY,
.sem_id = HWSEMID11,
};
/* HWSEM11 Interrupt Handler */
void HWSEM_IRQ11Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM11);
}
static int32_t Hwsem11_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM11);
}
static int32_t Hwsem11_Uninitialize(void)
{
return Uninitialize(&HWSEM11);
}
static int32_t Hwsem11_Lock(void)
{
return Lock(&HWSEM11);
}
static int32_t Hwsem11_TryLock(void)
{
return TryLock(&HWSEM11);
}
static int32_t Hwsem11_Unlock(void)
{
return Unlock(&HWSEM11);
}
static int32_t Hwsem11_GetCount(void)
{
return GetCount(&HWSEM11);
}
/* HWSEM11 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM11 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem11_Initialize ,
Hwsem11_Uninitialize,
Hwsem11_Lock,
Hwsem11_TryLock,
Hwsem11_Unlock,
Hwsem11_GetCount
};
#endif
/* HWSEM12 Driver Instance */
#if (RTE_HWSEM12)
/* HWSEM12 Resources */
static HWSEM_RESOURCES HWSEM12 = {
.regs =(HWSEM_Type *) HWSEM12_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ12_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM12_IRQPRIORITY,
.sem_id = HWSEMID12,
};
/* HWSEM12 Interrupt Handler */
void HWSEM_IRQ12Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM12);
}
static int32_t Hwsem12_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM12);
}
static int32_t Hwsem12_Uninitialize(void)
{
return Uninitialize(&HWSEM12);
}
static int32_t Hwsem12_Lock(void)
{
return Lock(&HWSEM12);
}
static int32_t Hwsem12_TryLock(void)
{
return TryLock(&HWSEM12);
}
static int32_t Hwsem12_Unlock(void)
{
return Unlock(&HWSEM12);
}
static int32_t Hwsem12_GetCount(void)
{
return GetCount(&HWSEM12);
}
/* HWSEM12 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM12 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem12_Initialize ,
Hwsem12_Uninitialize,
Hwsem12_Lock,
Hwsem12_TryLock,
Hwsem12_Unlock,
Hwsem12_GetCount
};
#endif
/* HWSEM13 Driver Instance */
#if (RTE_HWSEM13)
/* HWSEM13 Resources */
static HWSEM_RESOURCES HWSEM13 = {
.regs = (HWSEM_Type *) HWSEM13_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ13_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM13_IRQPRIORITY,
.sem_id = HWSEMID13,
};
/* HWSEM13 Interrupt Handler */
void HWSEM_IRQ13Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM13);
}
static int32_t Hwsem13_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM13);
}
static int32_t Hwsem13_Uninitialize(void)
{
return Uninitialize(&HWSEM13);
}
static int32_t Hwsem13_Lock(void)
{
return Lock(&HWSEM13);
}
static int32_t Hwsem13_TryLock(void)
{
return TryLock(&HWSEM13);
}
static int32_t Hwsem13_Unlock(void)
{
return Unlock(&HWSEM13);
}
static int32_t Hwsem13_GetCount(void)
{
return GetCount(&HWSEM13);
}
/* HWSEM13 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM13 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem13_Initialize ,
Hwsem13_Uninitialize,
Hwsem13_Lock,
Hwsem13_TryLock,
Hwsem13_Unlock,
Hwsem13_GetCount
};
#endif
/* HWSEM14 Driver Instance */
#if (RTE_HWSEM14)
/* HWSEM14 Resources */
static HWSEM_RESOURCES HWSEM14 = {
.regs = (HWSEM_Type *) HWSEM14_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ14_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM14_IRQPRIORITY,
.sem_id = HWSEMID14,
};
/* HWSEM14 Interrupt Handler */
void HWSEM_IRQ14Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM14);
}
static int32_t Hwsem14_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM14);
}
static int32_t Hwsem14_Uninitialize(void)
{
return Uninitialize(&HWSEM14);
}
static int32_t Hwsem14_Lock(void)
{
return Lock(&HWSEM14);
}
static int32_t Hwsem14_TryLock(void)
{
return TryLock(&HWSEM14);
}
static int32_t Hwsem14_Unlock(void)
{
return Unlock(&HWSEM14);
}
static int32_t Hwsem14_GetCount(void)
{
return GetCount(&HWSEM14);
}
/* HWSEM14 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM14 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem14_Initialize ,
Hwsem14_Uninitialize,
Hwsem14_Lock,
Hwsem14_TryLock,
Hwsem14_Unlock,
Hwsem14_GetCount
};
#endif
/* HWSEM15 Driver Instance */
#if (RTE_HWSEM15)
/* HWSEM15 Resources */
static HWSEM_RESOURCES HWSEM15 = {
.regs = (HWSEM_Type *) HWSEM15_BASE,
.cb_event = NULL,
.irq = (IRQn_Type) HWSEM_IRQ15_IRQn,
.irq_priority = (uint8_t) RTE_HWSEM15_IRQPRIORITY,
.sem_id = HWSEMID15,
};
/* HWSEM15 Interrupt Handler */
void HWSEM_IRQ15Handler(void)
{
ARM_HWSEM_IRQHandler(&HWSEM15);
}
static int32_t Hwsem15_Initialize(ARM_HWSEM_SignalEvent_t cb_event)
{
return Initialize(cb_event, &HWSEM15);
}
static int32_t Hwsem15_Uninitialize(void)
{
return Uninitialize(&HWSEM15);
}
static int32_t Hwsem15_Lock(void)
{
return Lock(&HWSEM15);
}
static int32_t Hwsem15_TryLock(void)
{
return TryLock(&HWSEM15);
}
static int32_t Hwsem15_Unlock(void)
{
return Unlock(&HWSEM15);
}
static int32_t Hwsem15_GetCount(void)
{
return GetCount(&HWSEM15);
}
/* HWSEM15 Access Struct */
ARM_DRIVER_HWSEM DRIVER_HWSEM15 =
{
Hwsem_GetVersion,
Hwsem_GetCapabilities,
Hwsem15_Initialize ,
Hwsem15_Uninitialize,
Hwsem15_Lock,
Hwsem15_TryLock,
Hwsem15_Unlock,
Hwsem15_GetCount
};
#endif