T_uezError Keypad_NXP_PCA9555_Create(
        const char *aName,
        const char *aI2CBusName,
        TUInt8 aI2CAddr,
        const char *aExternalInterruptsName,
        TUInt8 aExternalInterruptChannel)
{
    T_Keypad_NXP_I2C_PCA9555_Workspace *p;
    T_uezDevice i2c;
    DEVICE_I2C_BUS **p_i2c;
    T_uezError error;

    UEZDeviceTableRegister(aName,
            (T_uezDeviceInterface *)&Keypad_NXP_PCA9555_Interface, 0,
            (T_uezDeviceWorkspace **)&p);

    error = UEZDeviceTableFind(aI2CBusName, &i2c);
    if (error)
        return error;
    UEZDeviceTableGetWorkspace(i2c, (T_uezDeviceWorkspace **)&p_i2c);

    error = Keypad_NXP_PCA9555_Configure(p, p_i2c, aI2CAddr, aExternalInterruptsName,
        aExternalInterruptChannel);
    return error;
}
T_uezError Touchscreen_MC_AR1020_Create(const char *aName)
{
    // Need to register touchscreen device
    return UEZDeviceTableRegister(aName,
                                  (T_uezDeviceInterface *)&Touchscreen_MC_AR1020_Interface,
                                  0, 0);
}
Exemple #3
0
void AudioAmp_8551T_Create(
        const char *aName,
        T_uezGPIOPortPin aVolumeGPIO,
        T_uezGPIOPortPin aModeGPIO,
        T_uezGPIOPortPin aVolEnableGPIO,
        TInt8 aMaxLevel)
{
    T_AudioAmp_8551T_Workspace *p;
    UEZDeviceTableRegister(
            aName,
            (T_uezDeviceInterface *)&AudioAmp_8551T_Interface,
            0,
            (T_uezDeviceWorkspace **)&p);

    UEZGPIOLock(aVolumeGPIO);
    p->iVolumeGPIO = aVolumeGPIO;
    UEZGPIOLock(aModeGPIO);
    p->iModeGPIO = aModeGPIO;
    if (aVolEnableGPIO != GPIO_NONE)
        UEZGPIOLock(aVolEnableGPIO);
    p->iVolEnableGPIO = aVolEnableGPIO;

    if(aMaxLevel > HIGH_LEVEL){
        p->iMaxLevel = HIGH_LEVEL;
    } else {
        p->iMaxLevel = aMaxLevel;
    }
    p->iMinLevel = 0;
}
void EEPROM_NXP_LPC17xx_40xx_Create(const char *aName)
{
    UEZDeviceTableRegister(
            aName,
            (T_uezDeviceInterface *)&EEPROM_NXP_LPC17xx_40xx_Interface,
            0,
            0);
}
/*---------------------------------------------------------------------------*
 * Creation routines:
 *---------------------------------------------------------------------------*/
T_uezError ExternalInterrupt_Generic_Create(const char *aName)
{
    T_uezDeviceWorkspace *p;

    // Initialize the DAC0 device
    return UEZDeviceTableRegister(aName,
        (T_uezDeviceInterface *)&ExternalInterrupt_NXP_LPC1756_Interface, 0, &p);
}
Exemple #6
0
/*---------------------------------------------------------------------------*
 * Creation routines:
 *---------------------------------------------------------------------------*/
T_uezError DAC_Generic_Create(const char *aName, const char *aHALName)
{
    T_uezDeviceWorkspace *p_dac0;

    // Initialize the DAC0 device
    UEZDeviceTableRegister(aName,
            (T_uezDeviceInterface *)&DAC_Generic_Interface, 0, &p_dac0);
    return DAC_Generic_Configure(p_dac0, aHALName);
}
Exemple #7
0
/*---------------------------------------------------------------------------*
 * Routine:  CRC_Generic_Create
 *---------------------------------------------------------------------------*
 * Description:
 *      Create the CRC Device driver and link it to an existing CRC HAL Driver.
 * Inputs:
 *      const char *aName           -- Name of new CRC generic device driver
 *      const char *aHALDriverName  -- HAL Device driver name to link to
 * Outputs:
 *      T_uezError                   -- Error code
 *---------------------------------------------------------------------------*/
T_uezError CRC_Generic_Create(const char *aName, const char *aHALDriverName)
{
    T_CRC_Generic_Workspace *p;

    UEZDeviceTableRegister(aName,
            (T_uezDeviceInterface *)&CRC_Generic_Interface, 0,
            (T_uezDeviceWorkspace **)&p);
    return HALInterfaceFind(aHALDriverName, (T_halWorkspace **)&p->iCRC);
}
/*---------------------------------------------------------------------------*
 * Routine:  PWM_Generic_Create
 *---------------------------------------------------------------------------*
 * Description:
 *      Setup a PWM device and connect to the given PWM HAL driver.
 * Inputs:
 *      const char *aName -- Name of PWM driver to create
 *      const char *aPWMHALName -- HAL driver to connect to
 * Outputs:
 *      T_uezError -- Error code
 *---------------------------------------------------------------------------*/
T_uezError PWM_Generic_Create(const char *aName, const char *aPWMHALName)
{
    T_uezDeviceWorkspace *p_pwm;

    UEZDeviceTableRegister(
            aName,
            (T_uezDeviceInterface *)&PWM_Generic_Interface,
            0,
            &p_pwm);

    return PWM_Generic_Configure(p_pwm, aPWMHALName);
}
void Network_lwIP_Create(const char *aName)
{
    T_uezDeviceWorkspace *p_wired;

    UEZDeviceTableRegister(
        aName,
        (T_uezDeviceInterface *)&lwIP_Network_Interface,
        0,
        (T_uezDeviceWorkspace **)&p_wired);

    Network_lwIP_Configure(p_wired);
}
Exemple #10
0
T_uezError RTC_Generic_Create(const char *aName, const char *aHALName)
{
    HAL_RTC **p_rtchal;
    T_uezDeviceWorkspace *p_rtcdev;

    UEZDeviceTableRegister(aName,
            (T_uezDeviceInterface *)&RTC_Generic_Interface, 0, &p_rtcdev);
    HALInterfaceFind(aHALName, (T_halWorkspace **)&p_rtchal);
    RTC_Generic_Configure(p_rtcdev, (HAL_RTC **)p_rtchal);
    
    return UEZ_ERROR_NONE;
}
/*---------------------------------------------------------------------------*
 * Routine:  Flash_Renesas_RX63N_Configure
 *---------------------------------------------------------------------------*
 * Description:
 *      Configure the flash chip's location
 * Inputs:
 *      void *aW                    -- Workspace
 *      void *aBaseAddr             -- Base address of this chip in
 *                                     processor memory map space
 *---------------------------------------------------------------------------*/
void Flash_Renesas_RX63N_Create(const char *aName)
{
	T_uezDeviceWorkspace *p_DeviceWorkspace;
	T_Flash_Renesas_RX63N_Workspace *p_FlashWorkspace;
	
	// Setup the NOR flash
    UEZDeviceTableRegister(aName,
        (T_uezDeviceInterface *)&Flash_Renesas_RX63N_Interface,
        0, &p_DeviceWorkspace);

	p_FlashWorkspace = (T_Flash_Renesas_RX63N_Workspace *)p_DeviceWorkspace;
    p_FlashWorkspace->iBaseAddr = (void *)RENESAS_FLASH_BASE_ADDR;		//<<---- Made Changes here!//<<---- Undone
}
Exemple #12
0
T_uezError LED_Generic_GPIO_Configure_Create(
    const char *aName,
    const T_GenericLEDGPIODefinition *aDefinitionArray,
    TUInt8 aNumLEDs)
{
    void *p;

    UEZDeviceTableRegister(aName,
            (T_uezDeviceInterface *)&LEDBank_Generic_GPIO_Interface, 0,
            (T_uezDeviceWorkspace **)&p);

    return LED_Generic_GPIO_Configure_DefineLEDs(p, aDefinitionArray, aNumLEDs);
}
void USBHost_Generic_Create(const char *aName, const char *aHALUSBHostName)
{
    T_halWorkspace *p_halUSBHost;
    T_uezDeviceWorkspace *p_usbhost;

    // Register the USB Host device driver
    UEZDeviceTableRegister(
            aName,
            (T_uezDeviceInterface *)&G_Generic_USBHost_Interface,
            0,
            (T_uezDeviceWorkspace **)&p_usbhost);
    // Link the Generic USB host to the HAL USB host
    HALInterfaceFind(aHALUSBHostName, (T_halWorkspace **)&p_halUSBHost);
    Generic_USBHost_Configure(p_usbhost, (HAL_USBHost **)p_halUSBHost);
}
Exemple #14
0
void RTC_PCF8563_Create(const char *aName, const char *aI2CBusName)
{
    T_uezDeviceWorkspace *p_rtcdev;
    T_uezDevice i2c;
    T_uezDeviceWorkspace *p_i2c;

    // Setup with exteranl RTC
    UEZDeviceTableRegister(
            aName,
            (T_uezDeviceInterface *)&RTC_NXP_PCF8563_Interface,
            0,
            &p_rtcdev);
    UEZDeviceTableFind(aI2CBusName, &i2c);
    UEZDeviceTableGetWorkspace(i2c, &p_i2c);
    RTC_PCF8563_Configure(p_rtcdev, (DEVICE_I2C_BUS **)p_i2c);
}
void Temp_NXP_SA56004X_Remote_Create(
        const char *aName,
        const char *aI2CBusName,
        TUInt8 aI2CAddr)
{
    T_uezDeviceWorkspace *p_temp0;
    T_uezDevice i2c;
    T_uezDeviceWorkspace *p_i2c;

    // Setup the temperature 0 device
    UEZDeviceTableRegister(aName,
        (T_uezDeviceInterface *)&Temperature_NXP_SA56004X_Remote_Interface, 0,
        &p_temp0);
    UEZDeviceTableFind(aI2CBusName, &i2c);
    UEZDeviceTableGetWorkspace(i2c, (T_uezDeviceWorkspace **)&p_i2c);
    Temp_NXP_SA56004X_Configure(p_temp0, (DEVICE_I2C_BUS **)p_i2c, aI2CAddr);
}
/*---------------------------------------------------------------------------*
 * Routine:  ST_Accelo_LIS3LV02DQ_I2C_Create
 *---------------------------------------------------------------------------*
 * Description:
 *      Create an accelerometer driver for the Freescale MMA7455.
 * Inputs:
 *      const char *aName -- Name of this created driver
 *      const char *aI2CBusName -- Name of I2C bus device driver used by this
 *          accelerometer.
 * Outputs:
 *      T_uezError -- Error code.
 *---------------------------------------------------------------------------*/
T_uezError ST_Accelo_LIS3LV02DQ_I2C_Create(
        const char *aName,
        const char *aI2CBusName)
{
    T_uezDeviceWorkspace *p_accel;
    T_uezDevice i2c;
    T_uezDeviceWorkspace *p_i2c;

    // Setup the accelerator device
    UEZDeviceTableRegister(
            aName,
            (T_uezDeviceInterface *)&Accelerometer_ST_LIS3LV02DQ_via_I2C_Interface,
            0, &p_accel);
    UEZDeviceTableFind(aI2CBusName, &i2c);
    UEZDeviceTableGetWorkspace(i2c, (T_uezDeviceWorkspace **)&p_i2c);
    return ST_Accelo_LIS3LV02DQ_Configure(p_accel,
            (DEVICE_I2C_BUS **)p_i2c);
}
/*---------------------------------------------------------------------------*
 * Routine:  Accelerometer_Freescale_MMA7455_I2C_Create
 *---------------------------------------------------------------------------*
 * Description:
 *      Create an accelerometer driver for the Freescale MMA7455.
 * Inputs:
 *      const char *aName -- Name of this created driver
 *      const char *aI2CBusName -- Name of I2C bus device driver used by this
 *          accelerometer.
 *      TUInt8 aI2CAddr -- 7-bit address (lower 7 bits) of I2C address of
 *          accelerometer.
 * Outputs:
 *      T_uezError -- Error code.
 *---------------------------------------------------------------------------*/
T_uezError Accelerometer_Freescale_MMA7455_I2C_Create(
        const char *aName,
        const char *aI2CBusName,
        TUInt8 aI2CAddr)
{
    T_uezDeviceWorkspace *p_accel;
    T_uezDevice i2c;
    T_uezDeviceWorkspace *p_i2c;

    // Setup the accelerator device
    UEZDeviceTableRegister(
            aName,
            (T_uezDeviceInterface *)&Accelerometer_Freescale_MMA7455_I2C_Interface,
            0, &p_accel);
    UEZDeviceTableFind(aI2CBusName, &i2c);
    UEZDeviceTableGetWorkspace(i2c, (T_uezDeviceWorkspace **)&p_i2c);
    return Accelerometer_Freescale_MMA7455_I2C_Configure(p_accel,
            (DEVICE_I2C_BUS **)p_i2c, aI2CAddr);
}
Exemple #18
0
/*---------------------------------------------------------------------------*
 * Routine:
 *---------------------------------------------------------------------------*
 * Description:
 *      Setup the I2C GPIO LEDs on EXPDK_I2C-A
 *---------------------------------------------------------------------------*/
void UEZGUI_EXP_DK_LED_Require(void)
{
    T_uezDeviceWorkspace *p_led0;
    T_uezDevice i2c;
    T_uezDeviceWorkspace *p_i2c;

    DEVICE_CREATE_ONCE();
    UEZGUI_EXP_DK_I2CMux_Require();
    // In order to use this, it must use EXPDK_I2C-A provided by the I2C Mux
    UEZDeviceTableFind("EXPDK_I2C-A", &i2c);
    UEZDeviceTableGetWorkspace(i2c, (T_uezDeviceWorkspace **)&p_i2c);

    UEZDeviceTableRegister(
        "LEDBank0",
        (T_uezDeviceInterface *)&LEDBank_NXP_PCA9551_Interface,
        0,
        &p_led0);
    LED_NXP_PCA9551_Configure(p_led0, (DEVICE_I2C_BUS **)p_i2c, 0xC0>>1);
}
/*---------------------------------------------------------------------------*
 * Routine:  Timer_Generic_Create
 *---------------------------------------------------------------------------*
 * Description:
 *      Setup a Timer and link to the HAL equivalent
 * Inputs:
 *      const char *aHALDriver -- Name of HAL driver to link to
 * Outputs:
 *      T_uezError                   -- Error code
 *---------------------------------------------------------------------------*/
T_uezError Timer_Generic_Create(const char *aDeviceName, const char *aHALDriver)
{
    T_uezError error;
    T_Timer_Generic_Workspace *p;

    // Create the timer device
    error = UEZDeviceTableRegister(aDeviceName,
                                   (T_uezDeviceInterface *)&Timer_Generic_Interface, 0,
                                   (T_uezDeviceWorkspace **)&p);
    if (error)
        return error;

    // Find the HAL and link to this device
    error = HALInterfaceFind(aHALDriver, (T_halWorkspace **)&p->iTimer);
    if (error)
        return error;

    return error;
}
Exemple #20
0
void AudioAmp_LM48110_Create(
        const char *aName,
        const char *aI2CBus,
        TUInt8 aMaxValue)
{
    T_AudioAmp_LM48110_Workspace *p;
    UEZDeviceTableRegister(
            aName,
            (T_uezDeviceInterface *)&AudioAmp_LM48110_Interface,
            0,
            (T_uezDeviceWorkspace **)&p);

    strcpy(p->iI2CBus, aI2CBus);

    if(aMaxValue < HIGH_LEVEL){
        p->iMaxLevel = aMaxValue;
    } else {
        p->iMaxLevel = HIGH_LEVEL;
    }
    p->iMinLevel = 0;
}
T_uezError RS485_Generic_Timer_Create(
    const char *aName,
    const T_RS485_Generic_Timer_Settings *aSettings)
{
    T_uezDeviceWorkspace *p;
    HAL_Serial **p_serial;
    HAL_Timer **p_timer;

    UEZDeviceTableRegister(aName,
        (T_uezDeviceInterface *)&RS485_Generic_Timer_Stream_Interface, 0, &p);
    HALInterfaceFind(aSettings->iSerialName, (T_halWorkspace **)&p_serial);
    HALInterfaceFind(aSettings->iTimerName, (T_halWorkspace **)&p_timer);
    return RS485_Generic_Timer_Configure(p, p_serial,
        aSettings->iQueueSendSize, aSettings->iQueueReceiveSize,
        GPIO_TO_HAL_PORT(aSettings->iDriveEnable),
        GPIO_TO_PIN_BIT(aSettings->iDriveEnable),
        aSettings->iDriveEnablePolarity,
        GPIO_TO_HAL_PORT(aSettings->iReceiveEnable),
        GPIO_TO_PIN_BIT(aSettings->iReceiveEnable),
        aSettings->iReceiveEnablePolarity, p_timer, aSettings->iReleaseTime,
        aSettings->iDriveTime);
}
/*---------------------------------------------------------------------------*
 * Routine:  Serial_Generic_HalfDuplex_Stream_Create
 *---------------------------------------------------------------------------*
 * Description:
 *      Create a full duplex serial stream to a HAL serial device and create
 *      the read and write buffers.
 * Inputs:
 *      const char *aName -- Name of this created driver
 *      const char *aSerialHALName -- Name of low level Serial HAL driver
 *      TUInt32 aWriteBufferSize -- Size of the write buffer size in bytes
 *      TUInt32 aReadBufferSize -- Size of the read buffer size in bytes
 * Outputs:
 *      T_uezError -- Error code.
 *---------------------------------------------------------------------------*/
T_uezError Serial_Generic_HalfDuplex_Stream_Create(
        const char *aName,
        const char *aSerialHALName,
        TUInt32 aWriteBufferSize,
        TUInt32 aReadBufferSize,
        T_uezGPIOPortPin aDriveEnablePortPin,
        TBool aDriveEnablePolarity,
        TUInt32 aDriveEnableReleaseTime)
{
    T_halWorkspace *p_serialUART;
    T_uezDeviceWorkspace *p_serial;

    // Create serial stream device and link to HAL_Serial driver
    UEZDeviceTableRegister(aName,
            (T_uezDeviceInterface *)&Serial_GenericHalfDuplex_Stream_Interface,
            0, &p_serial);
    HALInterfaceFind(aSerialHALName, (T_halWorkspace **)&p_serialUART);
    return Serial_GenericHalfDuplex_Configure(p_serial,
            (HAL_Serial **)p_serialUART, aWriteBufferSize, aReadBufferSize,
            UEZGPIOGetPort(aDriveEnablePortPin), 1
                    <<UEZ_GPIO_PIN_FROM_PORT_PIN(aDriveEnablePortPin),
            aDriveEnablePolarity, aDriveEnableReleaseTime);
}
/*---------------------------------------------------------------------------*
 * Routine:  ButtonBank_NXP_PCA9551_Create
 *---------------------------------------------------------------------------*
 * Description:
 *      Create a PCA9551 Button Bank driver.
 * Inputs:
 *      const char *aName           -- Name of this created device driver
 *      const char *aI2CBusName     -- I2C Bus to use
 *      TUInt8 aI2CAddr             -- 7-bit I2C address of PCA9551
 *---------------------------------------------------------------------------*/
T_uezError ButtonBank_NXP_PCA9551_Create(
    const char *aName,
    const char *aI2CBusName,
    TUInt8 aI2CAddr)
{
    void *p;
    T_uezDevice i2c;
    DEVICE_I2C_BUS **p_i2c;
    T_uezError error;

    UEZDeviceTableRegister(aName,
        (T_uezDeviceInterface *)&ButtonBank_NXP_PCA9551_Interface, 0,
        (T_uezDeviceWorkspace **)&p);

    error = UEZDeviceTableFind(aI2CBusName, &i2c);
    if (error)
        return error;

    UEZDeviceTableGetWorkspace(i2c, (T_uezDeviceWorkspace **)&p_i2c);

    ButtonBank_NXP_PCA9551_Configure(p, p_i2c, aI2CAddr);

    return UEZ_ERROR_NONE;
}
T_uezError Touchscreen_EXC7200_Create(const char *aName,
                                        const char *aI2CBus,
                                        T_uezGPIOPortPin aInteruptPin,
                                        T_uezGPIOPortPin aResetPin)
{
    T_uezDevice device;
    T_uezDeviceWorkspace *workspace;
    T_EXC7200Workspace *p;

    // Need to register touchscreen device
    UEZDeviceTableRegister(aName,
            (T_uezDeviceInterface *)&Touchscreen_EXC7200_Interface,
            &device, &workspace);

    p = (T_EXC7200Workspace *)workspace;

    strcpy(p->iI2CBus, aI2CBus);
    p->iResetPin = aResetPin;
    p->iInteruptPin = aInteruptPin;

    TS_EXC7200_Configure((T_uezDeviceWorkspace*)p);

    return UEZ_ERROR_NONE;
}