blob: 44d44f6136633843440f47f7b072715c68e4e8a4 [file] [log] [blame] [edit]
/*
* Copyright (c) 2024 Espressif Systems (Shanghai) Co., Ltd.
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include "espressif/esp32s3/esp32s3_wroom_n8r8.dtsi"
#include "esp32s3_eye-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>
#include <zephyr/dt-bindings/input/esp32-touch-sensor-input.h>
#include <zephyr/dt-bindings/mipi_dbi/mipi_dbi.h>
#include <espressif/partitions_0x0_amp.dtsi>
/ {
model = "Espressif ESP32S3-EYE PROCPU";
compatible = "espressif,esp32s3";
aliases {
i2c-0 = &i2c0;
watchdog0 = &wdt0;
sw0 = &button0;
led0 = &green_led;
};
chosen {
zephyr,sram = &sram0;
zephyr,console = &usb_serial;
zephyr,shell-uart = &usb_serial;
zephyr,flash = &flash0;
zephyr,code-partition = &slot0_partition;
zephyr,bt-hci = &esp32_bt_hci;
zephyr,display = &st7789v;
zephyr,camera = &lcd_cam;
};
buttons {
compatible = "gpio-keys";
button0: button_0 {
gpios = <&gpio0 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
label = "BOOT Button";
zephyr,code = <INPUT_KEY_0>;
};
};
adc-keys {
compatible = "adc-keys";
io-channels = <&adc0 0>;
keyup-threshold-mv = <3300>;
sample-period-ms = <50>;
menu_key {
press-thresholds-mv = <2800>;
zephyr,code = <INPUT_KEY_MENU>;
};
play_key {
press-thresholds-mv = <1920>;
zephyr,code = <INPUT_KEY_PLAY>;
};
up_key {
press-thresholds-mv = <350>;
zephyr,code = <INPUT_KEY_UP>;
};
down_key {
press-thresholds-mv = <800>;
zephyr,code = <INPUT_KEY_DOWN>;
};
};
leds {
compatible = "gpio-leds";
green_led: led0 {
gpios = <&gpio0 3 GPIO_OPEN_DRAIN>;
label = "Power LED";
};
};
mipi_dbi {
compatible = "zephyr,mipi-dbi-spi";
dc-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
spi-dev = <&spi3>;
write-only;
#address-cells = <1>;
#size-cells = <0>;
st7789v: st7789v@0 {
compatible = "sitronix,st7789v";
mipi-max-frequency = <20000000>;
reg = <0>;
width = <240>;
height = <240>;
x-offset = <0>;
y-offset = <0>;
vcom = <0x19>;
gctrl = <0x35>;
vrhs = <0x12>;
vdvs = <0x20>;
mdac = <0x00>;
gamma = <0x01>;
colmod = <0x55>;
lcm = <0x2c>;
porch-param = [0c 0c 00 33 33];
cmd2en-param = [5a 69 02 01];
pwctrl1-param = [a4 a1];
pvgam-param = [D0 04 0D 11 13 2B 3F 54 4C 18 0D 0B 1F 23];
nvgam-param = [D0 04 0C 11 13 2C 3F 44 51 2F 1F 1F 20 23];
ram-param = [00 F0];
rgb-param = [CD 08 14];
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>;
};
};
};
&dma {
status = "okay";
};
&i2c1 {
status = "okay";
clock-frequency = <I2C_BITRATE_STANDARD>;
pinctrl-0 = <&i2c1_default>;
pinctrl-names = "default";
ov2640: ov2640@30 {
compatible = "ovti,ov2640";
reg = <0x30>;
status = "okay";
clock-rate-control = <0x80>;
port {
ov2640_ep_out: endpoint {
remote-endpoint = <&dvp_ep_in>;
};
};
};
};
&lcd_cam {
status = "okay";
cam-clk = < 10000000 >;
pinctrl-0 = <&lcd_cam_default>;
pinctrl-names = "default";
source = <&ov2640>;
dmas = <&dma 2>;
dma-names = "rx";
port {
dvp_ep_in: endpoint {
remote-endpoint = <&ov2640_ep_out>;
};
};
};
&usb_serial {
status = "okay";
};
&timer0 {
status = "okay";
};
&timer1 {
status = "okay";
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&adc0 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
channel@0 {
reg = <0>;
zephyr,gain = "ADC_GAIN_1_4";
zephyr,reference = "ADC_REF_INTERNAL";
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
zephyr,resolution = <12>;
};
};
&spi3 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
pinctrl-0 = <&spim3_default>;
pinctrl-names = "default";
};
&wdt0 {
status = "okay";
};
&trng0 {
status = "okay";
};
&esp32_bt_hci {
status = "okay";
};