-/******************************************************************** **\r
-* Uti.h\r
-* Function Definitions\r
-*\r
-********************************************************************/\r
-\r
-#include "gpio.h"\r
-#include "pinctrl_porting.h"\r
-#include "chip_io.h"\r
-#include "debug_print.h"\r
-#include "pinctrl.h"\r
-\r
-#include "A5133define.h"\r
-#include "A5133Uti.h"\r
-\r
-static void nop(void){}\r
-\r
-/**********************************************************\r
-* Delay1ms\r
-**********************************************************/\r
-void Delay1ms(Uint8 n)\r
-{\r
- LOS_Mdelay(n);\r
-}\r
-\r
-/**********************************************************\r
-* Delay10ms\r
-**********************************************************/\r
-void Delay10ms(Uint8 n)\r
-{\r
- LOS_Mdelay(n*10);\r
-}\r
-\r
-/**********************************************************\r
-* Delay100us\r
-**********************************************************/\r
-void Delay100us(Uint8 n)\r
-{\r
- LOS_Udelay(n*100);\r
-}\r
-\r
-/**********************************************************\r
-* Delay10us\r
-**********************************************************/\r
-void Delay10us(Uint8 n)\r
-{\r
- LOS_Udelay(n*10);\r
-}\r
-\r
-\r
-/**direction 1 out , 0 in*/\r
-errcode_t a5133_gpio_set_direction(pin_t pin, int direction)\r
-{\r
- errcode_t ret = ERRCODE_SUCC;\r
-\r
- if (direction)\r
- {\r
- ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_OUTPUT);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
- }\r
- }else{\r
- ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_INPUT);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
- }\r
- }\r
-\r
- return ret;\r
-}\r
-\r
-\r
-errcode_t a5133_gpio_set_value(pin_t pin,uint8_t value)\r
-{\r
- errcode_t ret = ERRCODE_SUCC;\r
- if (value == 1) {\r
- ret = uapi_gpio_set_val(pin, GPIO_LEVEL_HIGH);\r
- } else if (value == 0) {\r
- ret = uapi_gpio_set_val(pin, GPIO_LEVEL_LOW);\r
- } else {\r
- return ERRCODE_FAIL;\r
- }\r
- return ret;\r
-}\r
-\r
-uint8_t a5133_gpio_get_value(pin_t pin)\r
-{\r
- gpio_level_t gpio_level;\r
- gpio_level = uapi_gpio_get_val(pin);\r
- if (gpio_level == GPIO_LEVEL_HIGH) {\r
- // PRINT("read level is %d\r\n", GPIO_LEVEL_HIGH);\r
- } else {\r
- // PRINT("read level is %d\r\n", GPIO_LEVEL_LOW);\r
- }\r
- return gpio_level;\r
-}\r
-\r
-#define SCS_OUT S_MGPIO9 //spi SCS\r
-#define SCK_OUT S_MGPIO8 //spi SCK\r
-#define SDIO_IN_OUT S_MGPIO7 //spi SDIO\r
-#define GIO1_IN S_MGPIO6 //GPIO1\r
-\r
-uint8_t a5133_gpio_get_gio1_value(void)\r
-{\r
- return a5133_gpio_get_value(GIO1_IN);\r
-}\r
-\r
-errcode_t a5133_gpio_scs_set_value(uint8_t value)\r
-{\r
- if(value)\r
- return a5133_gpio_set_value(SCS_OUT,1);\r
- else\r
- return a5133_gpio_set_value(SCS_OUT,0);\r
-}\r
-\r
-errcode_t a5133_gpio_sdio_set_value(uint8_t value)\r
-{\r
- if(value)\r
- return a5133_gpio_set_value(SDIO_IN_OUT,1);\r
- else\r
- return a5133_gpio_set_value(SDIO_IN_OUT,0);\r
-}\r
-errcode_t a5133_gpio_sck_set_value(uint8_t value)\r
-{\r
- if(value)\r
- return a5133_gpio_set_value(SCK_OUT,1);\r
- else\r
- return a5133_gpio_set_value(SCK_OUT,0);\r
-}\r
-errcode_t a5133_gpio_init(void)\r
-{\r
-\r
- errcode_t ret = ERRCODE_SUCC;\r
- \r
- ret = uapi_pin_set_mode(SCS_OUT, HAL_PIO_FUNC_GPIO);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
- }\r
-\r
- ret = uapi_pin_set_mode(SCK_OUT, HAL_PIO_FUNC_GPIO);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
- }\r
-\r
- ret = uapi_pin_set_mode(SDIO_IN_OUT, HAL_PIO_FUNC_GPIO);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
- }\r
-\r
- ret = uapi_pin_set_mode(GIO1_IN, HAL_PIO_FUNC_GPIO);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
- }\r
-\r
- ret = a5133_gpio_set_direction(SCS_OUT,1);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
- }\r
-\r
-\r
- ret = a5133_gpio_set_direction(SCK_OUT,1);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
- }\r
- ret = a5133_gpio_set_direction(SDIO_IN_OUT,1);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
- }\r
- ret = a5133_gpio_set_direction(GIO1_IN,0);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
- }\r
- return ret;\r
-}\r
-\r
-\r
-// int test_gpio_toggle(pin_t pin, int level)\r
-// {\r
- \r
-// errcode_t ret = ERRCODE_SUCC;\r
-\r
-// PRINT("[Params] PIN:%d, levle: %d. \r\n", pin, (uint32_t)level);\r
-// ret = uapi_pin_set_mode(pin, HAL_PIO_FUNC_GPIO);\r
-// if (ret != ERRCODE_SUCC) {\r
-// return ERRCODE_FAIL;\r
-// }\r
-\r
-// ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_OUTPUT);\r
-// if (ret != ERRCODE_SUCC) {\r
-// return ERRCODE_FAIL;\r
-// }\r
-\r
-// if (level == 1) {\r
-// uapi_gpio_set_val(pin, GPIO_LEVEL_HIGH);\r
-// } else if (level == 0) {\r
-// uapi_gpio_set_val(pin, GPIO_LEVEL_LOW);\r
-// } else {\r
-// return ERRCODE_FAIL;\r
-// }\r
-\r
-// ret = uapi_gpio_toggle(pin);\r
-// if (ret != ERRCODE_SUCC) {\r
-// return ERRCODE_FAIL;\r
-// }\r
-\r
-// gpio_level_t gpio_level;\r
-// gpio_level = uapi_gpio_get_val(pin);\r
-// if (gpio_level != (gpio_level_t)level) {\r
-// PRINT("gpio toggle success\r\n");\r
-// PRINT("read level is %d\r\n", gpio_level);\r
-// } else {\r
-// PRINT("gpio toggle failed\r\n");\r
-// PRINT("read level is %d\r\n", gpio_level);\r
-// return ERRCODE_FAIL;\r
-// }\r
-\r
-// return ERRCODE_SUCC;\r
-// }\r
-\r
-\r
-\r
-/************************************************************************\r
-** RF_WriteReg\r
-************************************************************************/\r
-void RF_WriteReg(Uint8 addr, Uint8 dataByte)\r
-{\r
- a5133_gpio_scs_set_value(0);\r
- ByteSend(addr);//bit7 cmd=0, bit6 r/w=0\r
- ByteSend(dataByte);\r
- a5133_gpio_scs_set_value(1);\r
-}\r
-\r
-/************************************************************************\r
-** RF_ReadReg\r
-************************************************************************/\r
-Uint8 RF_ReadReg(Uint8 addr)\r
-{\r
- Uint8 tmp;\r
-\r
- a5133_gpio_scs_set_value(0);\r
- ByteSend(addr | 0x40);//bit7 cmd=0,bit6 r/w=1\r
- tmp = ByteRead();\r
- a5133_gpio_scs_set_value(1);\r
-\r
- return tmp;\r
-}\r
-\r
-/************************************************************************\r
-** ByteSend\r
-************************************************************************/\r
-void ByteSend(Uint8 src)\r
-{\r
- Uint8 i;\r
-\r
- for(i = 0; i < 8; i++)\r
- {\r
- if(src & 0x80)\r
- a5133_gpio_set_value(SDIO_IN_OUT,1);\r
- else\r
- a5133_gpio_set_value(SDIO_IN_OUT,0); \r
-\r
- nop();\r
- a5133_gpio_set_value(SCK_OUT,1);\r
- nop();\r
- a5133_gpio_set_value(SCK_OUT,0);\r
- src = src << 1;\r
- }\r
-}\r
-\r
-/************************************************************************\r
-** ByteRead\r
-************************************************************************/\r
-Uint8 ByteRead(void)\r
-{\r
- Uint8 i,tmp;\r
-\r
- //sdio pull high\r
- a5133_gpio_sdio_set_value(1); \r
- // P0OE = P0OE & (~0x02);\r
-\r
- a5133_gpio_set_direction(SDIO_IN_OUT,0);\r
- for(i = 0; i < 8; i++)\r
- {\r
- if(a5133_gpio_get_value(SDIO_IN_OUT))\r
- tmp = (tmp << 1) | 0x01;\r
- else\r
- tmp = tmp << 1;\r
-\r
- a5133_gpio_sck_set_value(1); \r
- nop();\r
- a5133_gpio_sck_set_value(0); \r
- }\r
- a5133_gpio_set_direction(SDIO_IN_OUT,1);\r
- // P0OE = P0OE | (0x02);\r
- return tmp;\r
+/******************************************************************** **
+* Uti.h
+* Function Definitions
+*
+********************************************************************/
+
+#include "gpio.h"
+#include "pinctrl_porting.h"
+#include "chip_io.h"
+#include "debug_print.h"
+#include "pinctrl.h"
+#include "spi.h"
+// #include "spi_porting.h"
+
+#include "A5133define.h"
+#include "A5133Uti.h"
+// #include "hal_spi_v100_regs_op.h"
+
+
+static void nop(void){}
+
+/**********************************************************
+* Delay1ms
+**********************************************************/
+void Delay1ms(Uint8 n)
+{
+ LOS_Mdelay(n);
+}
+
+/**********************************************************
+* Delay10ms
+**********************************************************/
+void Delay10ms(Uint8 n)
+{
+ LOS_Mdelay(n*10);
+}
+
+/**********************************************************
+* Delay100us
+**********************************************************/
+void Delay100us(Uint8 n)
+{
+ LOS_Udelay(n*100);
+}
+
+/**********************************************************
+* Delay10us
+**********************************************************/
+void Delay10us(Uint8 n)
+{
+ LOS_Udelay(n*10);
+}
+
+typedef struct flash_cfg {
+ uint32_t isinit; /*!< @if Eng Flash is init.
+ @else Flash 是否初始化。@endif */
+ uint32_t qspi_isinit; /*!< @if Eng Flash qspi is init.
+ @else Flash qspi是否初始化。@endif */
+ uint32_t unique_id; /*!< @if Eng Flash unique id.
+ @else Flash 唯一 id。@endif */
+ spi_bus_t bus; /*!< @if Eng Flash spi bus.
+ @else Flash 使用的 spi bus。@endif */
+ hal_spi_frame_format_t mode; /*!< @if Eng Flash trans mode.
+ @else Flash 传输模式。@endif */
+ spi_attr_t attr; /*!< @if Eng Flash spi attr.
+ @else Flash spi 基础配置。@endif */
+ spi_extra_attr_t extra_attr; /*!< @if Eng Flash spi extra attr.
+ @else Flash spi 拓展配置。@endif */
+} a5133_cfg_t;
+static a5133_cfg_t g_flash_porting_config[1] = {
+ {
+ .bus = SPI_BUS_1,
+ .attr = {
+ .is_slave = false,
+ .slave_num = 1,
+ .bus_clk = 40000000,
+ .freq_mhz = 10,
+ .clk_polarity = (uint32_t)SPI_CFG_CLK_CPOL_1,
+ .clk_phase = (uint32_t)SPI_CFG_CLK_CPHA_1,
+ .frame_format = SPI_CFG_FRAME_FORMAT_NS_MICROWIRE,
+ .spi_frame_format = (uint32_t)HAL_SPI_FRAME_FORMAT_STANDARD,
+ .frame_size = (uint32_t)HAL_SPI_FRAME_SIZE_8,
+ .tmod = HAL_SPI_TRANS_MODE_TX,
+ .sste = SPI_CFG_SSTE_DISABLE,
+ .ndf = 1,
+ },
+ .extra_attr = {
+ .tx_use_dma = false,
+ .rx_use_dma = false,
+ .qspi_param = {0},
+ .sspi_param = {0},
+ },
+ },
+};
+
+
+extern void uapi_cat1_wakeup_cat1(uint8_t wakeup);
+
+
+static errcode_t spi1_init(void)
+{
+ errcode_t ret = uapi_spi_deinit(g_flash_porting_config[0].bus);
+ if(ret != ERRCODE_SUCC)
+ {
+ printf("uapi_spi_deinit failed 0x%x\n",ret);
+ }
+ ret = uapi_spi_init(g_flash_porting_config[0].bus,
+ &g_flash_porting_config[0].attr,
+ &g_flash_porting_config[0].extra_attr);
+ return ret;
+}
+
+
+/**direction 1 out , 0 in*/
+errcode_t a5133_gpio_set_direction(pin_t pin, int direction)
+{
+ errcode_t ret = ERRCODE_SUCC;
+#ifdef A5133_USE_HW_SPI
+
+#else
+ // ret = uapi_pin_set_mode(pin, HAL_PIO_FUNC_GPIO);
+ // if (ret != ERRCODE_SUCC) {
+ // printf("uapi_pin_set_mode failed\n");
+ // return ERRCODE_FAIL;
+ // }
+
+ if (direction)
+ {
+ ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_OUTPUT);
+ if (ret != ERRCODE_SUCC) {
+ printf("uapi_gpio_set_dir GPIO_DIRECTION_OUTPUT failed\n");
+ return ERRCODE_FAIL;
+ }
+ }else{
+ ret = uapi_pin_set_pull(pin, (pin_pull_t)HAL_PIO_PULL_DOWN);
+ if (ret != ERRCODE_SUCC) {
+ printf("uapi_pin_set_pull failed\n");
+ return ERRCODE_FAIL;
+ }
+
+ ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_INPUT);
+ if (ret != ERRCODE_SUCC) {
+ printf("uapi_gpio_set_dir GPIO_DIRECTION_INPUT failed\n");
+ return ERRCODE_FAIL;
+ }
+ }
+#endif
+ return ret;
+}
+
+
+errcode_t a5133_gpio_set_value(pin_t pin,uint8_t value)
+{
+ errcode_t ret = ERRCODE_SUCC;
+
+#ifdef A5133_USE_HW_SPI
+
+#else
+ if (value == 1) {
+ ret = uapi_gpio_set_val(pin, GPIO_LEVEL_HIGH);
+ } else if (value == 0) {
+ ret = uapi_gpio_set_val(pin, GPIO_LEVEL_LOW);
+ } else {
+ return ERRCODE_FAIL;
+ }
+#endif
+ return ret;
+}
+
+uint8_t a5133_gpio_get_value(pin_t pin)
+{
+ gpio_level_t gpio_level = GPIO_LEVEL_HIGH;
+#ifdef A5133_USE_HW_SPI
+
+#else
+ gpio_level = uapi_gpio_get_val(pin);
+ if (gpio_level == GPIO_LEVEL_HIGH) {
+ // PRINT("read level is %d\r\n", GPIO_LEVEL_HIGH);
+ } else {
+ // PRINT("read level is %d\r\n", GPIO_LEVEL_LOW);
+ }
+#endif
+ return gpio_level;
+}
+
+#define SCS_OUT S_MGPIO9 //spi SCS
+#define SCK_OUT S_MGPIO8 //spi SCK
+#define SDIO_IN_OUT S_MGPIO6 //spi SDIO
+#define GIO1_IN S_MGPIO7 //GPIO1
+
+uint8_t a5133_gpio_get_gio1_value(void)
+{
+ return a5133_gpio_get_value(GIO1_IN);
+}
+
+errcode_t a5133_gpio_scs_set_value(uint8_t value)
+{
+ if(value)
+ return a5133_gpio_set_value(SCS_OUT,1);
+ else
+ return a5133_gpio_set_value(SCS_OUT,0);
+}
+
+errcode_t a5133_gpio_sdio_set_value(uint8_t value)
+{
+ if(value)
+ return a5133_gpio_set_value(SDIO_IN_OUT,1);
+ else
+ return a5133_gpio_set_value(SDIO_IN_OUT,0);
+}
+errcode_t a5133_gpio_sck_set_value(uint8_t value)
+{
+ if(value)
+ return a5133_gpio_set_value(SCK_OUT,1);
+ else
+ return a5133_gpio_set_value(SCK_OUT,0);
+}
+errcode_t a5133_gpio_init(void)
+{
+
+ errcode_t ret = ERRCODE_SUCC;
+#ifdef A5133_USE_HW_SPI
+
+
+ printf("SPI1_INIT \n");
+ ret= spi1_init();
+ printf("SPI1_INIT ret %x\n",ret);
+#else
+ ret = uapi_pin_set_mode(SCS_OUT, HAL_PIO_FUNC_GPIO);
+ if (ret != ERRCODE_SUCC) {
+ return ERRCODE_FAIL;
+ }
+
+ ret = uapi_pin_set_mode(SCK_OUT, HAL_PIO_FUNC_GPIO);
+ if (ret != ERRCODE_SUCC) {
+ return ERRCODE_FAIL;
+ }
+
+ ret = uapi_pin_set_mode(SDIO_IN_OUT, HAL_PIO_FUNC_GPIO);
+ if (ret != ERRCODE_SUCC) {
+ return ERRCODE_FAIL;
+ }
+
+ ret = uapi_pin_set_mode(GIO1_IN, HAL_PIO_FUNC_GPIO);
+ if (ret != ERRCODE_SUCC) {
+ return ERRCODE_FAIL;
+ }
+
+ ret = a5133_gpio_set_direction(SCS_OUT,1);
+ if (ret != ERRCODE_SUCC) {
+ return ERRCODE_FAIL;
+ }
+
+
+ ret = a5133_gpio_set_direction(SCK_OUT,1);
+ if (ret != ERRCODE_SUCC) {
+ return ERRCODE_FAIL;
+ }
+ ret = a5133_gpio_set_direction(SDIO_IN_OUT,1);
+ if (ret != ERRCODE_SUCC) {
+ return ERRCODE_FAIL;
+ }
+ ret = a5133_gpio_set_direction(GIO1_IN,0);
+ if (ret != ERRCODE_SUCC) {
+ return ERRCODE_FAIL;
+ }
+
+ ret = a5133_gpio_set_direction(S_AGPIO_L30,1);
+ if (ret != ERRCODE_SUCC) {
+ return ERRCODE_FAIL;
+ }
+#endif
+ return ret;
+}
+
+
+// int test_gpio_toggle(pin_t pin, int level)
+// {
+
+// errcode_t ret = ERRCODE_SUCC;
+
+// PRINT("[Params] PIN:%d, levle: %d. \r\n", pin, (uint32_t)level);
+// ret = uapi_pin_set_mode(pin, HAL_PIO_FUNC_GPIO);
+// if (ret != ERRCODE_SUCC) {
+// return ERRCODE_FAIL;
+// }
+
+// ret = uapi_gpio_set_dir(pin, GPIO_DIRECTION_OUTPUT);
+// if (ret != ERRCODE_SUCC) {
+// return ERRCODE_FAIL;
+// }
+
+// if (level == 1) {
+// uapi_gpio_set_val(pin, GPIO_LEVEL_HIGH);
+// } else if (level == 0) {
+// uapi_gpio_set_val(pin, GPIO_LEVEL_LOW);
+// } else {
+// return ERRCODE_FAIL;
+// }
+
+// ret = uapi_gpio_toggle(pin);
+// if (ret != ERRCODE_SUCC) {
+// return ERRCODE_FAIL;
+// }
+
+// gpio_level_t gpio_level;
+// gpio_level = uapi_gpio_get_val(pin);
+// if (gpio_level != (gpio_level_t)level) {
+// PRINT("gpio toggle success\r\n");
+// PRINT("read level is %d\r\n", gpio_level);
+// } else {
+// PRINT("gpio toggle failed\r\n");
+// PRINT("read level is %d\r\n", gpio_level);
+// return ERRCODE_FAIL;
+// }
+
+// return ERRCODE_SUCC;
+// }
+
+
+
+
+
+/************************************************************************
+** ByteSend
+************************************************************************/
+errcode_t ByteSend(Uint8 src)
+{
+ errcode_t ret = ERRCODE_SUCC;
+
+#ifdef A5133_USE_HW_SPI
+ uint8_t tmp = src;
+ printf("spi%d ByteSend 0x%02x\n",g_flash_porting_config[0].bus,tmp);
+ //printf("uapi_spi_set_attr\n");
+ // ret=uapi_spi_set_attr(g_flash_porting_config[0].bus, &g_flash_porting_config[0].attr) ;
+ // if (ret != ERRCODE_SUCC) {
+
+ // printf("ByteSend uapi_spi_set_attr ret 0x%X\n",ret);
+ // return ERRCODE_FAIL;
+ // }
+ // printf("uapi_spi_set_extra_attr\n");
+ // ret = uapi_spi_set_extra_attr(g_flash_porting_config[0].bus, &g_flash_porting_config[0].extra_attr);
+ // if (ret != ERRCODE_SUCC) {
+
+ // printf("ByteSend uapi_spi_set_extra_attr ret 0x%X\n",ret);
+ // return ERRCODE_FAIL;
+ // }
+
+ spi_xfer_data_t sdata ={0} ;
+ sdata.tx_buff = &tmp;
+ sdata.tx_bytes = 1;
+ sdata.rx_buff = NULL;
+ sdata.rx_bytes = 0;
+
+ ret = uapi_spi_master_write(g_flash_porting_config[0].bus, &sdata, 0xFFFFFFFE);
+
+ if (ret != ERRCODE_SUCC)
+ {
+ printf("ByteSend failed ret 0x%X\n",ret);
+ return ERRCODE_FAIL;
+ }
+ printf("spi%d ByteSend 0x%02x\n",g_flash_porting_config[0].bus,tmp);
+
+#else
+ Uint8 i;
+ //nop();
+ //uapi_cat1_wakeup_cat1(1);
+ a5133_gpio_set_value(S_AGPIO_L30,1);
+ //uapi_gpio_set_val(S_AGPIO_L30, GPIO_LEVEL_HIGH);
+ // a5133_gpio_set_value(GIO1_IN,1);
+ for(i = 0; i < 8; i++)
+ {
+ if(src & 0x80)
+ a5133_gpio_set_value(SDIO_IN_OUT,1);
+ else
+ a5133_gpio_set_value(SDIO_IN_OUT,0);
+
+ nop();
+ // a5133_gpio_set_value(SCK_OUT,1);
+ a5133_gpio_sck_set_value(1);
+ nop();
+ a5133_gpio_sck_set_value(0);
+ // a5133_gpio_set_value(SCK_OUT,0);
+ src = src << 1;
+ }
+ // a5133_gpio_set_value(GIO1_IN,0);
+ //nop();
+ //uapi_cat1_wakeup_cat1(0);
+ a5133_gpio_set_value(S_AGPIO_L30,0);
+#endif
+ return ret;
+}
+
+/************************************************************************
+** ByteRead
+************************************************************************/
+Uint8 ByteRead(void)
+{
+
+#ifdef A5133_USE_HW_SPI
+ Uint8 tmp;
+
+ spi_xfer_data_t sdata = {0};
+ sdata.rx_buff = &tmp;
+ sdata.rx_bytes = 1;
+ printf("spi%d ByteRead\n",g_flash_porting_config[0].bus);
+
+ errcode_t ret = uapi_spi_master_read(g_flash_porting_config[0].bus, &sdata, 0xFFFFFFFF);
+ printf("spi%d ByteRead 0x%x ret = 0x%x\n",g_flash_porting_config[0].bus,tmp,ret);
+
+ return tmp;
+#else
+ Uint8 i,tmp;
+
+ //sdio pull high
+ a5133_gpio_sdio_set_value(1);
+ //nop();
+ //uapi_cat1_wakeup_cat1(1);
+ a5133_gpio_set_value(S_AGPIO_L30,1);
+ // a5133_gpio_set_value(GIO1_IN,1);
+ // P0OE = P0OE & (~0x02);
+ a5133_gpio_set_direction(SDIO_IN_OUT,0);
+
+ // Delay10us(1);
+ for(i = 0; i < 8; i++)
+ {
+ if(a5133_gpio_get_value(SDIO_IN_OUT))
+ tmp = (tmp << 1) | 0x01;
+ else
+ tmp = tmp << 1;
+
+ // a5133_gpio_set_value(SCK_OUT,1);
+ a5133_gpio_sck_set_value(1);
+ nop();
+ // a5133_gpio_set_value(SCK_OUT,0);
+ a5133_gpio_sck_set_value(0);
+ }
+ a5133_gpio_set_direction(SDIO_IN_OUT,1);
+ //nop();
+ //uapi_cat1_wakeup_cat1(0);
+ a5133_gpio_set_value(S_AGPIO_L30,0);
+ // a5133_gpio_set_value(GIO1_IN,0);
+ printf("ByteRead tmp[%2X]\n",tmp);
+ // P0OE = P0OE | (0x02);
+ return tmp;
+#endif
+
}
\ No newline at end of file