boards: esp32: axp192, mpu6886, rtc on m5stickc_plus

- fix i2c pin control
- configure axp192 MPU and the regulators
- configure the mpu6886 IMU
- configure the bm856 RTC

Signed-off-by: Julien Vermillard <julien@vermillard.com>
This commit is contained in:
Julien Vermillard 2024-04-20 16:45:55 +02:00 committed by Anas Nashif
commit b52f041172
5 changed files with 83 additions and 14 deletions

View file

@ -16,6 +16,21 @@ choice BT_HCI_BUS_TYPE
default BT_ESP32 if BT
endchoice
config GPIO_HOGS_INIT_PRIORITY
default 70
config MFD_INIT_PRIORITY
default 70
config REGULATOR_AXP192_INIT_PRIORITY
default 71
config GPIO_AXP192_INIT_PRIORITY
default 72
config REGULATOR_FIXED_INIT_PRIORITY
default 75
endif # BOARD_M5STICKC_PLUS_ESP32_PROCPU
if BOARD_M5STICKC_PLUS_ESP32_APPCPU

View file

@ -54,18 +54,14 @@
pinmux = <SPIM3_CSEL_GPIO5>;
};
i2c0_sda_gpio21: i2c0_sda_gpio21 {
pinmux = <I2C0_SDA_GPIO21>;
i2c0_default: i2c0_default {
group1 {
pinmux = <I2C0_SDA_GPIO21>,
<I2C0_SCL_GPIO22>;
bias-pull-up;
drive-open-drain;
output-high;
};
i2c0_scl_gpio22: i2c0_scl_gpio22 {
pinmux = <I2C0_SCL_GPIO22>;
bias-pull-up;
drive-open-drain;
output-high;
};
};

View file

@ -8,6 +8,7 @@
#include <espressif/esp32/esp32_pico_d4.dtsi>
#include "m5stickc_plus-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>
#include <zephyr/dt-bindings/regulator/axp192.h>
/ {
model = "M5StickC Plus PROCPU";
@ -20,6 +21,8 @@
uart-0 = &uart0;
i2c-0 = &i2c0;
watchdog0 = &wdt0;
accel0 = &mpu6886;
rtc = &bm8563;
};
chosen {
@ -28,6 +31,7 @@
zephyr,shell-uart = &uart0;
zephyr,flash = &flash0;
zephyr,code-partition = &slot0_partition;
zephyr,rtc = &bm8563;
};
leds {
@ -81,11 +85,62 @@
/* IMU MPU-6886, RTC BM8563, PMU AXP192 */
&i2c0 {
status = "okay";
clock-frequency = <I2C_BITRATE_STANDARD>;
clock-frequency = <I2C_BITRATE_FAST>;
sda-gpios = <&gpio0 21 GPIO_OPEN_DRAIN>;
scl-gpios = <&gpio0 22 GPIO_OPEN_DRAIN>;
pinctrl-0 = <&i2c0_sda_gpio21 &i2c0_scl_gpio22>;
pinctrl-0 = <&i2c0_default>;
scl-timeout-us = <0>;
pinctrl-names = "default";
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_bl: LDO2 {
regulator-init-microvolt = <2800000>;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
regulator-boot-on;
};
lcd_logic: LDO3 {
regulator-init-microvolt = <3000000>;
};
};
axp192_gpio: axp192_gpio {
compatible = "x-powers,axp192-gpio";
gpio-controller;
#gpio-cells = <2>;
ngpios = <6>;
status = "okay";
};
};
mpu6886: mpu6886@68 {
status = "okay";
compatible = "invensense,mpu6050";
reg = <0x68>;
};
bm8563: bm8563@51 {
compatible = "nxp,pcf8563";
reg = <0x51>;
status = "okay";
};
};
&spi2 {

View file

@ -12,6 +12,7 @@ supported:
- uart
- pinmux
- nvs
- regulator
testing:
ignore_tags:
- net

View file

@ -6,5 +6,7 @@ CONFIG_CONSOLE=y
CONFIG_SERIAL=y
CONFIG_UART_CONSOLE=y
CONFIG_REGULATOR=y
CONFIG_GPIO=y
CONFIG_I2C=y