// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) /dts-v1/; #include #include #include #include #include #include #include / { model = "Plymovent AQM board"; compatible = "ply,plyaqm", "st,stm32mp151"; aliases { ethernet0 = ðernet0; serial0 = &uart4; serial1 = &uart7; }; codec { compatible = "invensense,ics43432"; port { codec_endpoint: endpoint { remote-endpoint = <&i2s1_endpoint>; dai-format = "i2s"; }; }; }; firmware { optee { compatible = "linaro,optee-tz"; method = "smc"; }; }; leds { compatible = "gpio-leds"; led-0 { gpios = <&gpioa 3 GPIO_ACTIVE_HIGH>; /* WHITE_EN */ color = ; default-state = "on"; }; }; v3v3: fixed-regulator-v3v3 { compatible = "regulator-fixed"; regulator-name = "v3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; v5v_sw: fixed-regulator-v5sw { compatible = "regulator-fixed"; regulator-name = "5v-switched"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&gpioe 10 GPIO_ACTIVE_HIGH>; /* 5V_SWITCHED_EN */ startup-delay-us = <100000>; enable-active-high; regulator-boot-on; }; reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; optee@cfd00000 { reg = <0xcfd00000 0x300000>; no-map; }; }; sound { compatible = "audio-graph-card"; label = "STM32MP15"; dais = <&i2s1_port>; }; wifi_pwrseq: wifi-pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&gpioe 12 GPIO_ACTIVE_LOW>; /* WLAN_REG_ON */ }; }; &adc { pinctrl-names = "default"; pinctrl-0 = <&adc1_in10_pins_a>; vdda-supply = <&v3v3>; vref-supply = <&v3v3>; status = "okay"; adc@0 { #address-cells = <1>; #size-cells = <0>; status = "okay"; channel@10 { /* NTC */ reg = <10>; st,min-sample-time-ns = <10000>; /* 10µs sampling time */ }; }; }; &cpu0 { clocks = <&scmi_clk CK_SCMI_MPU>; }; &cryp1 { clocks = <&scmi_clk CK_SCMI_CRYP1>; resets = <&scmi_reset RST_SCMI_CRYP1>; status = "okay"; }; ðernet0 { pinctrl-names = "default", "sleep"; pinctrl-0 = <ðernet0_rmii_pins_d>; pinctrl-1 = <ðernet0_rmii_sleep_pins_d>; phy-mode = "rmii"; max-speed = <100>; phy-handle = <ðphy0>; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; compatible = "snps,dwmac-mdio"; /* KSZ8081RNA PHY */ ethphy0: ethernet-phy@0 { reg = <0>; interrupts-extended = <&gpiob 0 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpiob 1 GPIO_ACTIVE_LOW>; reset-assert-us = <10000>; reset-deassert-us = <300>; }; }; }; &gpioa { gpio-line-names = "", "", "", "", "", "", "", "", "", "", "", "", "", "HWID_PL_N", "HWID_CP", ""; }; &gpiob { gpio-line-names = "", "", "", "", "", "", "LED_LATCH", "", "", "RELAY1_EN", "", "", "", "", "", ""; }; &gpioc { gpio-line-names = "", "", "", "", "", "", "", "", "", "", "", "", "", "HWID_Q7", "", ""; }; &gpioe { gpio-line-names = "", "", "", "", "RELAY2_EN", "", "", "", "", "", "", "", "", "", "", ""; }; &gpiog { gpio-line-names = "", "", "", "", "", "", "", "SW1", "", "", "", "", "", "", "", ""; }; &gpioz { clocks = <&scmi_clk CK_SCMI_GPIOZ>; }; &hash1 { clocks = <&scmi_clk CK_SCMI_HASH1>; resets = <&scmi_reset RST_SCMI_HASH1>; }; &i2c1 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c1_pins_c>; pinctrl-1 = <&i2c1_sleep_pins_c>; i2c-scl-rising-time-ns = <185>; i2c-scl-falling-time-ns = <20>; status = "okay"; /delete-property/dmas; /delete-property/dma-names; }; &i2c4 { clocks = <&scmi_clk CK_SCMI_I2C4>; resets = <&scmi_reset RST_SCMI_I2C4>; }; &i2c6 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c6_pins_b>; pinctrl-1 = <&i2c6_sleep_pins_b>; i2c-scl-rising-time-ns = <185>; i2c-scl-falling-time-ns = <20>; clocks = <&scmi_clk CK_SCMI_I2C6>; resets = <&scmi_reset RST_SCMI_I2C6>; status = "okay"; /delete-property/dmas; /delete-property/dma-names; pressure-sensor@47 { compatible = "bosch,bmp580"; reg = <0x47>; vdda-supply = <&v5v_sw>; vddd-supply = <&v5v_sw>; }; co2-sensor@62 { compatible = "sensirion,scd41"; reg = <0x62>; vdd-supply = <&v5v_sw>; }; pm-sensor@69 { compatible = "sensirion,sps30"; reg = <0x69>; }; }; &i2s1 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2s1_pins_a>; pinctrl-1 = <&i2s1_sleep_pins_a>; clocks = <&rcc SPI1>, <&rcc SPI1_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>; clock-names = "pclk", "i2sclk", "x8k", "x11k"; #clock-cells = <0>; /* Set I2S2 as master clock provider */ status = "okay"; i2s1_port: port { i2s1_endpoint: endpoint { format = "i2s"; mclk-fs = <256>; remote-endpoint = <&codec_endpoint>; }; }; }; &iwdg2 { clocks = <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>; status = "okay"; }; &m4_rproc { /delete-property/ st,syscfg-holdboot; resets = <&scmi_reset RST_SCMI_MCU>, <&scmi_reset RST_SCMI_MCU_HOLD_BOOT>; reset-names = "mcu_rst", "hold_boot"; }; &mdma1 { resets = <&scmi_reset RST_SCMI_MDMA>; }; &rcc { compatible = "st,stm32mp1-rcc-secure", "syscon"; clock-names = "hse", "hsi", "csi", "lse", "lsi"; clocks = <&scmi_clk CK_SCMI_HSE>, <&scmi_clk CK_SCMI_HSI>, <&scmi_clk CK_SCMI_CSI>, <&scmi_clk CK_SCMI_LSE>, <&scmi_clk CK_SCMI_LSI>; }; &rng1 { clocks = <&scmi_clk CK_SCMI_RNG1>; resets = <&scmi_reset RST_SCMI_RNG1>; status = "okay"; }; &rtc { clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>; }; /* SD card without Card-detect */ &sdmmc1 { pinctrl-names = "default", "opendrain", "sleep"; pinctrl-0 = <&sdmmc1_b4_pins_a>; pinctrl-1 = <&sdmmc1_b4_od_pins_a>; pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>; broken-cd; no-sdio; no-1-8-v; st,neg-edge; bus-width = <4>; vmmc-supply = <&v3v3>; status = "okay"; }; /* EMMC */ &sdmmc2 { pinctrl-names = "default", "opendrain", "sleep"; pinctrl-0 = <&sdmmc2_b4_pins_c &sdmmc2_d47_pins_b>; pinctrl-1 = <&sdmmc2_b4_od_pins_c &sdmmc2_d47_pins_b>; pinctrl-2 = <&sdmmc2_b4_sleep_pins_c &sdmmc2_d47_sleep_pins_b>; non-removable; no-sd; no-sdio; no-1-8-v; st,neg-edge; bus-width = <8>; vmmc-supply = <&v3v3>; status = "okay"; }; /* Wifi */ &sdmmc3 { pinctrl-names = "default", "opendrain", "sleep"; pinctrl-0 = <&sdmmc3_b4_pins_c>; pinctrl-1 = <&sdmmc3_b4_od_pins_c>; pinctrl-2 = <&sdmmc3_b4_sleep_pins_c>; non-removable; st,neg-edge; bus-width = <4>; vmmc-supply = <&v3v3>; mmc-pwrseq = <&wifi_pwrseq>; #address-cells = <1>; #size-cells = <0>; status = "okay"; wifi@1 { reg = <1>; compatible = "brcm,bcm4329-fmac"; }; }; &timers5 { status = "okay"; /delete-property/dmas; /delete-property/dma-names; pwm { pinctrl-0 = <&pwm1_pins_d>; pinctrl-1 = <&pwm1_sleep_pins_d>; pinctrl-names = "default", "sleep"; status = "okay"; }; }; &uart4 { pinctrl-names = "default", "sleep", "idle"; pinctrl-0 = <&uart4_pins_e>; pinctrl-1 = <&uart4_idle_pins_e>; pinctrl-2 = <&uart4_sleep_pins_e>; /delete-property/dmas; /delete-property/dma-names; status = "okay"; }; &uart7 { pinctrl-names = "default"; pinctrl-0 = <&uart7_pins_d>; uart-has-rtscts; status = "okay"; bluetooth { compatible = "brcm,bcm43438-bt"; shutdown-gpios = <&gpioe 11 GPIO_ACTIVE_HIGH>; /* BT_REG_ON */ max-speed = <4000000>; vbat-supply = <&v3v3>; vddio-supply = <&v3v3>; interrupt-parent = <&gpiog>; interrupts = <12 IRQ_TYPE_EDGE_RISING>; /* BT_HOST_WAKE */ interrupt-names = "host-wakeup"; }; };