blob: 41ccb5be0746a0696328dd51b53a570ff6018e30 [file] [log] [blame]
/*
* Copyright (c) 2023 Martin Kiepfer <mrmarteng@teleschirm.org>
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <espressif/esp32/esp32_d0wd_v3.dtsi>
#include "m5stack_core2-pinctrl.dtsi"
#include "grove_connectors.dtsi"
#include "m5stack_mbus_connectors.dtsi"
#include <zephyr/dt-bindings/display/ili9xxx.h>
#include <zephyr/dt-bindings/regulator/axp192.h>
/ {
model = "M5Stack Core2";
compatible = "m5stack,core2";
aliases {
pwr-led = &pwr_led;
uart-0 = &uart0;
i2c-0 = &i2c0;
watchdog0 = &wdt0;
rtc = &pfc8563_rtc;
led0 = &led_pwr;
};
chosen {
zephyr,sram = &sram0;
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,flash = &flash0;
zephyr,display = &ili9342c;
zephyr,code-partition = &slot0_partition;
zephyr,rtc = &pfc8563_rtc;
};
leds {
compatible = "gpio-leds";
led_pwr: led_pwr {
gpios = <&axp192_gpio 1 (GPIO_OPEN_DRAIN | GPIO_ACTIVE_LOW)>;
label = "Power LED";
};
};
lvgl_pointer {
compatible = "zephyr,lvgl-pointer-input";
input = <&ft5336_touch>;
};
};
&cpu0 {
clock-frequency = <ESP32_CLK_CPU_240M>;
};
&cpu1 {
clock-frequency = <ESP32_CLK_CPU_240M>;
};
&psram0 {
reg = <0x3f800000 DT_SIZE_M(8)>;
status = "disabled";
};
&uart0 {
status = "okay";
current-speed = <115200>;
pinctrl-0 = <&uart0_tx_gpio1 &uart0_rx_gpio3>;
pinctrl-names = "default";
};
&uart1 {
status = "disabled";
current-speed = <115200>;
pinctrl-0 = <&uart1_rx_gpio33 &uart1_tx_gpio32>;
pinctrl-names = "default";
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&i2c0 {
status = "okay";
clock-frequency = <I2C_BITRATE_FAST>;
sda-gpios = <&gpio0 21 GPIO_OPEN_DRAIN>;
scl-gpios = <&gpio0 22 GPIO_OPEN_DRAIN>;
pinctrl-0 = <&i2c0_default>;
scl-timeout-us = <0>;
pinctrl-names = "default";
pfc8563_rtc: pfc8563@51 {
compatible = "nxp,pcf8563";
reg = <0x51>;
status = "okay";
};
axp192_pmic: axp192@34 {
compatible = "x-powers,axp192";
reg = <0x34>;
status = "okay";
axp192_regulator: axp192_regulator {
compatible = "x-powers,axp192-regulator";
status = "okay";
vdd_mcu: DCDC1 {
regulator-init-microvolt = <3350000>;
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3400000>;
regulator-initial-mode = <AXP192_DCDC_MODE_AUTO>;
regulator-boot-on;
regulator-always-on;
};
lcd_bg: DCDC3 {
regulator-init-microvolt = <2800000>;
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
};
v_peri: LDO2 {
regulator-init-microvolt = <3300000>;
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
};
vib_motor: LDO3 {
regulator-init-microvolt = <2800000>;
};
};
axp192_gpio: axp192_gpio {
compatible = "x-powers,axp192-gpio";
gpio-controller;
#gpio-cells = <2>;
ngpios = <5>;
status = "okay";
pwr_led: axp192_gpio1 {
gpio-hog;
gpios = <1 (GPIO_OPEN_DRAIN | GPIO_ACTIVE_LOW)>;
output-high;
line-name = "pwr-led";
};
bus_pwr_en: axp192_gpio0 {
gpio-hog;
gpios = <0 0>;
input;
};
};
};
ft5336_touch: ft5336@38 {
compatible = "focaltech,ft5336";
reg = <0x38>;
int-gpios = <&gpio1 7 0>;
};
};
&i2c1 {
status = "disabled";
clock-frequency = <I2C_BITRATE_STANDARD>;
sda-gpios = <&gpio1 0 GPIO_OPEN_DRAIN>;
scl-gpios = <&gpio1 1 GPIO_OPEN_DRAIN>;
pinctrl-0 = <&i2c1_default>;
pinctrl-names = "default";
};
&spi3 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
pinctrl-0 = <&spim3_default>;
pinctrl-names = "default";
dma-enabled;
clock-frequency = <20000000>;
cs-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
ili9342c: ili9342c@0 {
compatible = "ilitek,ili9342c";
spi-max-frequency = <30000000>;
reg = <0>;
cmd-data-gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
vin-supply = <&lcd_bg>;
reset-gpios = <&axp192_gpio 4 (GPIO_OPEN_DRAIN | GPIO_ACTIVE_LOW)>;
pixel-format = <ILI9XXX_PIXEL_FORMAT_RGB565>;
display-inversion;
width = <320>;
height = <240>;
rotation = <0>;
};
};
&timer0 {
status = "okay";
};
&timer1 {
status = "okay";
};
&timer2 {
status = "okay";
};
&timer3 {
status = "okay";
};
&trng0 {
status = "okay";
};
&flash0 {
status = "okay";
reg = <0 DT_SIZE_M(16)>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
/* Reserve 60kB for the bootloader */
boot_partition: partition@1000 {
label = "mcuboot";
reg = <0x00001000 0x0000F000>;
read-only;
};
/* Reserve 1024kB for the application in slot 0 */
slot0_partition: partition@10000 {
label = "image-0";
reg = <0x00010000 0x00100000>;
};
/* Reserve 1024kB for the application in slot 1 */
slot1_partition: partition@110000 {
label = "image-1";
reg = <0x00110000 0x00100000>;
};
/* Reserve 256kB for the scratch partition */
scratch_partition: partition@210000 {
label = "image-scratch";
reg = <0x00210000 0x00040000>;
};
/* 14MB storage */
storage_partition: partition@250000 {
label = "storage";
reg = <0x00250000 0x00db0000>;
};
};
};