Skip to content

Commit

Permalink
sync PikaStdDevice
Browse files Browse the repository at this point in the history
  • Loading branch information
pikasTech committed May 5, 2024
1 parent cb98320 commit 599759a
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions package/PikaStdDevice/pika_hal_SOFT_SPI.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ int pika_hal_platform_SOFT_SPI_ioctl_enable(pika_dev* dev) {
pika_debug("SOFT_SPI_ioctl_enable, dev[0x%p]", dev);
pika_hal_SOFT_SPI_config* cfg =
(pika_hal_SOFT_SPI_config*)dev->ioctl_config;
if (cfg->SCK == NULL || cfg->MOSI == NULL) {
if (cfg->SCK == NULL || (cfg->MOSI == NULL && cfg->MISO == NULL)) {
__platform_printf(
"Error: SOFT SPI config error, CS, SCK, MOSI, MISO must be "
"Error: SOFT SPI config error, CS, SCK, (MOSI or MISO) must be "
"set\r\n");
return -1;
}
Expand All @@ -55,15 +55,18 @@ int pika_hal_platform_SOFT_SPI_ioctl_enable(pika_dev* dev) {
cfg_SCK.dir = PIKA_HAL_GPIO_DIR_OUT;
cfg_MOSI.dir = PIKA_HAL_GPIO_DIR_OUT;
cfg_MISO.dir = PIKA_HAL_GPIO_DIR_IN;
cfg_MISO.pull = PIKA_HAL_GPIO_PULL_UP;

if (NULL != cfg->CS) {
pika_debug("CS[0x%p] config", cfg->CS);
pika_hal_ioctl(cfg->CS, PIKA_HAL_IOCTL_CONFIG, &cfg_CS);
}
pika_debug("SCK[0x%p] config", cfg->SCK);
pika_hal_ioctl(cfg->SCK, PIKA_HAL_IOCTL_CONFIG, &cfg_SCK);
pika_debug("MOSI[0x%p] config", cfg->MOSI);
pika_hal_ioctl(cfg->MOSI, PIKA_HAL_IOCTL_CONFIG, &cfg_MOSI);
if (NULL != cfg->MOSI){
pika_debug("MOSI[0x%p] config", cfg->MOSI);
pika_hal_ioctl(cfg->MOSI, PIKA_HAL_IOCTL_CONFIG, &cfg_MOSI);
}
if (NULL != cfg->MISO) {
pika_debug("MISO[0x%p] config", cfg->MISO);
pika_hal_ioctl(cfg->MISO, PIKA_HAL_IOCTL_CONFIG, &cfg_MISO);
Expand All @@ -75,8 +78,10 @@ int pika_hal_platform_SOFT_SPI_ioctl_enable(pika_dev* dev) {
}
pika_debug("SCK[0x%p] enable", cfg->SCK);
pika_hal_ioctl(cfg->SCK, PIKA_HAL_IOCTL_ENABLE);
pika_debug("MOSI[0x%p] enable", cfg->MOSI);
pika_hal_ioctl(cfg->MOSI, PIKA_HAL_IOCTL_ENABLE);
if (NULL != cfg->MOSI){
pika_debug("MOSI[0x%p] enable", cfg->MOSI);
pika_hal_ioctl(cfg->MOSI, PIKA_HAL_IOCTL_ENABLE);
}
if (NULL != cfg->MISO) {
pika_debug("MISO[0x%p] enable", cfg->MISO);
pika_hal_ioctl(cfg->MISO, PIKA_HAL_IOCTL_ENABLE);
Expand All @@ -86,7 +91,9 @@ int pika_hal_platform_SOFT_SPI_ioctl_enable(pika_dev* dev) {
_GPIO_write(cfg->CS, 1);
}
_GPIO_write(cfg->SCK, 1);
_GPIO_write(cfg->MOSI, 1);
if (NULL != cfg->MOSI){
_GPIO_write(cfg->MOSI, 1);
}
return 0;
}

Expand Down

0 comments on commit 599759a

Please sign in to comment.