| /* |
| * Copyright (c) 2021 Yonatan Schachter |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <arm/armv6-m.dtsi> |
| #include <zephyr/dt-bindings/gpio/gpio.h> |
| #include <zephyr/dt-bindings/i2c/i2c.h> |
| #include <mem.h> |
| |
| #include "rpi_pico_common.dtsi" |
| |
| / { |
| cpus { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| cpu0: cpu@0 { |
| compatible = "arm,cortex-m0+"; |
| reg = <0>; |
| }; |
| |
| cpu1: cpu@1 { |
| compatible = "arm,cortex-m0+"; |
| reg = <1>; |
| }; |
| }; |
| |
| soc { |
| sram0: memory@20000000 { |
| compatible = "mmio-sram"; |
| reg = <0x20000000 DT_SIZE_K(264)>; |
| }; |
| |
| flash_controller: flash-controller@10000000 { |
| compatible = "raspberrypi,pico-flash-controller"; |
| reg = <0x10000000 DT_SIZE_K(4)>; |
| interrupts = <15 0>; |
| |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| flash0: flash@0 { |
| compatible = "soc-nv-flash"; |
| write-block-size = <1>; |
| erase-block-size = <DT_SIZE_K(4)>; |
| }; |
| }; |
| |
| peripheral_clk: peripheral-clk { |
| compatible = "fixed-clock"; |
| clock-frequency = <125000000>; |
| #clock-cells = <0>; |
| }; |
| |
| system_clk: system-clk { |
| compatible = "fixed-clock"; |
| clock-frequency = <125000000>; |
| #clock-cells = <0>; |
| }; |
| |
| reset: reset-controller@4000c000 { |
| compatible = "raspberrypi,pico-reset"; |
| reg = <0x4000c000 DT_SIZE_K(4)>; |
| reg-width = <4>; |
| active-low = <0>; |
| #reset-cells = <1>; |
| }; |
| |
| pinctrl: pin-controller@40014000 { |
| compatible = "raspberrypi,pico-pinctrl"; |
| reg = <0x40014000 DT_SIZE_K(4)>; |
| status = "okay"; |
| }; |
| |
| gpio0: gpio@40014000 { |
| compatible = "raspberrypi,pico-gpio"; |
| reg = <0x40014000 DT_SIZE_K(4)>; |
| interrupts = <13 RPI_PICO_DEFAULT_IRQ_PRIORITY>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| status = "disabled"; |
| ngpios = <30>; |
| }; |
| |
| uart0: uart@40034000 { |
| compatible = "raspberrypi,pico-uart"; |
| reg = <0x40034000 DT_SIZE_K(4)>; |
| clocks = <&peripheral_clk>; |
| resets = <&reset RPI_PICO_RESETS_RESET_UART0>; |
| interrupts = <20 RPI_PICO_DEFAULT_IRQ_PRIORITY>; |
| interrupt-names = "uart0"; |
| status = "disabled"; |
| }; |
| |
| uart1: uart@40038000 { |
| compatible = "raspberrypi,pico-uart"; |
| reg = <0x40038000 DT_SIZE_K(4)>; |
| clocks = <&peripheral_clk>; |
| resets = <&reset RPI_PICO_RESETS_RESET_UART1>; |
| interrupts = <21 RPI_PICO_DEFAULT_IRQ_PRIORITY>; |
| interrupt-names = "uart1"; |
| status = "disabled"; |
| }; |
| |
| spi0: spi@4003c000 { |
| compatible = "raspberrypi,pico-spi", "arm,pl022"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x4003c000 DT_SIZE_K(4)>; |
| clocks = <&peripheral_clk>; |
| resets = <&reset RPI_PICO_RESETS_RESET_SPI0>; |
| interrupts = <18 RPI_PICO_DEFAULT_IRQ_PRIORITY>; |
| interrupt-names = "spi0"; |
| status = "disabled"; |
| }; |
| |
| spi1: spi@40040000 { |
| compatible = "raspberrypi,pico-spi", "arm,pl022"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x40040000 DT_SIZE_K(4)>; |
| resets = <&reset RPI_PICO_RESETS_RESET_SPI1>; |
| clocks = <&peripheral_clk>; |
| interrupts = <19 RPI_PICO_DEFAULT_IRQ_PRIORITY>; |
| interrupt-names = "spi1"; |
| status = "disabled"; |
| }; |
| |
| adc: adc@4004c000 { |
| compatible = "raspberrypi,pico-adc"; |
| reg = <0x4004c000 DT_SIZE_K(4)>; |
| resets = <&reset RPI_PICO_RESETS_RESET_ADC>; |
| interrupts = <22 RPI_PICO_DEFAULT_IRQ_PRIORITY>; |
| interrupt-names = "adc0"; |
| status = "disabled"; |
| #io-channel-cells = <1>; |
| }; |
| |
| i2c0: i2c@40044000 { |
| compatible = "snps,designware-i2c"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x40044000 DT_SIZE_K(4)>; |
| clocks = <&system_clk>; |
| interrupts = <23 RPI_PICO_DEFAULT_IRQ_PRIORITY>; |
| interrupt-names = "i2c0"; |
| status = "disabled"; |
| }; |
| |
| i2c1: i2c@40048000 { |
| compatible = "snps,designware-i2c"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x40048000 DT_SIZE_K(4)>; |
| clocks = <&system_clk>; |
| interrupts = <24 RPI_PICO_DEFAULT_IRQ_PRIORITY>; |
| interrupt-names = "i2c1"; |
| status = "disabled"; |
| }; |
| |
| wdt0: watchdog@40058000 { |
| compatible = "raspberrypi,pico-watchdog"; |
| reg = <0x40058000 DT_SIZE_K(4)>; |
| clocks = <&xtal_clk>; |
| status = "disabled"; |
| }; |
| |
| usbd: usbd@50100000 { |
| compatible = "raspberrypi,pico-usbd"; |
| reg = <0x50100000 0x10000>; |
| resets = <&reset RPI_PICO_RESETS_RESET_USBCTRL>; |
| interrupts = <5 RPI_PICO_DEFAULT_IRQ_PRIORITY>; |
| interrupt-names = "usbctrl"; |
| num-bidir-endpoints = <16>; |
| status = "disabled"; |
| }; |
| |
| pwm: pwm@40050000 { |
| compatible = "raspberrypi,pico-pwm"; |
| reg = <0x40050000 DT_SIZE_K(4)>; |
| resets = <&reset RPI_PICO_RESETS_RESET_PWM>; |
| clocks = <&system_clk>; |
| interrupts = <4 RPI_PICO_DEFAULT_IRQ_PRIORITY>; |
| interrupt-names = "PWM_IRQ_WRAP"; |
| status = "disabled"; |
| #pwm-cells = <3>; |
| }; |
| }; |
| }; |
| |
| &nvic { |
| arm,num-irq-priority-bits = <3>; |
| }; |