diff --git a/boards/xtensa/esp32/common/src/Make.defs b/boards/xtensa/esp32/common/src/Make.defs index c7df432748..2cfeef40e9 100644 --- a/boards/xtensa/esp32/common/src/Make.defs +++ b/boards/xtensa/esp32/common/src/Make.defs @@ -30,6 +30,10 @@ ifeq ($(CONFIG_I2C_DRIVER),y) CSRCS += esp32_board_i2c.c endif +ifeq ($(CONFIG_ESP32_SPI),y) + CSRCS += esp32_board_spi.c +endif + ifeq ($(CONFIG_ESP32_WIRELESS),y) CSRCS += esp32_board_wlan.c endif diff --git a/boards/xtensa/esp32/esp32-devkitc/src/esp32_spi.c b/boards/xtensa/esp32/common/src/esp32_board_spi.c similarity index 51% rename from boards/xtensa/esp32/esp32-devkitc/src/esp32_spi.c rename to boards/xtensa/esp32/common/src/esp32_board_spi.c index cb74f9d9f3..3b7d32d4f1 100644 --- a/boards/xtensa/esp32/esp32-devkitc/src/esp32_spi.c +++ b/boards/xtensa/esp32/common/src/esp32_board_spi.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/xtensa/esp32/esp32-devkitc/src/esp32_spi.c + * boards/xtensa/esp32/common/src/esp32_board_spi.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -31,17 +31,17 @@ #include #include -#include "esp32-devkitc.h" +#include "esp32_gpio.h" /**************************************************************************** - * Public Functions + * Private Functions ****************************************************************************/ /**************************************************************************** - * Name: esp32_spi2_status + * Name: spi_status ****************************************************************************/ -uint8_t esp32_spi2_status(FAR struct spi_dev_s *dev, uint32_t devid) +static inline uint8_t spi_status(FAR struct spi_dev_s *dev, uint32_t devid) { uint8_t status = 0; @@ -56,12 +56,77 @@ uint8_t esp32_spi2_status(FAR struct spi_dev_s *dev, uint32_t devid) } /**************************************************************************** - * Name: esp32_spi3_status + * Name: spi_cmddata ****************************************************************************/ +#ifdef CONFIG_SPI_CMDDATA + +static inline int spi_cmddata(FAR struct spi_dev_s *dev, uint32_t devid, + bool cmd) +{ + return -ENODEV; +} + +#endif + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: esp32_spi2_status + ****************************************************************************/ + +#ifdef CONFIG_ESP32_SPI2 + +uint8_t esp32_spi2_status(FAR struct spi_dev_s *dev, uint32_t devid) +{ + return spi_status(dev, devid); +} + +#endif + +/**************************************************************************** + * Name: esp32_spi2_cmddata + ****************************************************************************/ + +#if defined(CONFIG_ESP32_SPI2) && defined(CONFIG_SPI_CMDDATA) + +int esp32_spi2_cmddata(FAR struct spi_dev_s *dev, uint32_t devid, bool cmd) +{ + spiinfo("devid: %" PRIu32 " CMD: %s\n", devid, cmd ? "command" : + "data"); + + return spi_cmddata(dev, devid, cmd); +} + +#endif + +/**************************************************************************** + * Name: esp32_spi3_status + ****************************************************************************/ + +#ifdef CONFIG_ESP32_SPI3 + uint8_t esp32_spi3_status(FAR struct spi_dev_s *dev, uint32_t devid) { - uint8_t status = 0; - - return status; + return spi_status(dev, devid); } + +#endif + +/**************************************************************************** + * Name: esp32_spi3_cmddata + ****************************************************************************/ + +#if defined(CONFIG_ESP32_SPI3) && defined(CONFIG_SPI_CMDDATA) + +int esp32_spi3_cmddata(FAR struct spi_dev_s *dev, uint32_t devid, bool cmd) +{ + spiinfo("devid: %" PRIu32 " CMD: %s\n", devid, cmd ? "command" : + "data"); + + return spi_cmddata(dev, devid, cmd); +} + +#endif diff --git a/boards/xtensa/esp32/esp32-devkitc/src/Make.defs b/boards/xtensa/esp32/esp32-devkitc/src/Make.defs index 1822fa5e12..a30a0c3e9d 100644 --- a/boards/xtensa/esp32/esp32-devkitc/src/Make.defs +++ b/boards/xtensa/esp32/esp32-devkitc/src/Make.defs @@ -33,10 +33,6 @@ CSRCS += esp32_reset.c endif endif -ifeq ($(CONFIG_ESP32_SPI),y) -CSRCS += esp32_spi.c -endif - ifeq ($(CONFIG_MMCSD),y) CSRCS += esp32_mmcsd.c endif diff --git a/boards/xtensa/esp32/esp32-ethernet-kit/src/Make.defs b/boards/xtensa/esp32/esp32-ethernet-kit/src/Make.defs index 9bad435eff..f0d4593874 100644 --- a/boards/xtensa/esp32/esp32-ethernet-kit/src/Make.defs +++ b/boards/xtensa/esp32/esp32-ethernet-kit/src/Make.defs @@ -33,10 +33,6 @@ CSRCS += esp32_reset.c endif endif -ifeq ($(CONFIG_ESP32_SPI),y) -CSRCS += esp32_spi.c -endif - ifeq ($(CONFIG_MMCSD),y) CSRCS += esp32_mmcsd.c endif diff --git a/boards/xtensa/esp32/esp32-ethernet-kit/src/esp32_spi.c b/boards/xtensa/esp32/esp32-ethernet-kit/src/esp32_spi.c deleted file mode 100644 index 0c6bac7e77..0000000000 --- a/boards/xtensa/esp32/esp32-ethernet-kit/src/esp32_spi.c +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** - * boards/xtensa/esp32/esp32-ethernet-kit/src/esp32_spi.c - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. The - * ASF licenses this file to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include - -#include -#include -#include - -#include -#include - -#include "esp32-ethernet-kit.h" - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: esp32_spi2_status - ****************************************************************************/ - -uint8_t esp32_spi2_status(FAR struct spi_dev_s *dev, uint32_t devid) -{ - uint8_t status = 0; - -#ifdef CONFIG_MMCSD_SPI - if (devid == SPIDEV_MMCSD(0)) - { - status |= SPI_STATUS_PRESENT; - } -#endif - - return status; -} diff --git a/boards/xtensa/esp32/esp32-wrover-kit/src/Make.defs b/boards/xtensa/esp32/esp32-wrover-kit/src/Make.defs index 1480b79ee6..968ff30e51 100644 --- a/boards/xtensa/esp32/esp32-wrover-kit/src/Make.defs +++ b/boards/xtensa/esp32/esp32-wrover-kit/src/Make.defs @@ -39,10 +39,6 @@ CSRCS += esp32_reset.c endif endif -ifeq ($(CONFIG_ESP32_SPI),y) -CSRCS += esp32_spi.c -endif - ifeq ($(CONFIG_MMCSD),y) CSRCS += esp32_mmcsd.c endif diff --git a/boards/xtensa/esp32/esp32-wrover-kit/src/esp32_spi.c b/boards/xtensa/esp32/esp32-wrover-kit/src/esp32_spi.c deleted file mode 100644 index 1864f53874..0000000000 --- a/boards/xtensa/esp32/esp32-wrover-kit/src/esp32_spi.c +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** - * boards/xtensa/esp32/esp32-wrover-kit/src/esp32_spi.c - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. The - * ASF licenses this file to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include - -#include -#include -#include - -#include -#include - -#include "esp32-wrover-kit.h" - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: esp32_spi2_status - ****************************************************************************/ - -uint8_t esp32_spi2_status(FAR struct spi_dev_s *dev, uint32_t devid) -{ - uint8_t status = 0; - -#ifdef CONFIG_MMCSD_SPI - if (devid == SPIDEV_MMCSD(0)) - { - status |= SPI_STATUS_PRESENT; - } -#endif - - return status; -}