|  | /* | 
|  | * Copyright (c) 2021 Yonatan Schachter | 
|  | * Copyright (c) 2022 Peter Johanson | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | /dts-v1/; | 
|  |  | 
|  | #include <raspberrypi/rpi_pico/rp2040.dtsi> | 
|  | #include "adafruit_kb2040-pinctrl.dtsi" | 
|  | #include "sparkfun_pro_micro_connector.dtsi" | 
|  | #include <freq.h> | 
|  | #include <zephyr/dt-bindings/led/led.h> | 
|  |  | 
|  | / { | 
|  | chosen { | 
|  | zephyr,sram = &sram0; | 
|  | zephyr,flash = &flash0; | 
|  | zephyr,flash-controller = &ssi; | 
|  | zephyr,console = &uart0; | 
|  | zephyr,shell-uart = &uart0; | 
|  | zephyr,code-partition = &code_partition; | 
|  | }; | 
|  |  | 
|  | aliases { | 
|  | watchdog0 = &wdt0; | 
|  | led-strip = &ws2812; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &flash0 { | 
|  | reg = <0x10000000 DT_SIZE_M(8)>; | 
|  |  | 
|  | partitions { | 
|  | compatible = "fixed-partitions"; | 
|  | #address-cells = <1>; | 
|  | #size-cells = <1>; | 
|  |  | 
|  | /* Reserved memory for the second stage bootloader */ | 
|  | second_stage_bootloader: partition@0 { | 
|  | label = "second_stage_bootloader"; | 
|  | reg = <0x00000000 0x100>; | 
|  | read-only; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Usable flash. Starts at 0x100, after the bootloader. The partition | 
|  | * size is 8MB minus the 0x100 bytes taken by the bootloader. | 
|  | */ | 
|  | code_partition: partition@100 { | 
|  | label = "code"; | 
|  | reg = <0x100 (DT_SIZE_M(8) - 0x100)>; | 
|  | read-only; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &uart0 { | 
|  | current-speed = <115200>; | 
|  | status = "okay"; | 
|  | pinctrl-0 = <&uart0_default>; | 
|  | pinctrl-names = "default"; | 
|  | }; | 
|  |  | 
|  | &spi0 { | 
|  | status = "okay"; | 
|  | pinctrl-0 = <&spi0_default>; | 
|  | pinctrl-names = "default"; | 
|  | clock-frequency = <DT_FREQ_M(8)>; | 
|  | }; | 
|  |  | 
|  | &i2c1 { | 
|  | status = "okay"; | 
|  | pinctrl-0 = <&i2c1_default>; | 
|  | pinctrl-names = "default"; | 
|  | clock-frequency = <I2C_BITRATE_FAST>; | 
|  | }; | 
|  |  | 
|  | &gpio0 { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &wdt0 { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &adc { | 
|  | status = "okay"; | 
|  | pinctrl-0 = <&adc_default>; | 
|  | pinctrl-names = "default"; | 
|  | }; | 
|  |  | 
|  | &pio0 { | 
|  | status = "okay"; | 
|  |  | 
|  | pio-ws2812 { | 
|  | compatible = "worldsemi,ws2812-rpi_pico-pio"; | 
|  | status = "okay"; | 
|  | pinctrl-0 = <&ws2812_pio0_default>; | 
|  | pinctrl-names = "default"; | 
|  | bit-waveform = <3>, <3>, <4>; | 
|  |  | 
|  | ws2812: ws2812 { | 
|  | status = "okay"; | 
|  | gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>; | 
|  | chain-length = <1>; | 
|  | color-mapping = <LED_COLOR_ID_GREEN | 
|  | LED_COLOR_ID_RED | 
|  | LED_COLOR_ID_BLUE>; | 
|  | reset-delay = <280>; | 
|  | frequency = <800000>; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | zephyr_udc0: &usbd { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &vreg { | 
|  | regulator-always-on; | 
|  | regulator-allowed-modes = <REGULATOR_RPI_PICO_MODE_NORMAL>; | 
|  | }; | 
|  |  | 
|  | &xosc { | 
|  | startup-delay-multiplier = <64>; | 
|  | }; |