boards: Update Xiao_BLE Sense DTS for pdm microphone
Create regulator on GPIO for microphone supply
Set pdm data and clk pins in pinctrl
Add xiao_ble_sense overlay for dmic sample support
Signed-off-by: Zak Portnoy <zakportnoy@gmail.com>
diff --git a/boards/seeed/xiao_ble/xiao_ble-pinctrl.dtsi b/boards/seeed/xiao_ble/xiao_ble-pinctrl.dtsi
index 7abfb35..ea8cd0e 100644
--- a/boards/seeed/xiao_ble/xiao_ble-pinctrl.dtsi
+++ b/boards/seeed/xiao_ble/xiao_ble-pinctrl.dtsi
@@ -52,6 +52,21 @@
};
};
+ pdm0_default: pdm0_default {
+ group1 {
+ psels = <NRF_PSEL(PDM_CLK, 1, 00)>,
+ <NRF_PSEL(PDM_DIN, 0, 16)>;
+ };
+ };
+
+ pdm0_sleep: pdm0_sleep {
+ group1 {
+ psels = <NRF_PSEL(PDM_CLK, 1, 00)>,
+ <NRF_PSEL(PDM_DIN, 0, 16)>;
+ low-power-enable;
+ };
+ };
+
pwm0_default: pwm0_default {
group1 {
psels = <NRF_PSEL(PWM_OUT0, 0, 17)>;
diff --git a/boards/seeed/xiao_ble/xiao_ble_nrf52840_sense.dts b/boards/seeed/xiao_ble/xiao_ble_nrf52840_sense.dts
index 3434548..b2f1769 100644
--- a/boards/seeed/xiao_ble/xiao_ble_nrf52840_sense.dts
+++ b/boards/seeed/xiao_ble/xiao_ble_nrf52840_sense.dts
@@ -13,6 +13,12 @@
model = "Seeed XIAO BLE Sense";
compatible = "seeed,xiao-ble", "seeed,xiao-ble-sense";
+ msm261d3526hicpm-c-en {
+ compatible = "regulator-fixed";
+ enable-gpios = <&gpio1 10 (NRF_GPIO_DRIVE_S0H1 | GPIO_ACTIVE_HIGH)>;
+ regulator-name = "MSM261D3526HICPM-C-EN";
+ };
+
lsm6ds3tr-c-en {
compatible = "regulator-fixed-sync", "regulator-fixed";
enable-gpios = <&gpio1 8 (NRF_GPIO_DRIVE_S0H1 | GPIO_ACTIVE_HIGH)>;
@@ -38,3 +44,10 @@
status = "okay";
};
};
+
+&pdm0 {
+ pinctrl-0 = <&pdm0_default>;
+ pinctrl-1 = <&pdm0_sleep>;
+ pinctrl-names = "default", "sleep";
+ clock-source = "PCLK32M";
+};
diff --git a/samples/drivers/audio/dmic/boards/xiao_ble_nrf52840_sense.overlay b/samples/drivers/audio/dmic/boards/xiao_ble_nrf52840_sense.overlay
new file mode 100644
index 0000000..a3919aa
--- /dev/null
+++ b/samples/drivers/audio/dmic/boards/xiao_ble_nrf52840_sense.overlay
@@ -0,0 +1,12 @@
+/*
+ * SPDX-License-Identifier: Apache-2.0
+ */
+/ {
+ msm261d3526hicpm-c-en {
+ regulator-boot-on;
+ };
+};
+
+dmic_dev: &pdm0 {
+ status = "okay";
+};