Compare commits

..

3 Commits

Author SHA1 Message Date
Ken Van Hoeylandt
8ff990d635
Boot apps refactored (#498)
- Specify launcher via menuconfig
- Specify auto-start app via menuconfig
- Implement more rigid boot.properties fallbacks
- Devices with tiny screen now auto-start ApWebServer
- ApWebServer UI fixes
2026-02-12 00:10:04 +01:00
Shadowtrance
49632d15c9
AP Web Server App (#497)
Auto starts the web server in AP mode with generated SSID and Password.
For small devices.... or any i guess.
Hidden by default.
May need adjustments to suit even smaller screens than the waveshare GEEK.
And a few symbols for good measure. :)
2026-02-11 20:37:22 +01:00
Ken Van Hoeylandt
26c17986c6
GPIO refactored (#495)
* **Refactor**
  * GPIO subsystem moved to a descriptor-based model for per-pin ownership and runtime pin management; many platform drivers now acquire/release descriptors.
  * Device trees and drivers now use GPIO phandle-style pin specifications across all boards and all drivers.

* **Behavior**
  * Device list now encodes per-device status (ok/disabled); boot will skip disabled devices accordingly.

* **Deprecation**
  * Legacy GPIO HAL marked deprecated and replaced with descriptor-based interfaces.

* **Chores**
  * Bindings and platform configs updated to the new GPIO pin-spec format.
2026-02-11 20:34:54 +01:00
136 changed files with 1506 additions and 701 deletions

View File

@ -57,7 +57,7 @@ def find_phandle(devices: list[Device], phandle: str):
for device in devices: for device in devices:
if device.node_name == phandle or device.node_alias == phandle: if device.node_name == phandle or device.node_alias == phandle:
return f"&{get_device_node_name_safe(device)}" return f"&{get_device_node_name_safe(device)}"
raise DevicetreeException(f"phandle '{phandle}' not found in device tree") raise DevicetreeException(f"phandle '{phandle}' not found in devicetree")
def property_to_string(property: DeviceProperty, devices: list[Device]) -> str: def property_to_string(property: DeviceProperty, devices: list[Device]) -> str:
type = property.type type = property.type
@ -77,6 +77,20 @@ def property_to_string(property: DeviceProperty, devices: list[Device]) -> str:
return "{ " + ",".join(value_list) + " }" return "{ " + ",".join(value_list) + " }"
elif type == "phandle": elif type == "phandle":
return find_phandle(devices, property.value) return find_phandle(devices, property.value)
elif type == "phandle-array":
value_list = list()
if isinstance(property.value, list):
for item in property.value:
if isinstance(item, PropertyValue):
value_list.append(property_to_string(DeviceProperty(name="", type=item.type, value=item.value), devices))
else:
value_list.append(str(item))
return "{ " + ",".join(value_list) + " }"
elif isinstance(property.value, str):
# If it's a string, assume it's a #define and show it as-is
return property.value
else:
raise Exception(f"Unsupported phandle-array type for {property.value}")
else: else:
raise DevicetreeException(f"property_to_string() has an unsupported type: {type}") raise DevicetreeException(f"property_to_string() has an unsupported type: {type}")
@ -167,7 +181,15 @@ def write_device_structs(file, device: Device, parent_device: Device, bindings:
for child_device in device.devices: for child_device in device.devices:
write_device_structs(file, child_device, device, bindings, devices, verbose) write_device_structs(file, child_device, device, bindings, devices, verbose)
def write_device_init(file, device: Device, bindings: list[Binding], verbose: bool): def get_device_status_variable(device: Device):
if device.status == "okay" or device.status is None:
return "DTS_DEVICE_STATUS_OKAY"
elif device.status == "disabled":
return "DTS_DEVICE_STATUS_DISABLED"
else:
raise DevicetreeException(f"Unsupported device status '{device.status}'")
def write_device_list_entry(file, device: Device, bindings: list[Binding], verbose: bool):
if verbose: if verbose:
print(f"Processing device init code for '{device.node_name}'") print(f"Processing device init code for '{device.node_name}'")
# Assemble some pre-requisites # Assemble some pre-requisites
@ -177,11 +199,12 @@ def write_device_init(file, device: Device, bindings: list[Binding], verbose: bo
# Type & instance names # Type & instance names
node_name = get_device_node_name_safe(device) node_name = get_device_node_name_safe(device)
device_variable = node_name device_variable = node_name
status = get_device_status_variable(device)
# Write device struct # Write device struct
file.write("\t{ " f"&{device_variable}, \"{compatible_property.value}\"" " },\n") file.write("\t{ " f"&{device_variable}, \"{compatible_property.value}\", {status}" " },\n")
# Write children # Write children
for child_device in device.devices: for child_device in device.devices:
write_device_init(file, child_device, bindings, verbose) write_device_list_entry(file, child_device, bindings, verbose)
# Walk the tree and gather all devices # Walk the tree and gather all devices
def gather_devices(device: Device, output: list[Device]): def gather_devices(device: Device, output: list[Device]):
@ -201,6 +224,7 @@ def generate_devicetree_c(filename: str, items: list[object], bindings: list[Bin
file.write(dedent('''\ file.write(dedent('''\
// Default headers // Default headers
#include <tactility/device.h> #include <tactility/device.h>
#include <tactility/dts.h>
// DTS headers // DTS headers
''')) '''))
@ -216,14 +240,11 @@ def generate_devicetree_c(filename: str, items: list[object], bindings: list[Bin
for item in items: for item in items:
if type(item) is Device: if type(item) is Device:
write_device_structs(file, item, None, bindings, devices, verbose) write_device_structs(file, item, None, bindings, devices, verbose)
# Init function body start file.write("struct DtsDevice dts_devices[] = {\n")
file.write("struct CompatibleDevice devicetree_devices[] = {\n")
# Init function body logic
for item in items: for item in items:
if type(item) is Device: if type(item) is Device:
write_device_init(file, item, bindings, verbose) write_device_list_entry(file, item, bindings, verbose)
# Init function body end file.write("\tDTS_DEVICE_TERMINATOR\n")
file.write("\t{ NULL, NULL },\n")
file.write("};\n") file.write("};\n")
def generate_devicetree_h(filename: str): def generate_devicetree_h(filename: str):
@ -231,12 +252,13 @@ def generate_devicetree_h(filename: str):
file.write(dedent('''\ file.write(dedent('''\
#pragma once #pragma once
#include <tactility/error.h> #include <tactility/error.h>
#include <tactility/dts.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
extern struct CompatibleDevice devicetree_devices[]; extern struct DtsDevice dts_devices[];
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -8,6 +8,7 @@ class DtsVersion:
class Device: class Device:
node_name: str node_name: str
node_alias: str node_alias: str
status: str
properties: list properties: list
devices: list devices: list

View File

@ -29,6 +29,7 @@ class DtsTransformer(Transformer):
def device(self, tokens: list): def device(self, tokens: list):
node_name = None node_name = None
node_alias = None node_alias = None
status = None
properties = list() properties = list()
child_devices = list() child_devices = list()
for index, item in enumerate(tokens): for index, item in enumerate(tokens):
@ -37,10 +38,13 @@ class DtsTransformer(Transformer):
elif type(item) is Token and item.type == 'NODE_ALIAS': elif type(item) is Token and item.type == 'NODE_ALIAS':
node_alias = item.value node_alias = item.value
elif type(item) is DeviceProperty: elif type(item) is DeviceProperty:
if item.name == "status":
status = item.value
else:
properties.append(item) properties.append(item)
elif type(item) is Device: elif type(item) is Device:
child_devices.append(item) child_devices.append(item)
return Device(node_name, node_alias, properties, child_devices) return Device(node_name, node_alias, status, properties, child_devices)
def device_property(self, objects: List[object]): def device_property(self, objects: List[object]):
name = objects[0] name = objects[0]
# Boolean property has no value as the value is implied to be true # Boolean property has no value as the value is implied to be true

View File

@ -4,8 +4,6 @@ properties:
reg: reg:
type: int type: int
required: true required: true
status:
type: string
boolean-prop: boolean-prop:
type: boolean type: boolean
int-prop: int-prop:

View File

@ -6,7 +6,7 @@
compatible = "test,root"; compatible = "test,root";
model = "Test Model"; model = "Test Model";
test_device: test-device@0 { test_device1: test-device@0 {
compatible = "test,device"; compatible = "test,device";
reg = <0>; reg = <0>;
status = "okay"; status = "okay";

View File

@ -27,7 +27,7 @@ def test_compile_success():
result = run_compiler(TEST_DATA_DIR, output_dir) result = run_compiler(TEST_DATA_DIR, output_dir)
if result.returncode != 0: if result.returncode != 0:
print(f"FAILED: Compilation failed: {result.stderr}") print(f"FAILED: Compilation failed: {result.stderr} {result.stdout}")
return False return False
if not os.path.exists(os.path.join(output_dir, "devicetree.c")): if not os.path.exists(os.path.join(output_dir, "devicetree.c")):

View File

@ -70,6 +70,8 @@ else ()
message("Building for sim target") message("Building for sim target")
add_compile_definitions(CONFIG_TT_DEVICE_ID="simulator") add_compile_definitions(CONFIG_TT_DEVICE_ID="simulator")
add_compile_definitions(CONFIG_TT_DEVICE_NAME="Simulator") add_compile_definitions(CONFIG_TT_DEVICE_NAME="Simulator")
add_compile_definitions(CONFIG_TT_LAUNCHER_APP_ID="Launcher")
add_compile_definitions(CONFIG_TT_AUTO_START_APP_ID="")
endif () endif ()
project(Tactility) project(Tactility)

View File

@ -1,2 +0,0 @@
launcherAppId=Launcher
#autoStartAppId=

View File

@ -18,15 +18,15 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <2>; pin-sda = <&gpio0 2 GPIO_FLAG_NONE>;
pin-scl = <1>; pin-scl = <&gpio0 1 GPIO_FLAG_NONE>;
}; };
i2c_external: i2c1 { i2c_external: i2c1 {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <4>; pin-sda = <&gpio0 4 GPIO_FLAG_NONE>;
pin-scl = <3>; pin-scl = <&gpio0 3 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=BigTreeTech vendor=BigTreeTech
name=Panda Touch,K Touch name=Panda Touch,K Touch
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -18,23 +18,22 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <33>; pin-sda = <&gpio0 33 GPIO_FLAG_NONE>;
pin-scl = <32>; pin-scl = <&gpio0 32 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <13>; pin-mosi = <&gpio0 13 GPIO_FLAG_NONE>;
pin-miso = <GPIO_PIN_NONE>; pin-sclk = <&gpio0 14 GPIO_FLAG_NONE>;
pin-sclk = <14>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <23>; pin-mosi = <&gpio0 23 GPIO_FLAG_NONE>;
pin-miso = <19>; pin-miso = <&gpio0 19 GPIO_FLAG_NONE>;
pin-sclk = <18>; pin-sclk = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=CYD vendor=CYD
name=2432S024C name=2432S024C
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=4MB flashSize=4MB

View File

@ -19,30 +19,30 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <27>; pin-sda = <&gpio0 27 GPIO_FLAG_NONE>;
pin-scl = <22>; pin-scl = <&gpio0 22 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <13>; pin-mosi = <&gpio0 13 GPIO_FLAG_NONE>;
pin-miso = <12>; pin-miso = <&gpio0 12 GPIO_FLAG_NONE>;
pin-sclk = <14>; pin-sclk = <&gpio0 14 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <23>; pin-mosi = <&gpio0 23 GPIO_FLAG_NONE>;
pin-miso = <19>; pin-miso = <&gpio0 19 GPIO_FLAG_NONE>;
pin-sclk = <18>; pin-sclk = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <3>; pin-tx = <&gpio0 3 GPIO_FLAG_NONE>;
pin-rx = <1>; pin-rx = <&gpio0 1 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=CYD vendor=CYD
name=2432S028R name=2432S028R
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=4MB flashSize=4MB

View File

@ -19,30 +19,30 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <27>; pin-sda = <&gpio0 27 GPIO_FLAG_NONE>;
pin-scl = <22>; pin-scl = <&gpio0 22 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <13>; pin-mosi = <&gpio0 13 GPIO_FLAG_NONE>;
pin-miso = <12>; pin-miso = <&gpio0 12 GPIO_FLAG_NONE>;
pin-sclk = <14>; pin-sclk = <&gpio0 14 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <23>; pin-mosi = <&gpio0 23 GPIO_FLAG_NONE>;
pin-miso = <19>; pin-miso = <&gpio0 19 GPIO_FLAG_NONE>;
pin-sclk = <18>; pin-sclk = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <3>; pin-tx = <&gpio0 3 GPIO_FLAG_NONE>;
pin-rx = <1>; pin-rx = <&gpio0 1 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=CYD vendor=CYD
name=2432S028R v3 name=2432S028R v3
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=4MB flashSize=4MB

View File

@ -18,23 +18,22 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <33>; pin-sda = <&gpio1 33 GPIO_FLAG_NONE>;
pin-scl = <32>; pin-scl = <&gpio1 32 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <13>; pin-mosi = <&gpio1 13 GPIO_FLAG_NONE>;
pin-miso = <GPIO_PIN_NONE>; pin-sclk = <&gpio1 14 GPIO_FLAG_NONE>;
pin-sclk = <14>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <23>; pin-mosi = <&gpio1 23 GPIO_FLAG_NONE>;
pin-miso = <19>; pin-miso = <&gpio1 19 GPIO_FLAG_NONE>;
pin-sclk = <18>; pin-sclk = <&gpio1 18 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=CYD vendor=CYD
name=2432S032C name=2432S032C
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=4MB flashSize=4MB

View File

@ -18,16 +18,16 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <19>; pin-sda = <&gpio0 19 GPIO_FLAG_NONE>;
pin-scl = <45>; pin-scl = <&gpio0 45 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <47>; pin-mosi = <&gpio0 47 GPIO_FLAG_NONE>;
pin-miso = <41>; pin-miso = <&gpio0 41 GPIO_FLAG_NONE>;
pin-sclk = <48>; pin-sclk = <&gpio0 48 GPIO_FLAG_NONE>;
pin-hd = <42>; pin-hd = <&gpio0 42 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=CYD vendor=CYD
name=4848S040C name=4848S040C
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -19,30 +19,31 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <19>; pin-sda = <&gpio0 19 GPIO_FLAG_NONE>;
pin-scl = <20>; pin-scl = <&gpio0 20 GPIO_FLAG_NONE>;
}; };
i2c_external { i2c_external {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <17>; pin-sda = <&gpio0 17 GPIO_FLAG_NONE>;
pin-scl = <18>; pin-scl = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <11>; pin-mosi = <&gpio0 11 GPIO_FLAG_NONE>;
pin-miso = <13>; pin-miso = <&gpio0 13 GPIO_FLAG_NONE>;
pin-sclk = <12>; pin-sclk = <&gpio0 12 GPIO_FLAG_NONE>;
}; };
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
status = "disabled";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <18>; pin-tx = <&gpio0 18 GPIO_FLAG_NONE>;
pin-rx = <17>; pin-rx = <&gpio0 17 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -3,6 +3,9 @@ vendor=CYD
name=8048S043C name=8048S043C
incubating=false incubating=false
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -16,16 +16,16 @@
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <13>; pin-mosi = <&gpio0 13 GPIO_FLAG_NONE>;
pin-miso = <12>; pin-miso = <&gpio0 12 GPIO_FLAG_NONE>;
pin-sclk = <14>; pin-sclk = <&gpio0 14 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <23>; pin-mosi = <&gpio0 23 GPIO_FLAG_NONE>;
pin-miso = <19>; pin-miso = <&gpio0 19 GPIO_FLAG_NONE>;
pin-sclk = <18>; pin-sclk = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=CYD vendor=CYD
name=E32R28T name=E32R28T
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=4MB flashSize=4MB

View File

@ -18,23 +18,23 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <32>; pin-sda = <&gpio0 32 GPIO_FLAG_NONE>;
pin-scl = <25>; pin-scl = <&gpio0 25 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <13>; pin-mosi = <&gpio0 13 GPIO_FLAG_NONE>;
pin-miso = <12>; pin-miso = <&gpio0 12 GPIO_FLAG_NONE>;
pin-sclk = <14>; pin-sclk = <&gpio0 14 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <23>; pin-mosi = <&gpio0 23 GPIO_FLAG_NONE>;
pin-miso = <19>; pin-miso = <&gpio0 19 GPIO_FLAG_NONE>;
pin-sclk = <18>; pin-sclk = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=CYD vendor=CYD
name=E32R32P name=E32R32P
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=4MB flashSize=4MB

View File

@ -2,6 +2,9 @@
vendor=Elecrow vendor=Elecrow
name=CrowPanel Advance 2.8" name=CrowPanel Advance 2.8"
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -19,36 +19,36 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <15>; pin-sda = <&gpio0 15 GPIO_FLAG_NONE>;
pin-scl = <16>; pin-scl = <&gpio0 16 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <39>; pin-mosi = <&gpio0 39 GPIO_FLAG_NONE>;
pin-sclk = <42>; pin-sclk = <&gpio0 42 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <6>; pin-mosi = <&gpio0 6 GPIO_FLAG_NONE>;
pin-miso = <4>; pin-miso = <&gpio0 4 GPIO_FLAG_NONE>;
pin-sclk = <5>; pin-sclk = <&gpio0 5 GPIO_FLAG_NONE>;
}; };
uart0 { uart0 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_0>; port = <UART_NUM_0>;
pin-tx = <43>; pin-tx = <&gpio0 43 GPIO_FLAG_NONE>;
pin-rx = <44>; pin-rx = <&gpio0 44 GPIO_FLAG_NONE>;
}; };
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <17>; pin-tx = <&gpio0 17 GPIO_FLAG_NONE>;
pin-rx = <18>; pin-rx = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=Elecrow vendor=Elecrow
name=CrowPanel Advance 3.5" name=CrowPanel Advance 3.5"
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -19,37 +19,36 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <15>; pin-sda = <&gpio0 15 GPIO_FLAG_NONE>;
pin-scl = <16>; pin-scl = <&gpio0 16 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <39>; pin-mosi = <&gpio0 39 GPIO_FLAG_NONE>;
pin-miso = <GPIO_PIN_NONE>; pin-sclk = <&gpio0 42 GPIO_FLAG_NONE>;
pin-sclk = <42>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <6>; pin-mosi = <&gpio0 6 GPIO_FLAG_NONE>;
pin-miso = <4>; pin-miso = <&gpio0 4 GPIO_FLAG_NONE>;
pin-sclk = <5>; pin-sclk = <&gpio0 5 GPIO_FLAG_NONE>;
}; };
uart0 { uart0 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_0>; port = <UART_NUM_0>;
pin-tx = <43>; pin-tx = <&gpio0 43 GPIO_FLAG_NONE>;
pin-rx = <44>; pin-rx = <&gpio0 44 GPIO_FLAG_NONE>;
}; };
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <17>; pin-tx = <&gpio0 17 GPIO_FLAG_NONE>;
pin-rx = <18>; pin-rx = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=Elecrow vendor=Elecrow
name=CrowPanel Advance 5.0" name=CrowPanel Advance 5.0"
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -19,29 +19,29 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <15>; pin-sda = <&gpio0 15 GPIO_FLAG_NONE>;
pin-scl = <16>; pin-scl = <&gpio0 16 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi0 { sdcard_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <6>; pin-mosi = <&gpio0 6 GPIO_FLAG_NONE>;
pin-miso = <4>; pin-miso = <&gpio0 4 GPIO_FLAG_NONE>;
pin-sclk = <5>; pin-sclk = <&gpio0 5 GPIO_FLAG_NONE>;
}; };
uart0 { uart0 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_0>; port = <UART_NUM_0>;
pin-tx = <43>; pin-tx = <&gpio0 43 GPIO_FLAG_NONE>;
pin-rx = <44>; pin-rx = <&gpio0 44 GPIO_FLAG_NONE>;
}; };
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <20>; pin-tx = <&gpio0 20 GPIO_FLAG_NONE>;
pin-rx = <19>; pin-rx = <&gpio0 19 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=Elecrow vendor=Elecrow
name=CrowPanel Basic 2.8" name=CrowPanel Basic 2.8"
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=4MB flashSize=4MB

View File

@ -19,31 +19,31 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <22>; pin-sda = <&gpio0 22 GPIO_FLAG_NONE>;
pin-scl = <21>; pin-scl = <&gpio0 21 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <13>; pin-mosi = <&gpio0 13 GPIO_FLAG_NONE>;
pin-miso = <12>; pin-miso = <&gpio0 12 GPIO_FLAG_NONE>;
pin-sclk = <14>; pin-sclk = <&gpio0 14 GPIO_FLAG_NONE>;
max-transfer-size = <65536>; max-transfer-size = <65536>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <23>; pin-mosi = <&gpio0 23 GPIO_FLAG_NONE>;
pin-miso = <19>; pin-miso = <&gpio0 19 GPIO_FLAG_NONE>;
pin-sclk = <18>; pin-sclk = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <17>; pin-tx = <&gpio0 17 GPIO_FLAG_NONE>;
pin-rx = <16>; pin-rx = <&gpio0 16 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=Elecrow vendor=Elecrow
name=CrowPanel Basic 3.5" name=CrowPanel Basic 3.5"
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=4MB flashSize=4MB

View File

@ -19,31 +19,31 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <22>; pin-sda = <&gpio0 22 GPIO_FLAG_NONE>;
pin-scl = <21>; pin-scl = <&gpio0 21 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <13>; pin-mosi = <&gpio0 13 GPIO_FLAG_NONE>;
pin-miso = <33>; pin-miso = <&gpio0 33 GPIO_FLAG_NONE>;
pin-sclk = <14>; pin-sclk = <&gpio0 14 GPIO_FLAG_NONE>;
max-transfer-size = <65536>; max-transfer-size = <65536>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <23>; pin-mosi = <&gpio0 23 GPIO_FLAG_NONE>;
pin-miso = <19>; pin-miso = <&gpio0 19 GPIO_FLAG_NONE>;
pin-sclk = <18>; pin-sclk = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <1>; pin-tx = <&gpio0 1 GPIO_FLAG_NONE>;
pin-rx = <3>; pin-rx = <&gpio0 3 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=Elecrow vendor=Elecrow
name=CrowPanel Basic 5.0" name=CrowPanel Basic 5.0"
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=4MB flashSize=4MB

View File

@ -19,22 +19,22 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <19>; pin-sda = <&gpio0 19 GPIO_FLAG_NONE>;
pin-scl = <20>; pin-scl = <&gpio0 20 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi0 { sdcard_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <11>; pin-mosi = <&gpio0 11 GPIO_FLAG_NONE>;
pin-miso = <13>; pin-miso = <&gpio0 13 GPIO_FLAG_NONE>;
pin-sclk = <12>; pin-sclk = <&gpio0 12 GPIO_FLAG_NONE>;
}; };
uart0 { uart0 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_0>; port = <UART_NUM_0>;
pin-tx = <43>; pin-tx = <&gpio0 43 GPIO_FLAG_NONE>;
pin-rx = <44>; pin-rx = <&gpio0 44 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=Generic vendor=Generic
name=ESP32 name=ESP32
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=4MB flashSize=4MB

View File

@ -2,6 +2,9 @@
vendor=Generic vendor=Generic
name=ESP32-C6 name=ESP32-C6
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32C6 target=ESP32C6
flashSize=4MB flashSize=4MB

View File

@ -2,6 +2,9 @@
vendor=Generic vendor=Generic
name=ESP32-P4 name=ESP32-P4
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32P4 target=ESP32P4
flashSize=4MB flashSize=4MB

View File

@ -2,6 +2,9 @@
vendor=Generic vendor=Generic
name=ESP32-S3 name=ESP32-S3
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=4MB flashSize=4MB

View File

@ -2,6 +2,9 @@
vendor=Guition vendor=Guition
name=JC1060P470C-I-W-Y name=JC1060P470C-I-W-Y
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32P4 target=ESP32P4
flashSize=16MB flashSize=16MB

View File

@ -26,17 +26,17 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <7>; pin-sda = <&gpio0 7 GPIO_FLAG_NONE>;
pin-scl = <8>; pin-scl = <&gpio0 8 GPIO_FLAG_NONE>;
}; };
i2s0 { i2s0 {
compatible = "espressif,esp32-i2s"; compatible = "espressif,esp32-i2s";
port = <I2S_NUM_0>; port = <I2S_NUM_0>;
pin-bclk = <12>; pin-bclk = <&gpio0 12 GPIO_FLAG_NONE>;
pin-ws = <10>; pin-ws = <&gpio0 10 GPIO_FLAG_NONE>;
pin-data-out = <9>; pin-data-out = <&gpio0 9 GPIO_FLAG_NONE>;
pin-data-in = <48>; pin-data-in = <&gpio0 48 GPIO_FLAG_NONE>;
pin-mclk = <13>; pin-mclk = <&gpio0 13 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=Guition vendor=Guition
name=JC2432W328C name=JC2432W328C
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=4MB flashSize=4MB

View File

@ -19,8 +19,8 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <33>; pin-sda = <&gpio0 33 GPIO_FLAG_NONE>;
pin-scl = <32>; pin-scl = <&gpio0 32 GPIO_FLAG_NONE>;
}; };
// CN1 header // CN1 header
@ -28,30 +28,31 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <21>; pin-sda = <&gpio0 21 GPIO_FLAG_NONE>;
pin-scl = <22>; pin-scl = <&gpio0 22 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <13>; pin-mosi = <&gpio0 13 GPIO_FLAG_NONE>;
pin-sclk = <14>; pin-sclk = <&gpio0 14 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <23>; pin-mosi = <&gpio0 23 GPIO_FLAG_NONE>;
pin-miso = <19>; pin-miso = <&gpio0 19 GPIO_FLAG_NONE>;
pin-sclk = <18>; pin-sclk = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
// CN1 header, JST SH 1.25, GND / IO22 / IO21 / 3.3V // CN1 header, JST SH 1.25, GND / IO22 / IO21 / 3.3V
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
status = "disabled";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <22>; pin-tx = <&gpio0 22 GPIO_FLAG_NONE>;
pin-rx = <21>; pin-rx = <&gpio0 21 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=Guition vendor=Guition
name=JC3248W535C name=JC3248W535C
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -19,41 +19,41 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <4>; pin-sda = <&gpio0 4 GPIO_FLAG_NONE>;
pin-scl = <8>; pin-scl = <&gpio0 8 GPIO_FLAG_NONE>;
}; };
i2c_external: i2c1 { i2c_external: i2c1 {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <17>; pin-sda = <&gpio0 17 GPIO_FLAG_NONE>;
pin-scl = <18>; pin-scl = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <21>; pin-mosi = <&gpio0 21 GPIO_FLAG_NONE>;
pin-miso = <48>; pin-miso = <&gpio0 48 GPIO_FLAG_NONE>;
pin-sclk = <47>; pin-sclk = <&gpio0 47 GPIO_FLAG_NONE>;
pin-wp = <40>; pin-wp = <&gpio0 40 GPIO_FLAG_NONE>;
pin-hd = <39>; pin-hd = <&gpio0 39 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <11>; pin-mosi = <&gpio0 11 GPIO_FLAG_NONE>;
pin-miso = <13>; pin-miso = <&gpio0 13 GPIO_FLAG_NONE>;
pin-sclk = <12>; pin-sclk = <&gpio0 12 GPIO_FLAG_NONE>;
}; };
// P1 header // P1 header
uart0 { uart0 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_0>; port = <UART_NUM_0>;
pin-tx = <43>; pin-tx = <&gpio0 43 GPIO_FLAG_NONE>;
pin-rx = <44>; pin-rx = <&gpio0 44 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=Guition vendor=Guition
name=JC8048W550C name=JC8048W550C
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -19,30 +19,31 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <19>; pin-sda = <&gpio0 19 GPIO_FLAG_NONE>;
pin-scl = <20>; pin-scl = <&gpio0 20 GPIO_FLAG_NONE>;
}; };
i2c_external: i2c1 { i2c_external: i2c1 {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <17>; pin-sda = <&gpio0 17 GPIO_FLAG_NONE>;
pin-scl = <18>; pin-scl = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <11>; pin-mosi = <&gpio0 11 GPIO_FLAG_NONE>;
pin-miso = <13>; pin-miso = <&gpio0 13 GPIO_FLAG_NONE>;
pin-sclk = <12>; pin-sclk = <&gpio0 12 GPIO_FLAG_NONE>;
}; };
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
status = "disabled";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <18>; pin-tx = <&gpio0 18 GPIO_FLAG_NONE>;
pin-rx = <17>; pin-rx = <&gpio0 17 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -3,6 +3,9 @@ vendor=Heltec
name=WiFi LoRa 32 v3 name=WiFi LoRa 32 v3
incubating=true incubating=true
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=8MB flashSize=8MB

View File

@ -17,7 +17,7 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <200000>; clock-frequency = <200000>;
pin-sda = <17>; pin-sda = <&gpio0 17 GPIO_FLAG_NONE>;
pin-scl = <18>; pin-scl = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=LilyGO vendor=LilyGO
name=T-Deck,T-Deck Plus name=T-Deck,T-Deck Plus
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -21,38 +21,39 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <18>; pin-sda = <&gpio0 18 GPIO_FLAG_NONE>;
pin-scl = <8>; pin-scl = <&gpio0 8 GPIO_FLAG_NONE>;
}; };
i2c_external: i2c1 { i2c_external: i2c1 {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
status = "disabled";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <43>; pin-sda = <&gpio0 43 GPIO_FLAG_NONE>;
pin-scl = <44>; pin-scl = <&gpio0 44 GPIO_FLAG_NONE>;
}; };
i2s0 { i2s0 {
compatible = "espressif,esp32-i2s"; compatible = "espressif,esp32-i2s";
port = <I2S_NUM_0>; port = <I2S_NUM_0>;
pin-bclk = <7>; pin-bclk = <&gpio0 7 GPIO_FLAG_NONE>;
pin-ws = <5>; pin-ws = <&gpio0 5 GPIO_FLAG_NONE>;
pin-data-out = <6>; pin-data-out = <&gpio0 6 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <41>; pin-mosi = <&gpio0 41 GPIO_FLAG_NONE>;
pin-miso = <38>; pin-miso = <&gpio0 38 GPIO_FLAG_NONE>;
pin-sclk = <40>; pin-sclk = <&gpio0 40 GPIO_FLAG_NONE>;
}; };
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <43>; pin-tx = <&gpio0 43 GPIO_FLAG_NONE>;
pin-rx = <44>; pin-rx = <&gpio0 44 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,10 @@
vendor=LilyGO vendor=LilyGO
name=T-Display S3 name=T-Display S3
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -17,7 +17,7 @@
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <7>; pin-mosi = <&gpio0 7 GPIO_FLAG_NONE>;
pin-sclk = <6>; pin-sclk = <&gpio0 6 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -3,6 +3,10 @@ vendor=LilyGO
name=T-Display name=T-Display
incubating=true incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=16MB flashSize=16MB

View File

@ -17,7 +17,7 @@
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <19>; pin-mosi = <&gpio0 19 GPIO_FLAG_NONE>;
pin-sclk = <18>; pin-sclk = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -3,6 +3,10 @@ vendor=LilyGO
name=T-Dongle S3 name=T-Dongle S3
incubating=true incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -19,21 +19,21 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <44>; pin-sda = <&gpio0 44 GPIO_FLAG_NONE>;
pin-scl = <43>; pin-scl = <&gpio0 43 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <3>; pin-mosi = <&gpio0 3 GPIO_FLAG_NONE>;
pin-sclk = <5>; pin-sclk = <&gpio0 5 GPIO_FLAG_NONE>;
}; };
stemma_qt: uart1 { stemma_qt: uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <43>; pin-tx = <&gpio0 43 GPIO_FLAG_NONE>;
pin-rx = <44>; pin-rx = <&gpio0 44 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=LilyGO vendor=LilyGO
name=T-Lora Pager name=T-Lora Pager
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -21,16 +21,16 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <100000>; clock-frequency = <100000>;
pin-sda = <3>; pin-sda = <&gpio0 3 GPIO_FLAG_NONE>;
pin-scl = <2>; pin-scl = <&gpio0 2 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <34>; pin-mosi = <&gpio0 34 GPIO_FLAG_NONE>;
pin-miso = <33>; pin-miso = <&gpio0 33 GPIO_FLAG_NONE>;
pin-sclk = <35>; pin-sclk = <&gpio0 35 GPIO_FLAG_NONE>;
}; };
// ES8311 // ES8311
@ -38,24 +38,24 @@
i2s0 { i2s0 {
compatible = "espressif,esp32-i2s"; compatible = "espressif,esp32-i2s";
port = <I2S_NUM_0>; port = <I2S_NUM_0>;
pin-bclk = <11>; pin-bclk = <&gpio0 11 GPIO_FLAG_NONE>;
pin-ws = <18>; pin-ws = <&gpio0 18 GPIO_FLAG_NONE>;
pin-data-out = <45>; pin-data-out = <&gpio0 45 GPIO_FLAG_NONE>;
pin-data-in = <17>; pin-data-in = <&gpio0 17 GPIO_FLAG_NONE>;
pin-mclk = <10>; pin-mclk = <&gpio0 10 GPIO_FLAG_NONE>;
}; };
uart_internal: uart0 { uart_internal: uart0 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_0>; port = <UART_NUM_0>;
pin-tx = <12>; pin-tx = <&gpio0 12 GPIO_FLAG_NONE>;
pin-rx = <4>; pin-rx = <&gpio0 4 GPIO_FLAG_NONE>;
}; };
uart_external: uart1 { uart_external: uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <43>; pin-tx = <&gpio0 43 GPIO_FLAG_NONE>;
pin-rx = <44>; pin-rx = <&gpio0 44 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=M5Stack vendor=M5Stack
name=Cardputer Adv name=Cardputer Adv
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=8MB flashSize=8MB

View File

@ -21,47 +21,48 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <8>; pin-sda = <&gpio0 8 GPIO_FLAG_NONE>;
pin-scl = <9>; pin-scl = <&gpio0 9 GPIO_FLAG_NONE>;
}; };
i2c_port_a { i2c_port_a {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <2>; pin-sda = <&gpio0 2 GPIO_FLAG_NONE>;
pin-scl = <1>; pin-scl = <&gpio0 1 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <35>; pin-mosi = <&gpio0 35 GPIO_FLAG_NONE>;
pin-sclk = <36>; pin-sclk = <&gpio0 36 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <14>; pin-mosi = <&gpio0 14 GPIO_FLAG_NONE>;
pin-miso = <39>; pin-miso = <&gpio0 39 GPIO_FLAG_NONE>;
pin-sclk = <40>; pin-sclk = <&gpio0 40 GPIO_FLAG_NONE>;
}; };
// Speaker and microphone (ES8311) // Speaker and microphone (ES8311)
i2s0 { i2s0 {
compatible = "espressif,esp32-i2s"; compatible = "espressif,esp32-i2s";
port = <I2S_NUM_0>; port = <I2S_NUM_0>;
pin-bclk = <41>; pin-bclk = <&gpio0 41 GPIO_FLAG_NONE>;
pin-ws = <43>; pin-ws = <&gpio0 43 GPIO_FLAG_NONE>;
pin-data-out = <42>; pin-data-out = <&gpio0 42 GPIO_FLAG_NONE>;
pin-data-in = <46>; pin-data-in = <&gpio0 46 GPIO_FLAG_NONE>;
}; };
uart_port_a: uart1 { uart_port_a: uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
status = "disabled";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <1>; pin-tx = <&gpio0 1 GPIO_FLAG_NONE>;
pin-rx = <2>; pin-rx = <&gpio0 2 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=M5Stack vendor=M5Stack
name=Cardputer,Cardputer v1.1 name=Cardputer,Cardputer v1.1
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=8MB flashSize=8MB

View File

@ -21,23 +21,23 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <2>; pin-sda = <&gpio0 2 GPIO_FLAG_NONE>;
pin-scl = <1>; pin-scl = <&gpio0 1 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <35>; pin-mosi = <&gpio0 35 GPIO_FLAG_NONE>;
pin-sclk = <36>; pin-sclk = <&gpio0 36 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <14>; pin-mosi = <&gpio0 14 GPIO_FLAG_NONE>;
pin-miso = <39>; pin-miso = <&gpio0 39 GPIO_FLAG_NONE>;
pin-sclk = <40>; pin-sclk = <&gpio0 40 GPIO_FLAG_NONE>;
}; };
// Speaker and microphone // Speaker and microphone
@ -45,16 +45,17 @@
i2s0 { i2s0 {
compatible = "espressif,esp32-i2s"; compatible = "espressif,esp32-i2s";
port = <I2S_NUM_0>; port = <I2S_NUM_0>;
pin-bclk = <41>; pin-bclk = <&gpio0 41 GPIO_FLAG_NONE>;
pin-ws = <43>; pin-ws = <&gpio0 43 GPIO_FLAG_NONE>;
pin-data-out = <42>; pin-data-out = <&gpio0 42 GPIO_FLAG_NONE>;
pin-data-in = <46>; pin-data-in = <&gpio0 46 GPIO_FLAG_NONE>;
}; };
uart_port_a: uart1 { uart_port_a: uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
status = "disabled";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <1>; pin-tx = <&gpio0 1 GPIO_FLAG_NONE>;
pin-rx = <2>; pin-rx = <&gpio0 2 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=M5Stack vendor=M5Stack
name=Core2 name=Core2
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=16MB flashSize=16MB

View File

@ -21,24 +21,24 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <21>; pin-sda = <&gpio0 21 GPIO_FLAG_NONE>;
pin-scl = <22>; pin-scl = <&gpio0 22 GPIO_FLAG_NONE>;
}; };
i2c_port_a { i2c_port_a {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <32>; pin-sda = <&gpio0 32 GPIO_FLAG_NONE>;
pin-scl = <33>; pin-scl = <&gpio0 33 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <23>; pin-mosi = <&gpio0 23 GPIO_FLAG_NONE>;
pin-miso = <38>; pin-miso = <&gpio0 38 GPIO_FLAG_NONE>;
pin-sclk = <18>; pin-sclk = <&gpio0 18 GPIO_FLAG_NONE>;
}; };
// NS4168: Speaker and microphone // NS4168: Speaker and microphone
@ -46,16 +46,17 @@
i2s0 { i2s0 {
compatible = "espressif,esp32-i2s"; compatible = "espressif,esp32-i2s";
port = <I2S_NUM_0>; port = <I2S_NUM_0>;
pin-bclk = <12>; pin-bclk = <&gpio0 12 GPIO_FLAG_NONE>;
pin-ws = <0>; pin-ws = <&gpio0 0 GPIO_FLAG_NONE>;
pin-data-out = <2>; pin-data-out = <&gpio0 2 GPIO_FLAG_NONE>;
pin-data-in = <34>; pin-data-in = <&gpio0 34 GPIO_FLAG_NONE>;
}; };
uart_port_a: uart1 { uart_port_a: uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
status = "disabled";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <33>; pin-tx = <&gpio0 33 GPIO_FLAG_NONE>;
pin-rx = <32>; pin-rx = <&gpio0 32 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=M5Stack vendor=M5Stack
name=CoreS3 name=CoreS3
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -21,40 +21,42 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <12>; pin-sda = <&gpio0 12 GPIO_FLAG_NONE>;
pin-scl = <11>; pin-scl = <&gpio0 11 GPIO_FLAG_NONE>;
}; };
i2c_port_a { i2c_port_a {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <2>; pin-sda = <&gpio0 2 GPIO_FLAG_NONE>;
pin-scl = <1>; pin-scl = <&gpio0 1 GPIO_FLAG_NONE>;
}; };
/*
i2c_port_b { i2c_port_b {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
status = "disabled";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <9>; pin-sda = <&gpio0 9 GPIO_FLAG_NONE>;
pin-scl = <8>; pin-scl = <&gpio0 8 GPIO_FLAG_NONE>;
}; };
i2c_port_c { i2c_port_c {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
status = "disabled";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <18>; pin-sda = <&gpio0 18 GPIO_FLAG_NONE>;
pin-scl = <17>; pin-scl = <&gpio0 17 GPIO_FLAG_NONE>;
}; };
*/
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <37>; pin-mosi = <&gpio0 37 GPIO_FLAG_NONE>;
pin-miso = <35>; pin-miso = <&gpio0 35 GPIO_FLAG_NONE>;
pin-sclk = <36>; pin-sclk = <&gpio0 36 GPIO_FLAG_NONE>;
}; };
// TODO: Enable speaker via ES7210 I2C: https://github.com/m5stack/M5Unified/blob/a6256725481f1bc366655fa48cf03b6095e30ad1/src/M5Unified.cpp#L417 // TODO: Enable speaker via ES7210 I2C: https://github.com/m5stack/M5Unified/blob/a6256725481f1bc366655fa48cf03b6095e30ad1/src/M5Unified.cpp#L417
@ -64,17 +66,18 @@
// Note: M5Unified sets the following for microphone: magnification = 4 // Note: M5Unified sets the following for microphone: magnification = 4
compatible = "espressif,esp32-i2s"; compatible = "espressif,esp32-i2s";
port = <I2S_NUM_0>; port = <I2S_NUM_0>;
pin-bclk = <34>; pin-bclk = <&gpio0 34 GPIO_FLAG_NONE>;
pin-ws = <33>; pin-ws = <&gpio0 33 GPIO_FLAG_NONE>;
pin-data-out = <13>; pin-data-out = <&gpio0 13 GPIO_FLAG_NONE>;
pin-data-in = <14>; pin-data-in = <&gpio0 14 GPIO_FLAG_NONE>;
pin-mclk = <0>; pin-mclk = <&gpio0 0 GPIO_FLAG_NONE>;
}; };
uart_port_a: uart1 { uart_port_a: uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
status = "disabled";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <1>; pin-tx = <&gpio0 1 GPIO_FLAG_NONE>;
pin-rx = <2>; pin-rx = <&gpio0 2 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -3,6 +3,9 @@ vendor=M5Stack
name=PaperS3 name=PaperS3
incubating=true incubating=true
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=esp32s3 target=esp32s3
flashSize=16MB flashSize=16MB

View File

@ -18,16 +18,16 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <41>; pin-sda = <&gpio0 41 GPIO_FLAG_NONE>;
pin-scl = <42>; pin-scl = <&gpio0 42 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <38>; pin-mosi = <&gpio0 38 GPIO_FLAG_NONE>;
pin-miso = <40>; pin-miso = <&gpio0 40 GPIO_FLAG_NONE>;
pin-sclk = <39>; pin-sclk = <&gpio0 39 GPIO_FLAG_NONE>;
max-transfer-size = <4096>; max-transfer-size = <4096>;
}; };
}; };

View File

@ -3,6 +3,10 @@ vendor=M5Stack
name=StickC Plus name=StickC Plus
incubating=true incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=4MB flashSize=4MB

View File

@ -19,29 +19,30 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <21>; pin-sda = <&gpio0 21 GPIO_FLAG_NONE>;
pin-scl = <22>; pin-scl = <&gpio0 22 GPIO_FLAG_NONE>;
}; };
i2c_grove { i2c_grove {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <32>; pin-sda = <&gpio0 32 GPIO_FLAG_NONE>;
pin-scl = <33>; pin-scl = <&gpio0 33 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <15>; pin-mosi = <&gpio0 15 GPIO_FLAG_NONE>;
pin-sclk = <13>; pin-sclk = <&gpio0 13 GPIO_FLAG_NONE>;
}; };
uart_grove: uart1 { uart_grove: uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
status = "disabled";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <33>; pin-tx = <&gpio0 33 GPIO_FLAG_NONE>;
pin-rx = <32>; pin-rx = <&gpio0 32 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -3,6 +3,10 @@ vendor=M5Stack
name=StickC Plus2 name=StickC Plus2
incubating=true incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
[hardware] [hardware]
target=ESP32 target=ESP32
flashSize=8MB flashSize=8MB

View File

@ -18,29 +18,30 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <21>; pin-sda = <&gpio0 21 GPIO_FLAG_NONE>;
pin-scl = <22>; pin-scl = <&gpio0 22 GPIO_FLAG_NONE>;
}; };
i2c_grove { i2c_grove {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <32>; pin-sda = <&gpio0 32 GPIO_FLAG_NONE>;
pin-scl = <33>; pin-scl = <&gpio0 33 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <15>; pin-mosi = <&gpio0 15 GPIO_FLAG_NONE>;
pin-sclk = <13>; pin-sclk = <&gpio0 13 GPIO_FLAG_NONE>;
}; };
uart_grove: uart1 { uart_grove: uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
status = "disabled";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <33>; pin-tx = <&gpio0 33 GPIO_FLAG_NONE>;
pin-rx = <32>; pin-rx = <&gpio0 32 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=M5Stack vendor=M5Stack
name=Tab5 name=Tab5
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32P4 target=ESP32P4
flashSize=16MB flashSize=16MB

View File

@ -18,23 +18,23 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <31>; pin-sda = <&gpio0 31 GPIO_FLAG_NONE>;
pin-scl = <32>; pin-scl = <&gpio0 32 GPIO_FLAG_NONE>;
}; };
i2c_port_a { i2c_port_a {
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_1>; port = <I2C_NUM_1>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <53>; pin-sda = <&gpio0 53 GPIO_FLAG_NONE>;
pin-scl = <54>; pin-scl = <&gpio0 54 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi0 { sdcard_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <44>; pin-mosi = <&gpio0 44 GPIO_FLAG_NONE>;
pin-miso = <39>; pin-miso = <&gpio0 39 GPIO_FLAG_NONE>;
pin-sclk = <43>; pin-sclk = <&gpio0 43 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=unPhone vendor=unPhone
name=unPhone name=unPhone
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=8MB flashSize=8MB

View File

@ -18,16 +18,16 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <3>; pin-sda = <&gpio0 3 GPIO_FLAG_NONE>;
pin-scl = <4>; pin-scl = <&gpio0 4 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi0 { sdcard_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <40>; pin-mosi = <&gpio0 40 GPIO_FLAG_NONE>;
pin-miso = <41>; pin-miso = <&gpio0 41 GPIO_FLAG_NONE>;
pin-sclk = <39>; pin-sclk = <&gpio0 39 GPIO_FLAG_NONE>;
max-transfer-size = <65536>; max-transfer-size = <65536>;
}; };
}; };

View File

@ -3,6 +3,10 @@ vendor=Waveshare
name=ESP32 S3 GEEK name=ESP32 S3 GEEK
incubating=true incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -19,21 +19,21 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <16>; pin-sda = <&gpio0 16 GPIO_FLAG_NONE>;
pin-scl = <17>; pin-scl = <&gpio0 17 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <11>; pin-mosi = <&gpio0 11 GPIO_FLAG_NONE>;
pin-sclk = <12>; pin-sclk = <&gpio0 12 GPIO_FLAG_NONE>;
}; };
uart0 { uart0 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_0>; port = <UART_NUM_0>;
pin-tx = <43>; pin-tx = <&gpio0 43 GPIO_FLAG_NONE>;
pin-rx = <44>; pin-rx = <&gpio0 44 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -3,6 +3,10 @@ vendor=WaveShare
name=S3 LCD 1.3" name=S3 LCD 1.3"
incubating=true incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -19,22 +19,22 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <47>; pin-sda = <&gpio0 47 GPIO_FLAG_NONE>;
pin-scl = <48>; pin-scl = <&gpio0 48 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <41>; pin-mosi = <&gpio0 41 GPIO_FLAG_NONE>;
pin-sclk = <40>; pin-sclk = <&gpio0 40 GPIO_FLAG_NONE>;
}; };
spi1 { spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <18>; pin-mosi = <&gpio0 18 GPIO_FLAG_NONE>;
pin-miso = <16>; pin-miso = <&gpio0 16 GPIO_FLAG_NONE>;
pin-sclk = <21>; pin-sclk = <&gpio0 21 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -3,6 +3,10 @@ vendor=WaveShare
name=S3 Touch LCD 1.28" name=S3 Touch LCD 1.28"
incubating=true incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -19,23 +19,23 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <6>; pin-sda = <&gpio0 6 GPIO_FLAG_NONE>;
pin-scl = <7>; pin-scl = <&gpio0 7 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <11>; pin-mosi = <&gpio0 11 GPIO_FLAG_NONE>;
pin-miso = <12>; pin-miso = <&gpio0 12 GPIO_FLAG_NONE>;
pin-sclk = <10>; pin-sclk = <&gpio0 10 GPIO_FLAG_NONE>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <16>; pin-mosi = <&gpio0 16 GPIO_FLAG_NONE>;
pin-miso = <15>; pin-miso = <&gpio0 15 GPIO_FLAG_NONE>;
pin-sclk = <17>; pin-sclk = <&gpio0 17 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -3,6 +3,10 @@ vendor=WaveShare
name=S3 Touch LCD 1.47" name=S3 Touch LCD 1.47"
incubating=true incubating=true
[apps]
launcherAppId=Launcher
autoStartAppId=ApWebServer
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB
@ -17,5 +21,8 @@ size=1.47"
shape=rectangle shape=rectangle
dpi=247 dpi=247
[cdn]
warningMessage=Touch doesn't work yet
[lvgl] [lvgl]
colorDepth=16 colorDepth=16

View File

@ -19,23 +19,22 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <42>; pin-sda = <&gpio0 42 GPIO_FLAG_NONE>;
pin-scl = <41>; pin-scl = <&gpio0 41 GPIO_FLAG_NONE>;
}; };
display_spi: spi0 { display_spi: spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <39>; pin-mosi = <&gpio0 39 GPIO_FLAG_NONE>;
pin-miso = <GPIO_PIN_NONE>; pin-sclk = <&gpio0 38 GPIO_FLAG_NONE>;
pin-sclk = <38>;
}; };
sdcard_spi: spi1 { sdcard_spi: spi1 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI3_HOST>; host = <SPI3_HOST>;
pin-mosi = <15>; pin-mosi = <&gpio0 15 GPIO_FLAG_NONE>;
pin-miso = <17>; pin-miso = <&gpio0 17 GPIO_FLAG_NONE>;
pin-sclk = <16>; pin-sclk = <&gpio0 16 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=WaveShare vendor=WaveShare
name=S3 Touch LCD 4.3" name=S3 Touch LCD 4.3"
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=4MB flashSize=4MB

View File

@ -19,22 +19,22 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <8>; pin-sda = <&gpio0 8 GPIO_FLAG_NONE>;
pin-scl = <9>; pin-scl = <&gpio0 9 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <11>; pin-mosi = <&gpio0 11 GPIO_FLAG_NONE>;
pin-miso = <13>; pin-miso = <&gpio0 13 GPIO_FLAG_NONE>;
pin-sclk = <12>; pin-sclk = <&gpio0 12 GPIO_FLAG_NONE>;
}; };
uart1 { uart1 {
compatible = "espressif,esp32-uart"; compatible = "espressif,esp32-uart";
port = <UART_NUM_1>; port = <UART_NUM_1>;
pin-tx = <43>; pin-tx = <&gpio0 43 GPIO_FLAG_NONE>;
pin-rx = <44>; pin-rx = <&gpio0 44 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -2,6 +2,9 @@
vendor=Wireless Tag vendor=Wireless Tag
name=WT32 SC01 Plus name=WT32 SC01 Plus
[apps]
launcherAppId=Launcher
[hardware] [hardware]
target=ESP32S3 target=ESP32S3
flashSize=16MB flashSize=16MB

View File

@ -18,15 +18,15 @@
compatible = "espressif,esp32-i2c"; compatible = "espressif,esp32-i2c";
port = <I2C_NUM_0>; port = <I2C_NUM_0>;
clock-frequency = <400000>; clock-frequency = <400000>;
pin-sda = <6>; pin-sda = <&gpio0 6 GPIO_FLAG_NONE>;
pin-scl = <5>; pin-scl = <&gpio0 5 GPIO_FLAG_NONE>;
}; };
spi0 { spi0 {
compatible = "espressif,esp32-spi"; compatible = "espressif,esp32-spi";
host = <SPI2_HOST>; host = <SPI2_HOST>;
pin-mosi = <40>; pin-mosi = <&gpio0 40 GPIO_FLAG_NONE>;
pin-miso = <38>; pin-miso = <&gpio0 38 GPIO_FLAG_NONE>;
pin-sclk = <39>; pin-sclk = <&gpio0 39 GPIO_FLAG_NONE>;
}; };
}; };

View File

@ -3,9 +3,28 @@ menu "Tactility App"
config TT_DEVICE_NAME config TT_DEVICE_NAME
string "Device Name" string "Device Name"
default "" default ""
help
Human-readable device name, including vendor
config TT_DEVICE_ID config TT_DEVICE_ID
string "Device Identifier" string "Device Identifier"
default "" default ""
help
The name of the directory in Devices/
See https://docs.tactilityproject.org for formatting guidance.
config TT_LAUNCHER_APP_ID
string "Launcher App ID"
default "Launcher"
help
The applications that gives access to other application.
This is the first thing that starts after the boot screen.
The user can override it from a boot.properties file.
config TT_AUTO_START_APP_ID
string "Auto Start App ID"
default ""
help
An application that gets automatically started from the launcher application.
This is optional and can be left empty.
The user can override it from a boot.properties file.
# T-Deck device-related code was directly referenced from Tactility in a pull request. # T-Deck device-related code was directly referenced from Tactility in a pull request.
# This breaks other devices because the code does not exist in those implementations. # This breaks other devices because the code does not exist in those implementations.
# Until we move it out into a proper driver, we have to have pre-processor definition for that. # Until we move it out into a proper driver, we have to have pre-processor definition for that.

View File

@ -32,7 +32,7 @@ void app_main() {
tt_init_tactility_c(); // ELF bindings for side-loading on ESP32 tt_init_tactility_c(); // ELF bindings for side-loading on ESP32
#endif #endif
tt::run(config, &platform_module, &device_module, devicetree_devices); tt::run(config, &platform_module, &device_module, dts_devices);
} }
} // extern } // extern

View File

@ -134,6 +134,8 @@ const struct ModuleSymbol lvgl_module_symbols[] = {
DEFINE_MODULE_SYMBOL(lv_obj_event_base), DEFINE_MODULE_SYMBOL(lv_obj_event_base),
DEFINE_MODULE_SYMBOL(lv_obj_class_create_obj), DEFINE_MODULE_SYMBOL(lv_obj_class_create_obj),
DEFINE_MODULE_SYMBOL(lv_obj_class_init_obj), DEFINE_MODULE_SYMBOL(lv_obj_class_init_obj),
DEFINE_MODULE_SYMBOL(lv_obj_move_foreground),
DEFINE_MODULE_SYMBOL(lv_obj_move_to_index),
// lv_font // lv_font
DEFINE_MODULE_SYMBOL(lv_font_get_default), DEFINE_MODULE_SYMBOL(lv_font_get_default),
// lv_theme // lv_theme

View File

@ -16,14 +16,8 @@ properties:
required: true required: true
description: Initial clock frequency in Hz description: Initial clock frequency in Hz
pin-sda: pin-sda:
type: int type: phandle-array
required: true required: true
pin-scl: pin-scl:
type: int type: phandle-array
required: true required: true
pin-sda-pull-up:
type: bool
description: enable internal pull-up resistor for SDA pin
pin-scl-pull-up:
type: bool
description: enable internal pull-up resistor for SCL pin

View File

@ -12,23 +12,22 @@ properties:
The port number, defined by i2s_port_t. The port number, defined by i2s_port_t.
Depending on the hardware, these values are available: I2S_NUM_0, I2S_NUM_1 Depending on the hardware, these values are available: I2S_NUM_0, I2S_NUM_1
pin-bclk: pin-bclk:
type: int type: phandle-array
required: true required: true
description: BCK pin description: Bit clock pin
pin-ws: pin-ws:
type: int type: phandle-array
required: true required: true
description: WS pin description: Word (slot) select pin
pin-data-out: pin-data-out:
type: int type: phandle-array
default: GPIO_PIN_NONE default: GPIO_PIN_SPEC_NONE
description: DATA OUT pin description: Data output pin
pin-data-in: pin-data-in:
type: int type: phandle-array
default: GPIO_PIN_NONE default: GPIO_PIN_SPEC_NONE
description: DATA IN pin description: Data input pin
pin-mclk: pin-mclk:
type: int type: phandle-array
required: false default: GPIO_PIN_SPEC_NONE
default: GPIO_PIN_NONE description: Master clock pin
description: MCLK pin

View File

@ -11,25 +11,24 @@ properties:
description: | description: |
The SPI host (controller) to use. The SPI host (controller) to use.
Defined by spi_host_device_t (e.g. SPI2_HOST, SPI3_HOST). Defined by spi_host_device_t (e.g. SPI2_HOST, SPI3_HOST).
pin-sclk:
type: phandle-array
default: GPIO_PIN_SPEC_NONE
pin-mosi: pin-mosi:
type: int type: phandle-array
default: GPIO_PIN_NONE default: GPIO_PIN_SPEC_NONE
description: MOSI (Data 0) pin description: MOSI (Data 0) pin
pin-miso: pin-miso:
type: int type: phandle-array
default: GPIO_PIN_NONE default: GPIO_PIN_SPEC_NONE
description: MISO (Data 1) pin description: MISO (Data 1) pin
pin-sclk:
type: int
required: true
description: Clock pin
pin-wp: pin-wp:
type: int type: phandle-array
default: GPIO_PIN_NONE default: GPIO_PIN_SPEC_NONE
description: WP (Data 2) pin description: WP (Data 2) pin
pin-hd: pin-hd:
type: int type: phandle-array
default: GPIO_PIN_NONE default: GPIO_PIN_SPEC_NONE
description: HD (Data 3) pin description: HD (Data 3) pin
max-transfer-size: max-transfer-size:
type: int type: int

View File

@ -12,18 +12,18 @@ properties:
The port number, defined by uart_port_t. The port number, defined by uart_port_t.
Depending on the hardware, these values are available: UART_NUM_0, UART_NUM_1, UART_NUM_2 Depending on the hardware, these values are available: UART_NUM_0, UART_NUM_1, UART_NUM_2
pin-tx: pin-tx:
type: int type: phandle-array
required: true required: true
description: TX pin description: TX pin
pin-rx: pin-rx:
type: int type: phandle-array
required: true required: true
description: RX pin description: RX pin
pin-cts: pin-cts:
type: int type: phandle-array
default: GPIO_PIN_NONE default: GPIO_PIN_SPEC_NONE
description: CTS pin description: CTS pin
pin-rts: pin-rts:
type: int type: phandle-array
default: GPIO_PIN_NONE default: GPIO_PIN_SPEC_NONE
description: RTS pin description: RTS pin

View File

@ -5,5 +5,6 @@ file(GLOB_RECURSE SOURCES "Source/*.c**")
idf_component_register( idf_component_register(
SRCS ${SOURCES} SRCS ${SOURCES}
INCLUDE_DIRS "Include/" INCLUDE_DIRS "Include/"
PRIV_INCLUDE_DIRS "Private/"
REQUIRES TactilityKernel driver REQUIRES TactilityKernel driver
) )

Some files were not shown because too many files have changed in this diff Show More