390 lines
8.3 KiB
Plaintext
390 lines
8.3 KiB
Plaintext
/* SPDX-License-Identifier: Apache-2.0 */
|
|
|
|
#include <arm/armv7-m.dtsi>
|
|
#include <mem.h>
|
|
#include <freq.h>
|
|
#include <zephyr/dt-bindings/i2c/i2c.h>
|
|
#include <zephyr/dt-bindings/gpio/gpio.h>
|
|
|
|
/ {
|
|
clocks {
|
|
uartclk: apb-pclk {
|
|
compatible = "fixed-clock";
|
|
clock-frequency = <DT_FREQ_M(24)>;
|
|
#clock-cells = <0>;
|
|
};
|
|
xo32m: xo32m {
|
|
compatible = "ambiq,clkctrl";
|
|
clock-frequency = <DT_FREQ_M(32)>;
|
|
#clock-cells = <1>;
|
|
};
|
|
xo32k: xo32k {
|
|
compatible = "ambiq,clkctrl";
|
|
clock-frequency = <DT_FREQ_K(32)>;
|
|
#clock-cells = <1>;
|
|
};
|
|
};
|
|
|
|
cpus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
cpu0: cpu@0 {
|
|
compatible = "arm,cortex-m4f";
|
|
reg = <0>;
|
|
};
|
|
};
|
|
|
|
/* TCM */
|
|
tcm: tcm@10000000 {
|
|
compatible = "zephyr,memory-region";
|
|
reg = <0x10000000 0x10000>;
|
|
zephyr,memory-region = "ITCM";
|
|
};
|
|
|
|
/* SRAM */
|
|
sram0: memory@10010000 {
|
|
compatible = "mmio-sram";
|
|
reg = <0x10010000 0x2B0000>;
|
|
};
|
|
|
|
soc {
|
|
compatible = "ambiq,apollo4p-blue", "ambiq,apollo4x", "simple-bus";
|
|
|
|
flash: flash-controller@18000 {
|
|
compatible = "ambiq,flash-controller";
|
|
reg = <0x00018000 0x1e8000>;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
/* MRAM region */
|
|
flash0: flash@18000 {
|
|
compatible = "soc-nv-flash";
|
|
reg = <0x00018000 0x1e8000>;
|
|
};
|
|
};
|
|
|
|
pwrcfg: pwrcfg@40021000 {
|
|
compatible = "ambiq,pwrctrl";
|
|
reg = <0x40021000 0x400>;
|
|
#pwrcfg-cells = <2>;
|
|
};
|
|
|
|
stimer0: stimer@40008800 {
|
|
compatible = "ambiq,stimer";
|
|
reg = <0x40008800 0x80>;
|
|
interrupts = <32 0>;
|
|
status = "okay";
|
|
};
|
|
|
|
counter0: counter@40008200 {
|
|
compatible = "ambiq,counter";
|
|
reg = <0x40008200 0x20>;
|
|
interrupts = <67 0>;
|
|
clock-frequency = <DT_FREQ_M(6)>;
|
|
clk-source = <1>;
|
|
status = "disabled";
|
|
};
|
|
|
|
uart0: uart@4001c000 {
|
|
compatible = "ambiq,uart", "arm,pl011";
|
|
reg = <0x4001c000 0x1000>;
|
|
interrupts = <15 0>;
|
|
interrupt-names = "UART0";
|
|
status = "disabled";
|
|
clocks = <&uartclk>;
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x200>;
|
|
};
|
|
uart1: uart@4001d000 {
|
|
compatible = "ambiq,uart", "arm,pl011";
|
|
reg = <0x4001d000 0x1000>;
|
|
interrupts = <16 0>;
|
|
interrupt-names = "UART1";
|
|
status = "disabled";
|
|
clocks = <&uartclk>;
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x400>;
|
|
};
|
|
|
|
uart2: uart@4001e000 {
|
|
compatible = "ambiq,uart", "arm,pl011";
|
|
reg = <0x4001e000 0x1000>;
|
|
interrupts = <17 0>;
|
|
interrupt-names = "UART2";
|
|
status = "disabled";
|
|
clocks = <&uartclk>;
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x800>;
|
|
};
|
|
|
|
uart3: uart@4001f000 {
|
|
compatible = "ambiq,uart", "arm,pl011";
|
|
reg = <0x4001f000 0x1000>;
|
|
interrupts = <18 0>;
|
|
interrupt-names = "UART3";
|
|
status = "disabled";
|
|
clocks = <&uartclk>;
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x1000>;
|
|
};
|
|
|
|
spi0: spi@40050000 {
|
|
reg = <0x40050000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <6 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x2>;
|
|
};
|
|
|
|
spi1: spi@40051000 {
|
|
reg = <0x40051000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <7 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x4>;
|
|
};
|
|
|
|
spi2: spi@40052000 {
|
|
reg = <0x40052000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <8 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x8>;
|
|
};
|
|
|
|
spi3: spi@40053000 {
|
|
reg = <0x40053000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <9 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x10>;
|
|
};
|
|
|
|
spi4: spi@40054000 {
|
|
/* IOM4 works as SPI and is wired internally for BLE HCI. */
|
|
compatible = "ambiq,spi";
|
|
reg = <0x40054000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <10 0>;
|
|
cs-gpios = <&gpio32_63 22 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
|
clock-frequency = <DT_FREQ_M(24)>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x20>;
|
|
|
|
bt_hci_apollo: bt-hci@0 {
|
|
compatible = "ambiq,bt-hci-spi";
|
|
reg = <0>;
|
|
spi-max-frequency = <DT_FREQ_M(24)>;
|
|
irq-gpios = <&gpio32_63 21 GPIO_ACTIVE_HIGH>;
|
|
reset-gpios = <&gpio32_63 23 GPIO_ACTIVE_LOW>;
|
|
clkreq-gpios = <&gpio32_63 20 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
spi5: spi@40055000 {
|
|
reg = <0x40055000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <11 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x40>;
|
|
};
|
|
|
|
spi6: spi@40056000 {
|
|
reg = <0x40056000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <12 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x80>;
|
|
};
|
|
|
|
spi7: spi@40057000 {
|
|
reg = <0x40057000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <13 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x100>;
|
|
};
|
|
|
|
i2c0: i2c@40050000 {
|
|
reg = <0x40050000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <6 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x2>;
|
|
};
|
|
|
|
i2c1: i2c@40051000 {
|
|
reg = <0x40051000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <7 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x4>;
|
|
};
|
|
|
|
i2c2: i2c@40052000 {
|
|
reg = <0x40052000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <8 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x8>;
|
|
};
|
|
|
|
i2c3: i2c@40053000 {
|
|
reg = <0x40053000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <9 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x10>;
|
|
};
|
|
|
|
i2c4: i2c@40054000 {
|
|
reg = <0x40054000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <10 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x20>;
|
|
};
|
|
|
|
i2c5: i2c@40055000 {
|
|
reg = <0x40055000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <11 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x40>;
|
|
};
|
|
|
|
i2c6: i2c@40056000 {
|
|
reg = <0x40056000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <12 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x80>;
|
|
};
|
|
|
|
i2c7: i2c@40057000 {
|
|
reg = <0x40057000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
interrupts = <13 0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x100>;
|
|
};
|
|
|
|
mspi0: spi@40060000 {
|
|
compatible = "ambiq,mspi";
|
|
reg = <0x40060000 0x400>;
|
|
interrupts = <20 0>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x4000>;
|
|
};
|
|
|
|
mspi1: spi@40061000 {
|
|
compatible = "ambiq,mspi";
|
|
reg = <0x40061000 0x400>;
|
|
interrupts = <21 0>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x8000>;
|
|
};
|
|
|
|
mspi2: spi@40062000 {
|
|
compatible = "ambiq,mspi";
|
|
reg = <0x40062000 0x400>;
|
|
interrupts = <22 0>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
ambiq,pwrcfg = <&pwrcfg 0x4 0x10000>;
|
|
};
|
|
|
|
pinctrl: pin-controller@40010000 {
|
|
compatible = "ambiq,apollo4-pinctrl";
|
|
reg = <0x40010000 0x800>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
gpio: gpio@40010000 {
|
|
compatible = "ambiq,gpio";
|
|
gpio-map-mask = <0xffffffe0 0xffffffc0>;
|
|
gpio-map-pass-thru = <0x1f 0x3f>;
|
|
gpio-map = <
|
|
0x00 0x0 &gpio0_31 0x0 0x0
|
|
0x20 0x0 &gpio32_63 0x0 0x0
|
|
0x40 0x0 &gpio64_95 0x0 0x0
|
|
0x60 0x0 &gpio96_127 0x0 0x0
|
|
>;
|
|
reg = <0x40010000>;
|
|
#gpio-cells = <2>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
ranges;
|
|
|
|
gpio0_31: gpio0_31@0 {
|
|
compatible = "ambiq,gpio-bank";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
reg = <0>;
|
|
interrupts = <56 0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio32_63: gpio32_63@80 {
|
|
compatible = "ambiq,gpio-bank";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
reg = <0x80>;
|
|
interrupts = <57 0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio64_95: gpio64_95@100 {
|
|
compatible = "ambiq,gpio-bank";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
reg = <0x100>;
|
|
interrupts = <58 0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio96_127: gpio96_127@180 {
|
|
compatible = "ambiq,gpio-bank";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
reg = <0x180>;
|
|
interrupts = <59 0>;
|
|
status = "disabled";
|
|
};
|
|
};
|
|
};
|
|
|
|
wdt0: watchdog@40024000 {
|
|
compatible = "ambiq,watchdog";
|
|
reg = <0x40024000 0x400>;
|
|
interrupts = <1 0>;
|
|
clock-frequency = <16>;
|
|
status = "disabled";
|
|
};
|
|
|
|
};
|
|
};
|
|
|
|
&nvic {
|
|
arm,num-irq-priority-bits = <3>;
|
|
};
|