#include <stddef.h>
// #include "RTE.h"
#include "BU91R65_Porting.h"
#include "RTE_GPIO.h"

int32_t BU91R65_GPIO_Init(BU91R65_Pin_Map_st_t *pstPinMap)
{
    int32_t i32Result;

    i32Result = -1;
    if (pstPinMap != NULL)
    {
        i32Result = 0;
        
        /* CSB = 1 */
        // if (i32Result == 0)
        // {
            // RTE_GPIO_Set_GPIO_Mode(pstPinMap->u16PinCS);
            // RTE_GPIO_Set_Direction(pstPinMap->u16PinCS, RTE_GPIO_DIR_OUT);
            // RTE_GPIO_Set_Level(pstPinMap->u16PinCS, GPIO_Level_High);
            BU91R65_CHIP0_CSB = GPIO_Level_High;
            BU91R65_CHIP1_CSB = GPIO_Level_High;
        // }

        /* SCLK = 1 */
        // if (i32Result == 0)
        // {
            // RTE_GPIO_Set_GPIO_Mode(pstPinMap->u16PinSCLK);
            // RTE_GPIO_Set_Direction(pstPinMap->u16PinSCLK, RTE_GPIO_DIR_OUT);
            // RTE_GPIO_Set_Level(pstPinMap->u16PinSCLK, GPIO_Level_Low);
            BU91R65_CHIP0_SCL = GPIO_Level_High;
            BU91R65_CHIP1_SCL = GPIO_Level_High;
        // }

        /* SD = 0 */
        // if (i32Result == 0)/*Note: SD = 1*/
        // {
            // RTE_GPIO_Set_GPIO_Mode(pstPinMap->u16PinSD);
            // RTE_GPIO_Set_Direction(pstPinMap->u16PinSD, RTE_GPIO_DIR_OUT);
            // RTE_GPIO_Set_Level(pstPinMap->u16PinSD, GPIO_Level_Low);
            BU91R65_CHIP0_SD = GPIO_Level_Low;
            BU91R65_CHIP1_SD = GPIO_Level_Low;
        // }
    }

    return i32Result;
}

void BU91R65_Chip0_Set_nCS(uint8_t u8Level)
{
    BU91R65_CHIP0_CSB = u8Level;
}

void BU91R65_Chip0_Set_SCLK(uint8_t u8Level)
{
    BU91R65_CHIP0_SCL = u8Level;
}

void BU91R65_Chip0_Set_SD(uint8_t u8Level)
{
    BU91R65_CHIP0_SD = u8Level;
}
void BU91R65_Chip1_Set_nCS(uint8_t u8Level)
{
    BU91R65_CHIP1_CSB = u8Level;
}

void BU91R65_Chip1_Set_SCLK(uint8_t u8Level)
{
    BU91R65_CHIP1_SCL = u8Level;
}

void BU91R65_Chip1_Set_SD(uint8_t u8Level)
{
    BU91R65_CHIP1_SD = u8Level;
}
