/* * Copyright (c) 2021 Yonatan Schachter * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include #include #include #include "rpi_pico_common.dtsi" / { aliases { die-temp0 = &die_temp; }; 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)>; }; ssi: flash-controller@18000000 { compatible = "raspberrypi,pico-flash-controller"; reg = <0x18000000 0xfc>; #address-cells = <1>; #size-cells = <1>; flash0: flash@10000000 { compatible = "soc-nv-flash"; write-block-size = <1>; erase-block-size = ; }; }; 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>; }; 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 = "raspberrypi,pico-i2c", "snps,designware-i2c"; #address-cells = <1>; #size-cells = <0>; reg = <0x40044000 DT_SIZE_K(4)>; resets = <&reset RPI_PICO_RESETS_RESET_I2C0>; clocks = <&system_clk>; interrupts = <23 RPI_PICO_DEFAULT_IRQ_PRIORITY>; interrupt-names = "i2c0"; status = "disabled"; }; i2c1: i2c@40048000 { compatible = "raspberrypi,pico-i2c", "snps,designware-i2c"; #address-cells = <1>; #size-cells = <0>; reg = <0x40048000 DT_SIZE_K(4)>; resets = <&reset RPI_PICO_RESETS_RESET_I2C0>; 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>; }; timer: timer@40054000 { compatible = "raspberrypi,pico-timer"; reg = <0x40054000 DT_SIZE_K(4)>; resets = <&reset RPI_PICO_RESETS_RESET_TIMER>; clocks = <&xtal_clk>; interrupts = <0 RPI_PICO_DEFAULT_IRQ_PRIORITY>, <1 RPI_PICO_DEFAULT_IRQ_PRIORITY>, <2 RPI_PICO_DEFAULT_IRQ_PRIORITY>, <3 RPI_PICO_DEFAULT_IRQ_PRIORITY>; interrupt-names = "TIMER_IRQ_0", "TIMER_IRQ_1", "TIMER_IRQ_2", "TIMER_IRQ_3"; status = "disabled"; }; dma: dma@50000000 { compatible = "raspberrypi,pico-dma"; reg = <0x50000000 DT_SIZE_K(64)>; resets = <&reset RPI_PICO_RESETS_RESET_DMA>; clocks = <&system_clk>; interrupts = <11 RPI_PICO_DEFAULT_IRQ_PRIORITY>, <12 RPI_PICO_DEFAULT_IRQ_PRIORITY>; interrupt-names = "dma0", "dma1"; dma-channels = <12>; status = "disabled"; #dma-cells = <3>; }; vreg: vreg@40064000 { compatible = "raspberrypi,core-supply-regulator"; reg = <0x40064000 1>; status = "okay"; raspberrypi,brown-out-detection; raspberrypi,brown-out-threshold = <860000>; }; pio0: pio@50200000 { compatible = "raspberrypi,pico-pio"; reg = <0x50200000 DT_SIZE_K(4)>; clocks = <&system_clk>; resets = <&reset RPI_PICO_RESETS_RESET_PIO0>; status = "disabled"; }; pio1: pio@50300000 { compatible = "raspberrypi,pico-pio"; reg = <0x50300000 DT_SIZE_K(4)>; clocks = <&system_clk>; resets = <&reset RPI_PICO_RESETS_RESET_PIO1>; status = "disabled"; }; }; pinctrl: pin-controller { compatible = "raspberrypi,pico-pinctrl"; }; die_temp: dietemp { compatible = "raspberrypi,pico-temp"; io-channels = <&adc 4>; status = "disabled"; }; }; &nvic { arm,num-irq-priority-bits = <3>; };