/* * Copyright (c) 2022 Google LLC * * SPDX-License-Identifier: Apache-2.0 */ /dts-v1/; #include #include / { model = "Google Dragonclaw development board"; compatible = "google,dragonclaw-fpmcu"; chosen { zephyr,console = &usart2; zephyr,shell-uart = &usart2; zephyr,sram = &sram0; zephyr,flash = &flash0; zephyr,flash-controller = &flash; }; }; &clk_hsi { /* HSI clock frequency is 16MHz */ status = "okay"; }; &clk_lsi { /* LSI clock frequency is 32768kHz */ status = "okay"; }; &pll { div-m = <8>; mul-n = <192>; /* 16MHz * 192/8 = 384MHz VCO clock */ div-p = <4>; /* 96MHz PLL general clock output */ div-q = <8>; /* 48MHz PLL output for USB, SDIO, RNG */ div-r = <7>; /* I2S - lowest possible frequency to save power */ clocks = <&clk_hsi>; status = "okay"; }; &rcc { clocks = <&pll>; /* Select PLL as SYSCLK source (96MHz) */ ahb-prescaler = <1>; /* SYSCLK not divided */ clock-frequency = ; /* AHB frequency */ apb1-prescaler = <2>; /* AHB clock divided by 2 */ apb2-prescaler = <2>; /* AHB clock divided by 2 */ }; /* USART1: AP UART (Host Commands and MKBP) */ &usart1 { pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>; pinctrl-names = "default"; current-speed = <115200>; status = "okay"; }; /* USART2: Servo UART (console) */ &usart2 { pinctrl-0 = <&usart2_tx_pa2 &usart2_rx_pa3>; pinctrl-names = "default"; current-speed = <115200>; status = "okay"; }; /* SPI1: communication with the AP */ &spi1 { pinctrl-0 = <&spi1_nss_pa4 &spi1_sck_pa5 &spi1_miso_pa6 &spi1_mosi_pa7>; pinctrl-names = "default"; status = "okay"; }; /* SPI2: communication with the fingerprint sensor */ &spi2 { pinctrl-0 = <&spi2_nss_pb12 &spi2_sck_pb13 &spi2_miso_pb14 &spi2_mosi_pb15>; pinctrl-names = "default"; status = "okay"; }; &rtc { clocks = <&rcc STM32_CLOCK_BUS_APB1 0x10000000>, <&rcc STM32_SRC_LSI RTC_SEL(2)>; status = "okay"; backup_regs { status = "okay"; }; }; &rng { status = "okay"; }; /* * Set flags of unused pins as GPIO_ACTIVE_HIGH (0 << 0), which will be * interpreted by GPIO driver as GPIO_DISCONNECTED, without setting the gpio as * either input or output. The STM32 GPIO driver will set these pins as analog * to reduce power consumption. */ &gpiob { unused { gpio-hog; gpios = <2 GPIO_ACTIVE_HIGH>, <5 GPIO_ACTIVE_HIGH>; }; }; &gpioc { unused { gpio-hog; gpios = <13 GPIO_ACTIVE_HIGH>, <14 GPIO_ACTIVE_HIGH>, <15 GPIO_ACTIVE_HIGH>; }; }; &gpioh { unused { gpio-hog; gpios = <0 GPIO_ACTIVE_HIGH>, <1 GPIO_ACTIVE_HIGH>; }; }; /* * The board uses STM32F412CG in UFQFPN48 package in which gpio[d-g] is not * exposed, so disable it. */ &gpiod {status = "disabled";}; &gpioe {status = "disabled";}; &gpiof {status = "disabled";}; &gpiog {status = "disabled";};