diff --git a/Devices/es3c28p/CMakeLists.txt b/Devices/es3c28p/CMakeLists.txt new file mode 100644 index 000000000..7ad1ad012 --- /dev/null +++ b/Devices/es3c28p/CMakeLists.txt @@ -0,0 +1,4 @@ +idf_component_register( + SRCS "source/module.cpp" + REQUIRES TactilityKernel +) diff --git a/Devices/es3c28p/device.properties b/Devices/es3c28p/device.properties new file mode 100644 index 000000000..ee33074ab --- /dev/null +++ b/Devices/es3c28p/device.properties @@ -0,0 +1,23 @@ +general.vendor=CYD +general.name=ES3C28P + +apps.launcherAppId=Launcher + +hardware.target=ESP32S3 +hardware.flashSize=16MB +hardware.spiRam=true +hardware.spiRamMode=OCT +hardware.spiRamSpeed=120M +hardware.esptoolFlashFreq=120M +hardware.tinyUsb=true +hardware.bluetooth=true + +display.size=2.8" +display.shape=rectangle +display.dpi=143 + +lvgl.colorDepth=16 + +storage.userDataLocation=SD + +dependencies.useDeprecatedHal=false diff --git a/Devices/es3c28p/devicetree.yaml b/Devices/es3c28p/devicetree.yaml new file mode 100644 index 000000000..58a8b4c99 --- /dev/null +++ b/Devices/es3c28p/devicetree.yaml @@ -0,0 +1,7 @@ +dependencies: + - Platforms/platform-esp32 + - Drivers/ili9341-module + - Drivers/ft5x06-module + - Drivers/es8311-module + - Drivers/audio-stream-module +dts: es3c28p.dts diff --git a/Devices/es3c28p/es3c28p.dts b/Devices/es3c28p/es3c28p.dts new file mode 100644 index 000000000..1063311be --- /dev/null +++ b/Devices/es3c28p/es3c28p.dts @@ -0,0 +1,142 @@ +/dts-v1/; + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/ { + compatible = "root"; + model = "LCDWIKI ES3C28P"; + + wifi0 { + compatible = "espressif,esp32-wifi-pinned"; + status = "disabled"; + }; + + ble0 { + compatible = "espressif,esp32-ble"; + status = "disabled"; + }; + + gpio0 { + compatible = "espressif,esp32-gpio"; + gpio-count = <49>; + }; + + /* FM8002E speaker amp enable, active-low on GPIO1 */ + amp_enable { + compatible = "gpio-hog"; + pin = <&gpio0 1 GPIO_FLAG_NONE>; + mode = ; + }; + + adc0 { + compatible = "espressif,esp32-adc-oneshot"; + unit-id = ; + clk-src = ; + channels = ; + }; + + /* BAT+ through 200K/200K divider into GPIO9 ADC1_CH8 */ + battery-sense { + compatible = "battery-sense"; + io-channel = <&adc0 0>; + reference-voltage-mv = <3300>; + multiplier = <2000>; + }; + + /* i2s0 must be before i2c0 so codec can reference it */ + i2s0 { + compatible = "espressif,esp32-i2s"; + port = ; + pin-bclk = <&gpio0 5 GPIO_FLAG_NONE>; + pin-ws = <&gpio0 7 GPIO_FLAG_NONE>; + pin-data-out = <&gpio0 8 GPIO_FLAG_NONE>; + pin-data-in = <&gpio0 6 GPIO_FLAG_NONE>; + pin-mclk = <&gpio0 4 GPIO_FLAG_NONE>; + }; + + i2c0 { + compatible = "espressif,esp32-i2c"; + port = ; + clock-frequency = <100000>; + pin-sda = <&gpio0 16 GPIO_FLAG_NONE>; + pin-scl = <&gpio0 15 GPIO_FLAG_NONE>; + + ft5x06@38 { + compatible = "focaltech,ft5x06"; + reg = <0x38>; + x-max = <240>; + y-max = <320>; + swap-xy; + mirror-x; + pin-reset = <&gpio0 18 GPIO_FLAG_NONE>; + pin-interrupt = <&gpio0 17 GPIO_FLAG_NONE>; + }; + + es8311: es8311@18 { + compatible = "everest,es8311"; + reg = <0x18>; + i2s = <&i2s0>; + }; + }; + + display_backlight_pwm { + compatible = "espressif,esp32-pwm-ledc"; + pin = <&gpio0 45 GPIO_FLAG_NONE>; + period-ns = <500000>; + ledc-timer = <0>; + ledc-channel = <0>; + }; + + display_backlight { + compatible = "pwm-backlight"; + status = "disabled"; + pwm = <&display_backlight_pwm>; + }; + + spi0 { + compatible = "espressif,esp32-spi"; + host = ; + pin-mosi = <&gpio0 11 GPIO_FLAG_NONE>; + pin-sclk = <&gpio0 12 GPIO_FLAG_NONE>; + cs-gpios = <&gpio0 10 GPIO_FLAG_NONE>; + + display@0 { + compatible = "ilitek,ili9341"; + horizontal-resolution = <320>; + vertical-resolution = <240>; + swap-xy; + invert-color; + bgr-order; + pixel-clock-hz = <40000000>; + pin-dc = <&gpio0 46 GPIO_FLAG_NONE>; + backlight = <&display_backlight>; + }; + }; + + sdmmc0 { + compatible = "espressif,esp32-sdmmc"; + pin-clk = <&gpio0 38 GPIO_FLAG_NONE>; + pin-cmd = <&gpio0 40 GPIO_FLAG_NONE>; + pin-d0 = <&gpio0 39 GPIO_FLAG_NONE>; + pin-d1 = <&gpio0 41 GPIO_FLAG_NONE>; + pin-d2 = <&gpio0 48 GPIO_FLAG_NONE>; + pin-d3 = <&gpio0 47 GPIO_FLAG_NONE>; + slot = ; + bus-width = <4>; + }; +}; diff --git a/Devices/es3c28p/source/module.cpp b/Devices/es3c28p/source/module.cpp new file mode 100644 index 000000000..f22143a89 --- /dev/null +++ b/Devices/es3c28p/source/module.cpp @@ -0,0 +1,21 @@ +#include + +extern "C" { + +static error_t start() { + return ERROR_NONE; +} + +static error_t stop() { + return ERROR_NONE; +} + +struct Module es3c28p_module = { + .name = "es3c28p", + .start = start, + .stop = stop, + .symbols = nullptr, + .internal = nullptr +}; + +}