Add initial support for the I2S peripheral on ESP32.
Add I2S character driver and generic I2S audio driver.
Include i2schar defconfig for ESP32-DevKitC board.
- Introduce the ESP32_WIFI option to replace the broader
ESP32_WIRELESS option. ESP32_WIRELESS is used by both WIFI and BLE.
- Move common functions from esp32_wifi_adapter to esp32_wireless.
- Change the order of including the external libraries to avoid undefined references.
Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
Some incompatibilities exist between the encryption block of the SPI
Flash peripheral and the algorithms of some file systems. LittleFS is
currently the only supported file system which is known to work
correctly when Flash Encryption is enabled.
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
Currently, when no file system is selected, the "choice" lists zero
entries, which is very confusing to the user. To handle this, the
"choice" options have their dependencies ("depends on") transformed into
reverse dependencies ("select").
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
Give the user the option to simply register the SPI Flash MTD as a
device node on /dev.
Currently, this is achievable only when SmartFS (which is the default FS
option) is disabled by force. This behavior is fixed by using the
"optional" Kconfig keyword, which makes the "choice" selectable.
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
This is only useful when the path to binary files (e.g. bootloader) is
provided via the ESPTOOL_BINDIR variable.
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
This commit removes the initialization of the Wi-Fi partition
from the Wi-Fi board logic and moves it to the SPI Flash board code.
It creates 2 different partition (one for Wi-Fi and one for general
use).
It also allows these partitions to be mounted over several FSs.
Currently the "esp32_spiflash_alloc_mtdpart" allocates a
statically-defined partition from "offset" and "size" set via
Kconfig.
This commit changes the function interface to receive those information
as arguments, enabling the creation of multiple MTD partitions with
different offsets and sizes.
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
As ESP32 has 2 I2C interfaces and BMP180 is a I2C sensor, the criterias to use BMP180 in I2C0 or I2C1 are:
1- First, bring-up routines search for BMP180 in I2C0.
If BMP180 is found in I2C0, then /dev/press0 is created.
2- If BMP180 cannot be registered in I2C0, bring-up routines search for it in I2C1.
If BMP180 is found in I2C1, then /dev/press0 is created.
It means only one BMP180 could be suported in Nuttx. In my tests I've observed
that BMP180 example application doesn't seem to work with /dev/press1 BMP180 device,
therefore even BMP180 is found in I2C1, it'll be registered as /dev/press0 device.
It was missing and it wasn't possible to enable I2C (0 and/or 1)
before this fix.
To sum up, this fix implements a I2C register function in ESP32
bring-up routines (esp32_bringup.c) and call if for I2C0 and/or
I2C1 during ESP32 bringup (these function callings are conditioned
by CONFIG_ESP32_I2C (to check if I2C support has been configured),
CONFIG_ESP32_I2C0 (to check if I2C0 support has been configured)
and CONFIG_ESP32_I2C1 (to check if I2C1 support has been configured).
Once this fix is implemented, /dev/i2c0 and/or /dev/i2c1 interfaces
become available and work fine.