From 79869f8abd6dfe2609b2e9d1ac72acf415ba5ad8 Mon Sep 17 00:00:00 2001 From: Marek Matej Date: Sat, 10 Jun 2023 00:25:52 +0200 Subject: [PATCH] dts: xtensa: esp32xx rework soc/sip list Introduce dtsi files representing the current portfolio of chips and modules based on the followint criteria: - flash size - psram size - gpio count - certification status Update the boards dts files according to which SOC/SIP they are using. Signed-off-by: Marek Matej --- boards/xtensa/esp32/esp32.dts | 2 +- .../esp32_ethernet_kit/esp32_ethernet_kit.dts | 2 +- boards/xtensa/esp32_net/esp32_net.dts | 2 +- .../esp32s2_franzininho.dts | 2 +- boards/xtensa/esp32s2_saola/esp32s2_saola.dts | 4 ++- .../esp32s3_devkitm/esp32s3_devkitm.dts | 2 +- .../xtensa/esp_wrover_kit/esp_wrover_kit.dts | 2 +- .../heltec_wifi_lora32_v2.dts | 7 ++++- boards/xtensa/m5stickc_plus/m5stickc_plus.dts | 2 +- boards/xtensa/odroid_go/odroid_go.dts | 2 +- .../olimex_esp32_evb/olimex_esp32_evb.dts | 2 +- boards/xtensa/xiao_esp32s3/xiao_esp32s3.dts | 2 +- .../{esp32.dtsi => esp32/esp32_common.dtsi} | 15 +++++++++- dts/xtensa/espressif/esp32/esp32_d0wd_v3.dtsi | 14 +++++++++ .../espressif/esp32/esp32_d0wdr2_v3.dtsi | 20 +++++++++++++ dts/xtensa/espressif/esp32/esp32_net.dtsi | 16 ++++++++++ dts/xtensa/espressif/esp32/esp32_pico_d4.dtsi | 18 ++++++++++++ dts/xtensa/espressif/esp32/esp32_pico_v3.dtsi | 18 ++++++++++++ .../espressif/esp32/esp32_pico_v3_02.dtsi | 24 +++++++++++++++ dts/xtensa/espressif/esp32/esp32_u4wdh.dtsi | 17 +++++++++++ .../espressif/esp32/esp32_wroom_32ue_n16.dtsi | 22 ++++++++++++++ .../espressif/esp32/esp32_wroom_32ue_n4.dtsi | 22 ++++++++++++++ .../espressif/esp32/esp32_wroom_32ue_n8.dtsi | 22 ++++++++++++++ .../espressif/esp32/esp32_wroom_da_n16.dtsi | 23 +++++++++++++++ .../espressif/esp32/esp32_wroom_da_n4.dtsi | 23 +++++++++++++++ .../espressif/esp32/esp32_wroom_da_n8.dtsi | 23 +++++++++++++++ .../espressif/esp32/esp32_wrover_e_n16r2.dtsi | 28 ++++++++++++++++++ .../espressif/esp32/esp32_wrover_e_n16r4.dtsi | 28 ++++++++++++++++++ .../espressif/esp32/esp32_wrover_e_n16r8.dtsi | 28 ++++++++++++++++++ .../espressif/esp32/esp32_wrover_e_n4r2.dtsi | 28 ++++++++++++++++++ .../espressif/esp32/esp32_wrover_e_n4r8.dtsi | 28 ++++++++++++++++++ .../espressif/esp32/esp32_wrover_e_n8r2.dtsi | 28 ++++++++++++++++++ .../espressif/esp32/esp32_wrover_e_n8r8.dtsi | 29 +++++++++++++++++++ dts/xtensa/espressif/esp32s2/esp32s2.dtsi | 7 +++++ .../esp32s2_common.dtsi} | 15 +++++++++- dts/xtensa/espressif/esp32s2/esp32s2_fh2.dtsi | 12 ++++++++ dts/xtensa/espressif/esp32s2/esp32s2_fh4.dtsi | 12 ++++++++ .../espressif/esp32s2/esp32s2_fn4r2.dtsi | 18 ++++++++++++ .../espressif/esp32s2/esp32s2_mini_n4.dtsi | 12 ++++++++ .../espressif/esp32s2/esp32s2_mini_n4r2.dtsi | 18 ++++++++++++ dts/xtensa/espressif/esp32s2/esp32s2_r2.dtsi | 13 +++++++++ .../espressif/esp32s2/esp32s2_solo_n16.dtsi | 12 ++++++++ .../espressif/esp32s2/esp32s2_solo_n4.dtsi | 12 ++++++++ .../espressif/esp32s2/esp32s2_solo_n4r2.dtsi | 18 ++++++++++++ .../espressif/esp32s2/esp32s2_solo_n8.dtsi | 12 ++++++++ .../espressif/esp32s2/esp32s2_wroom.dtsi | 12 ++++++++ .../esp32s2/esp32s2_wrover_n16r2.dtsi | 18 ++++++++++++ .../esp32s2/esp32s2_wrover_n4r2.dtsi | 18 ++++++++++++ .../esp32s2/esp32s2_wrover_n8r2.dtsi | 18 ++++++++++++ dts/xtensa/espressif/esp32s3/esp32s3.dtsi | 7 +++++ .../esp32s3_common.dtsi} | 18 ++++++++++-- dts/xtensa/espressif/esp32s3/esp32s3_fn8.dtsi | 12 ++++++++ .../espressif/esp32s3/esp32s3_mini_n4r2.dtsi | 18 ++++++++++++ .../espressif/esp32s3/esp32s3_mini_n8.dtsi | 12 ++++++++ .../espressif/esp32s3/esp32s3_pico_n8r2.dtsi | 18 ++++++++++++ .../espressif/esp32s3/esp32s3_pico_n8r8.dtsi | 18 ++++++++++++ dts/xtensa/espressif/esp32s3/esp32s3_r2.dtsi | 13 +++++++++ dts/xtensa/espressif/esp32s3/esp32s3_r8.dtsi | 13 +++++++++ dts/xtensa/espressif/esp32s3/esp32s3_r8v.dtsi | 13 +++++++++ .../espressif/esp32s3/esp32s3_wroom_n16.dtsi | 12 ++++++++ .../esp32s3/esp32s3_wroom_n16r8.dtsi | 18 ++++++++++++ .../espressif/esp32s3/esp32s3_wroom_n4.dtsi | 12 ++++++++ .../espressif/esp32s3/esp32s3_wroom_n4r8.dtsi | 18 ++++++++++++ .../espressif/esp32s3/esp32s3_wroom_n8.dtsi | 12 ++++++++ .../espressif/esp32s3/esp32s3_wroom_n8r8.dtsi | 17 +++++++++++ 65 files changed, 947 insertions(+), 16 deletions(-) rename dts/xtensa/espressif/{esp32.dtsi => esp32/esp32_common.dtsi} (95%) create mode 100644 dts/xtensa/espressif/esp32/esp32_d0wd_v3.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_d0wdr2_v3.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_net.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_pico_d4.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_pico_v3.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_pico_v3_02.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_u4wdh.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wroom_32ue_n16.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wroom_32ue_n4.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wroom_32ue_n8.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wroom_da_n16.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wroom_da_n4.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wroom_da_n8.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wrover_e_n16r2.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wrover_e_n16r4.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wrover_e_n16r8.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wrover_e_n4r2.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wrover_e_n4r8.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wrover_e_n8r2.dtsi create mode 100644 dts/xtensa/espressif/esp32/esp32_wrover_e_n8r8.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2.dtsi rename dts/xtensa/espressif/{esp32s2.dtsi => esp32s2/esp32s2_common.dtsi} (94%) create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_fh2.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_fh4.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_fn4r2.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_mini_n4.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_mini_n4r2.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_r2.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_solo_n16.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_solo_n4.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_solo_n4r2.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_solo_n8.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_wroom.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_wrover_n16r2.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_wrover_n4r2.dtsi create mode 100644 dts/xtensa/espressif/esp32s2/esp32s2_wrover_n8r2.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3.dtsi rename dts/xtensa/espressif/{esp32s3.dtsi => esp32s3/esp32s3_common.dtsi} (94%) create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_fn8.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_mini_n4r2.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_mini_n8.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_pico_n8r2.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_pico_n8r8.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_r2.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_r8.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_r8v.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_wroom_n16.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_wroom_n16r8.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_wroom_n4.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_wroom_n4r8.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_wroom_n8.dtsi create mode 100644 dts/xtensa/espressif/esp32s3/esp32s3_wroom_n8r8.dtsi diff --git a/boards/xtensa/esp32/esp32.dts b/boards/xtensa/esp32/esp32.dts index 3d61902581..5fcad1aab5 100644 --- a/boards/xtensa/esp32/esp32.dts +++ b/boards/xtensa/esp32/esp32.dts @@ -5,7 +5,7 @@ */ /dts-v1/; -#include +#include #include "esp32-pinctrl.dtsi" / { diff --git a/boards/xtensa/esp32_ethernet_kit/esp32_ethernet_kit.dts b/boards/xtensa/esp32_ethernet_kit/esp32_ethernet_kit.dts index 0ede058c9f..d772cd817d 100644 --- a/boards/xtensa/esp32_ethernet_kit/esp32_ethernet_kit.dts +++ b/boards/xtensa/esp32_ethernet_kit/esp32_ethernet_kit.dts @@ -5,7 +5,7 @@ */ /dts-v1/; -#include +#include #include "esp32_ethernet_kit-pinctrl.dtsi" / { diff --git a/boards/xtensa/esp32_net/esp32_net.dts b/boards/xtensa/esp32_net/esp32_net.dts index 21f56f565f..7479d342fb 100644 --- a/boards/xtensa/esp32_net/esp32_net.dts +++ b/boards/xtensa/esp32_net/esp32_net.dts @@ -5,7 +5,7 @@ */ /dts-v1/; -#include +#include / { model = "esp32_net"; diff --git a/boards/xtensa/esp32s2_franzininho/esp32s2_franzininho.dts b/boards/xtensa/esp32s2_franzininho/esp32s2_franzininho.dts index f7492d6966..66c8560609 100644 --- a/boards/xtensa/esp32s2_franzininho/esp32s2_franzininho.dts +++ b/boards/xtensa/esp32s2_franzininho/esp32s2_franzininho.dts @@ -6,7 +6,7 @@ /dts-v1/; -#include +#include #include "esp32s2_franzininho-pinctrl.dtsi" / { diff --git a/boards/xtensa/esp32s2_saola/esp32s2_saola.dts b/boards/xtensa/esp32s2_saola/esp32s2_saola.dts index 4e34faf09a..73c2915f3a 100644 --- a/boards/xtensa/esp32s2_saola/esp32s2_saola.dts +++ b/boards/xtensa/esp32s2_saola/esp32s2_saola.dts @@ -6,7 +6,7 @@ /dts-v1/; -#include +#include #include "esp32s2_saola-pinctrl.dtsi" / { @@ -103,8 +103,10 @@ pinctrl-names = "default"; }; + &flash0 { status = "okay"; + partitions { compatible = "fixed-partitions"; #address-cells = <1>; diff --git a/boards/xtensa/esp32s3_devkitm/esp32s3_devkitm.dts b/boards/xtensa/esp32s3_devkitm/esp32s3_devkitm.dts index f61034c2d1..c526621556 100644 --- a/boards/xtensa/esp32s3_devkitm/esp32s3_devkitm.dts +++ b/boards/xtensa/esp32s3_devkitm/esp32s3_devkitm.dts @@ -5,7 +5,7 @@ */ /dts-v1/; -#include +#include #include "esp32s3_devkitm-pinctrl.dtsi" / { diff --git a/boards/xtensa/esp_wrover_kit/esp_wrover_kit.dts b/boards/xtensa/esp_wrover_kit/esp_wrover_kit.dts index 8c6ece9cea..05f7a00b2d 100644 --- a/boards/xtensa/esp_wrover_kit/esp_wrover_kit.dts +++ b/boards/xtensa/esp_wrover_kit/esp_wrover_kit.dts @@ -5,7 +5,7 @@ */ /dts-v1/; -#include +#include #include "esp_wrover_kit-pinctrl.dtsi" / { diff --git a/boards/xtensa/heltec_wifi_lora32_v2/heltec_wifi_lora32_v2.dts b/boards/xtensa/heltec_wifi_lora32_v2/heltec_wifi_lora32_v2.dts index e23aedbb50..e660a726b0 100644 --- a/boards/xtensa/heltec_wifi_lora32_v2/heltec_wifi_lora32_v2.dts +++ b/boards/xtensa/heltec_wifi_lora32_v2/heltec_wifi_lora32_v2.dts @@ -5,7 +5,7 @@ */ /dts-v1/; -#include +#include #include "heltec_wifi_lora32_v2-pinctrl.dtsi" / { @@ -111,6 +111,11 @@ }; &flash0 { + /* the board is using plain d0wd SoC part without the flash + * so any additional flash size should be defined at the board level + */ + reg = <0x0 DT_SIZE_M(8)>; + status = "okay"; partitions { compatible = "fixed-partitions"; diff --git a/boards/xtensa/m5stickc_plus/m5stickc_plus.dts b/boards/xtensa/m5stickc_plus/m5stickc_plus.dts index c85ac0762f..5103997d92 100644 --- a/boards/xtensa/m5stickc_plus/m5stickc_plus.dts +++ b/boards/xtensa/m5stickc_plus/m5stickc_plus.dts @@ -5,7 +5,7 @@ */ /dts-v1/; -#include +#include #include "m5stickc_plus-pinctrl.dtsi" / { diff --git a/boards/xtensa/odroid_go/odroid_go.dts b/boards/xtensa/odroid_go/odroid_go.dts index 19b9b4f361..740c9a9f94 100644 --- a/boards/xtensa/odroid_go/odroid_go.dts +++ b/boards/xtensa/odroid_go/odroid_go.dts @@ -5,7 +5,7 @@ */ /dts-v1/; -#include "espressif/esp32.dtsi" +#include #include "odroid_go-pinctrl.dtsi" / { diff --git a/boards/xtensa/olimex_esp32_evb/olimex_esp32_evb.dts b/boards/xtensa/olimex_esp32_evb/olimex_esp32_evb.dts index 248dc72965..008e5b326f 100644 --- a/boards/xtensa/olimex_esp32_evb/olimex_esp32_evb.dts +++ b/boards/xtensa/olimex_esp32_evb/olimex_esp32_evb.dts @@ -6,7 +6,7 @@ /dts-v1/; -#include +#include #include "olimex_esp32_evb-pinctrl.dtsi" / { diff --git a/boards/xtensa/xiao_esp32s3/xiao_esp32s3.dts b/boards/xtensa/xiao_esp32s3/xiao_esp32s3.dts index 79e29602f0..3090f9ff5a 100644 --- a/boards/xtensa/xiao_esp32s3/xiao_esp32s3.dts +++ b/boards/xtensa/xiao_esp32s3/xiao_esp32s3.dts @@ -6,7 +6,7 @@ /dts-v1/; -#include +#include #include "xiao_esp32s3-pinctrl.dtsi" #include "seeed_xiao_connector.dtsi" diff --git a/dts/xtensa/espressif/esp32.dtsi b/dts/xtensa/espressif/esp32/esp32_common.dtsi similarity index 95% rename from dts/xtensa/espressif/esp32.dtsi rename to dts/xtensa/espressif/esp32/esp32_common.dtsi index f8acfbdfb9..e862a653e9 100644 --- a/dts/xtensa/espressif/esp32.dtsi +++ b/dts/xtensa/espressif/esp32/esp32_common.dtsi @@ -129,12 +129,20 @@ flash0: flash@0 { compatible = "soc-nv-flash"; - reg = <0 0x400000>; erase-block-size = <4096>; write-block-size = <4>; + /* Flash size is specified in SOC/SIP dtsi */ }; }; + psram0: psram@3f800000 { + device_type = "memory"; + compatible = "mmio-sram"; + /* PSRAM size is specified in SOC/SIP dtsi */ + reg = <0x3f800000 DT_SIZE_M(2)>; + status = "disabled"; + }; + ipm0: ipm@3ffed238 { compatible = "espressif,esp32-ipm"; reg = <0x3FFED238 0x8>; @@ -243,6 +251,11 @@ reg = <0x3ff44000 0x800>; interrupts = ; interrupt-parent = <&intc>; + /* Maximum available pins (per port) + * Actual occupied pins are specified + * on part number dtsi level, using + * the `gpio-reserved-ranges` property. + */ ngpios = <32>; /* 0..31 */ }; diff --git a/dts/xtensa/espressif/esp32/esp32_d0wd_v3.dtsi b/dts/xtensa/espressif/esp32/esp32_d0wd_v3.dtsi new file mode 100644 index 0000000000..6511f3d351 --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_d0wd_v3.dtsi @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <20>,<24>,<28 31>; // NC +}; + +/* Add flash or psram on board or application level */ diff --git a/dts/xtensa/espressif/esp32/esp32_d0wdr2_v3.dtsi b/dts/xtensa/espressif/esp32/esp32_d0wdr2_v3.dtsi new file mode 100644 index 0000000000..eb5e239c1a --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_d0wdr2_v3.dtsi @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 10>, // embeddef psram + <11>, // flash CS + <20>,<24>,<28 31>; // NC +}; + +/* 2MB psram */ +&psram0 { + reg = <0x3f800000 DT_SIZE_M(2)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_net.dtsi b/dts/xtensa/espressif/esp32/esp32_net.dtsi new file mode 100644 index 0000000000..00657ac042 --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_net.dtsi @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <20>,<24>,<28 31>; // NC +}; + +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_pico_d4.dtsi b/dts/xtensa/espressif/esp32/esp32_pico_d4.dtsi new file mode 100644 index 0000000000..8ed101d24b --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_pico_d4.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 8>,<11>,<16 17>, // embedded flash + <20>, <24>, <28 31>; // NC +}; + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_pico_v3.dtsi b/dts/xtensa/espressif/esp32/esp32_pico_v3.dtsi new file mode 100644 index 0000000000..76e4d4c05e --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_pico_v3.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <16 18>,<23>, // limitations + <24>,<28 31>; // NC +}; + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_pico_v3_02.dtsi b/dts/xtensa/espressif/esp32/esp32_pico_v3_02.dtsi new file mode 100644 index 0000000000..249debca75 --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_pico_v3_02.dtsi @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 11>, // flash + <24 25>,<28 31>; // NC +}; + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; + +/* 2MB psram */ +&psram0 { + reg = <0x3f800000 DT_SIZE_M(2)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_u4wdh.dtsi b/dts/xtensa/espressif/esp32/esp32_u4wdh.dtsi new file mode 100644 index 0000000000..d26074898f --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_u4wdh.dtsi @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <20>, <24>, <28 31>; +}; + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wroom_32ue_n16.dtsi b/dts/xtensa/espressif/esp32/esp32_wroom_32ue_n16.dtsi new file mode 100644 index 0000000000..2461a80395 --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wroom_32ue_n16.dtsi @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 11>, // flash + <20>, <24>, <28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 16MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(16)>; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wroom_32ue_n4.dtsi b/dts/xtensa/espressif/esp32/esp32_wroom_32ue_n4.dtsi new file mode 100644 index 0000000000..9c8ef71acf --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wroom_32ue_n4.dtsi @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 11>, // flash + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wroom_32ue_n8.dtsi b/dts/xtensa/espressif/esp32/esp32_wroom_32ue_n8.dtsi new file mode 100644 index 0000000000..4dee1868cc --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wroom_32ue_n8.dtsi @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 11>, // flash + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wroom_da_n16.dtsi b/dts/xtensa/espressif/esp32/esp32_wroom_da_n16.dtsi new file mode 100644 index 0000000000..f034a5b289 --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wroom_da_n16.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <2>,<25>, // NC/test + <6 11>, // flash + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 16MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(16)>; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wroom_da_n4.dtsi b/dts/xtensa/espressif/esp32/esp32_wroom_da_n4.dtsi new file mode 100644 index 0000000000..324c1bba2d --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wroom_da_n4.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <2>,<25>, // NC/test + <6 11>, // flash + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wroom_da_n8.dtsi b/dts/xtensa/espressif/esp32/esp32_wroom_da_n8.dtsi new file mode 100644 index 0000000000..ec5583c440 --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wroom_da_n8.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <2>,<25>, // NC/test + <6 11>, // flash + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wrover_e_n16r2.dtsi b/dts/xtensa/espressif/esp32/esp32_wrover_e_n16r2.dtsi new file mode 100644 index 0000000000..712d86fc0f --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wrover_e_n16r2.dtsi @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 11>,<16 17>, // flash&psram + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 16MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(16)>; +}; + +/* 2MB psram */ +&psram0 { + reg = <0x3f800000 DT_SIZE_M(2)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wrover_e_n16r4.dtsi b/dts/xtensa/espressif/esp32/esp32_wrover_e_n16r4.dtsi new file mode 100644 index 0000000000..119e3e3ed6 --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wrover_e_n16r4.dtsi @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 11>,<16 17>, // flash&psram + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 16MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(16)>; +}; + +/* 4MB psram */ +&psram0 { + reg = <0x3f800000 DT_SIZE_M(4)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wrover_e_n16r8.dtsi b/dts/xtensa/espressif/esp32/esp32_wrover_e_n16r8.dtsi new file mode 100644 index 0000000000..10ab7f11fa --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wrover_e_n16r8.dtsi @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 11>,<16 17>, // flash&psram + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 16MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(16)>; +}; + +/* 8MB psram */ +&psram0 { + reg = <0x3f800000 DT_SIZE_M(8)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wrover_e_n4r2.dtsi b/dts/xtensa/espressif/esp32/esp32_wrover_e_n4r2.dtsi new file mode 100644 index 0000000000..b4367cc223 --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wrover_e_n4r2.dtsi @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 11>,<16 17>, // flash&psram + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; + +/* 2MB psram */ +&psram0 { + reg = <0x3f800000 DT_SIZE_M(2)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wrover_e_n4r8.dtsi b/dts/xtensa/espressif/esp32/esp32_wrover_e_n4r8.dtsi new file mode 100644 index 0000000000..ef6037b394 --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wrover_e_n4r8.dtsi @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 11>,<16 17>, // flash&psram + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; + +/* 8MB psram */ +&psram0 { + reg = <0x3f800000 DT_SIZE_M(8)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wrover_e_n8r2.dtsi b/dts/xtensa/espressif/esp32/esp32_wrover_e_n8r2.dtsi new file mode 100644 index 0000000000..e8d902c73a --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wrover_e_n8r2.dtsi @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <6 11>,<16 17>, // flash&psram + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; + +/* 2MB psram */ +&psram0 { + reg = <0x3f800000 DT_SIZE_M(2)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32/esp32_wrover_e_n8r8.dtsi b/dts/xtensa/espressif/esp32/esp32_wrover_e_n8r8.dtsi new file mode 100644 index 0000000000..1ab318f358 --- /dev/null +++ b/dts/xtensa/espressif/esp32/esp32_wrover_e_n8r8.dtsi @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32_common.dtsi" + +/* Reserved GPIO pins */ +&gpio0 { + gpio-reserved-ranges = <20>, <24>, <28 31>; + gpio-reserved-ranges = <6 11>,<16 17>, // flash&psram + <20>,<24>,<28 31>; // NC +}; + +&gpio1 { + gpio-reserved-ranges = <6>,<7>; // GPIO37-38 NC +}; + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; + +/* 8MB flash */ +&psram0 { + reg = <0x3f800000 DT_SIZE_M(8)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2.dtsi new file mode 100644 index 0000000000..d295a9c27c --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2.dtsi @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" diff --git a/dts/xtensa/espressif/esp32s2.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_common.dtsi similarity index 94% rename from dts/xtensa/espressif/esp32s2.dtsi rename to dts/xtensa/espressif/esp32s2/esp32s2_common.dtsi index 898701457d..696e77a8ff 100644 --- a/dts/xtensa/espressif/esp32s2.dtsi +++ b/dts/xtensa/espressif/esp32s2/esp32s2_common.dtsi @@ -108,12 +108,20 @@ flash0: flash@0 { compatible = "soc-nv-flash"; - reg = <0 0x400000>; erase-block-size = <4096>; write-block-size = <4>; + /* Flash size is specified in SOC/SIP dtsi */ }; }; + psram0: psram@3f500000 { + device_type = "memory"; + compatible = "mmio-sram"; + /* PSRAM size is specified in SOC/SIP dtsi */ + reg = <0x3f500000 DT_SIZE_M(2)>; + status = "disabled"; + }; + uart0: uart@3f400000 { compatible = "espressif,esp32-uart"; reg = <0x3f400000 0x400>; @@ -158,6 +166,11 @@ reg = <0x3f404000 0x800>; interrupts = ; interrupt-parent = <&intc>; + /* Maximum available pins (per port) + * Actual occupied pins are specified + * on part number dtsi level, using + * the `gpio-reserved-ranges` property. + */ ngpios = <32>; /* 0..31 */ }; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_fh2.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_fh2.dtsi new file mode 100644 index 0000000000..cd14799cef --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_fh2.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 2MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(2)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_fh4.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_fh4.dtsi new file mode 100644 index 0000000000..036fed0055 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_fh4.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_fn4r2.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_fn4r2.dtsi new file mode 100644 index 0000000000..f3175a9923 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_fn4r2.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; + +/* 2MB psram */ +&psram0 { + reg = <0x3f500000 DT_SIZE_M(2)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_mini_n4.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_mini_n4.dtsi new file mode 100644 index 0000000000..036fed0055 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_mini_n4.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_mini_n4r2.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_mini_n4r2.dtsi new file mode 100644 index 0000000000..84e3b16cc3 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_mini_n4r2.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; + +/* 2MB psram */ +&psram0 { + status = "okay"; + reg = <0x3f500000 DT_SIZE_M(2)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_r2.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_r2.dtsi new file mode 100644 index 0000000000..db004992e7 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_r2.dtsi @@ -0,0 +1,13 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 2MB psram */ +&psram0 { + status = "okay"; + reg = <0x3f500000 DT_SIZE_M(2)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_solo_n16.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_solo_n16.dtsi new file mode 100644 index 0000000000..357735b9e0 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_solo_n16.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 16 MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(16)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_solo_n4.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_solo_n4.dtsi new file mode 100644 index 0000000000..036fed0055 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_solo_n4.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_solo_n4r2.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_solo_n4r2.dtsi new file mode 100644 index 0000000000..84e3b16cc3 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_solo_n4r2.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; + +/* 2MB psram */ +&psram0 { + status = "okay"; + reg = <0x3f500000 DT_SIZE_M(2)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_solo_n8.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_solo_n8.dtsi new file mode 100644 index 0000000000..a0c57c7ae0 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_solo_n8.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_wroom.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_wroom.dtsi new file mode 100644 index 0000000000..036fed0055 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_wroom.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_wrover_n16r2.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_wrover_n16r2.dtsi new file mode 100644 index 0000000000..77645a3c2e --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_wrover_n16r2.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 16MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(16)>; +}; + +/* 2MB psram */ +&psram0 { + status = "okay"; + reg = <0x3f500000 DT_SIZE_M(2)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_wrover_n4r2.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_wrover_n4r2.dtsi new file mode 100644 index 0000000000..84e3b16cc3 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_wrover_n4r2.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; + +/* 2MB psram */ +&psram0 { + status = "okay"; + reg = <0x3f500000 DT_SIZE_M(2)>; +}; diff --git a/dts/xtensa/espressif/esp32s2/esp32s2_wrover_n8r2.dtsi b/dts/xtensa/espressif/esp32s2/esp32s2_wrover_n8r2.dtsi new file mode 100644 index 0000000000..92d8775368 --- /dev/null +++ b/dts/xtensa/espressif/esp32s2/esp32s2_wrover_n8r2.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s2_common.dtsi" + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; + +/* 2MB psram */ +&psram0 { + status = "okay"; + reg = <0x3f500000 DT_SIZE_M(2)>; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3.dtsi new file mode 100644 index 0000000000..c405bfedec --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3.dtsi @@ -0,0 +1,7 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" diff --git a/dts/xtensa/espressif/esp32s3.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_common.dtsi similarity index 94% rename from dts/xtensa/espressif/esp32s3.dtsi rename to dts/xtensa/espressif/esp32s3/esp32s3_common.dtsi index 6c2337a2a5..bf3853ab71 100644 --- a/dts/xtensa/espressif/esp32s3.dtsi +++ b/dts/xtensa/espressif/esp32s3/esp32s3_common.dtsi @@ -94,9 +94,18 @@ reg = <0 0x800000>; erase-block-size = <4096>; write-block-size = <4>; + /* Flash size is specified in SOC/SIP dtsi */ }; }; + psram0: psram@3c000000 { + device_type = "memory"; + compatible = "mmio-sram"; + /* PSRAM size is specified in SOC/SIP dtsi */ + reg = <0x3c000000 DT_SIZE_M(2)>; + status = "disabled"; + }; + uart0: uart@60000000 { compatible = "espressif,esp32-uart"; reg = <0x60000000 0x1000>; @@ -144,7 +153,12 @@ reg = <0x60004000 0x800>; interrupts = ; interrupt-parent = <&intc>; - ngpios = <32>; + /* Maximum available pins (per port) + * Actual occupied pins are specified + * on part number dtsi level, using + * the `gpio-reserved-ranges` property. + */ + ngpios = <32>; /* 0..31 */ }; gpio1: gpio@60004800 { @@ -154,7 +168,7 @@ reg = <0x60004800 0x800>; interrupts = ; interrupt-parent = <&intc>; - ngpios = <13>; + ngpios = <22>; /* 32..53 */ }; }; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_fn8.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_fn8.dtsi new file mode 100644 index 0000000000..4b2e740428 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_fn8.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_mini_n4r2.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_mini_n4r2.dtsi new file mode 100644 index 0000000000..b8f733a3c5 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_mini_n4r2.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; + +/* 2MB psram */ +&psram0 { + reg = <0x3c000000 DT_SIZE_M(2)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_mini_n8.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_mini_n8.dtsi new file mode 100644 index 0000000000..4b2e740428 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_mini_n8.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_pico_n8r2.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_pico_n8r2.dtsi new file mode 100644 index 0000000000..b77169f172 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_pico_n8r2.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; + +/* 2MB psram */ +&psram0 { + reg = <0x3c000000 DT_SIZE_M(2)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_pico_n8r8.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_pico_n8r8.dtsi new file mode 100644 index 0000000000..34ec0ec5ac --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_pico_n8r8.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; + +/* 8MB psram */ +&psram0 { + reg = <0x3c000000 DT_SIZE_M(8)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_r2.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_r2.dtsi new file mode 100644 index 0000000000..187a214078 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_r2.dtsi @@ -0,0 +1,13 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 2MB psram */ +&psram0 { + reg = <0x3c000000 DT_SIZE_M(2)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_r8.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_r8.dtsi new file mode 100644 index 0000000000..29a2114063 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_r8.dtsi @@ -0,0 +1,13 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 8MB psram */ +&psram0 { + reg = <0x3c000000 DT_SIZE_M(8)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_r8v.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_r8v.dtsi new file mode 100644 index 0000000000..29a2114063 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_r8v.dtsi @@ -0,0 +1,13 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 8MB psram */ +&psram0 { + reg = <0x3c000000 DT_SIZE_M(8)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n16.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n16.dtsi new file mode 100644 index 0000000000..dbd9c44e52 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n16.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 16MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(16)>; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n16r8.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n16r8.dtsi new file mode 100644 index 0000000000..102fd94ec1 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n16r8.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 16MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(16)>; +}; + +/* 8MB psram */ +&psram0 { + reg = <0x3c000000 DT_SIZE_M(8)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n4.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n4.dtsi new file mode 100644 index 0000000000..086e774490 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n4.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n4r8.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n4r8.dtsi new file mode 100644 index 0000000000..b17d9f9223 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n4r8.dtsi @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 4MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(4)>; +}; + +/* 8MB psram */ +&psram0 { + reg = <0x3c000000 DT_SIZE_M(8)>; + status = "okay"; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n8.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n8.dtsi new file mode 100644 index 0000000000..4b2e740428 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n8.dtsi @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; diff --git a/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n8r8.dtsi b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n8r8.dtsi new file mode 100644 index 0000000000..eac737e3d6 --- /dev/null +++ b/dts/xtensa/espressif/esp32s3/esp32s3_wroom_n8r8.dtsi @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp32s3_common.dtsi" + +/* 8MB flash */ +&flash0 { + reg = <0x0 DT_SIZE_M(8)>; +}; + +/* 8MB psram */ +&psram0 { + reg = <0x3c000000 DT_SIZE_M(8)>; +};