/* SPDX-License-Identifier: Apache-2.0 */

#include <arm/armv7-m.dtsi>
#include <mem.h>
#include <zephyr/dt-bindings/i2c/i2c.h>

/ {
	clocks {
		uartclk: apb-pclk {
			compatible = "fixed-clock";
			clock-frequency = <24000000>;
			#clock-cells = <0>;
		};
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu0: cpu@0 {
			compatible = "arm,cortex-m4f";
			reg = <0>;
		};
	};

	/* MRAM region */
	flash0: flash@18000 {
		compatible = "soc-nv-flash";
		reg = <0x00018000 0x1e8000>;
	};

	/* 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 {
		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@40008000 {
			compatible = "ambiq,counter";
			reg = <0x40008000 0x80>;
			interrupts = <67 0>;
			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>;
		};

		iom0: iom@40050000 {
			reg = <0x40050000 0x1000>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <6 0>;
			status = "disabled";
			ambiq,pwrcfg = <&pwrcfg 0x4 0x2>;
		};

		iom1: iom@40051000 {
			reg = <0x40051000 0x1000>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <7 0>;
			status = "disabled";
			ambiq,pwrcfg = <&pwrcfg 0x4 0x4>;
		};

		iom2: iom@40052000 {
			reg = <0x40052000 0x1000>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <8 0>;
			status = "disabled";
			ambiq,pwrcfg = <&pwrcfg 0x4 0x8>;
		};

		iom3: iom@40053000 {
			reg = <0x40053000 0x1000>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <9 0>;
			status = "disabled";
			ambiq,pwrcfg = <&pwrcfg 0x4 0x10>;
		};
		iom4: iom@40054000 {
			reg = <0x40054000 0x1000>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <10 0>;
			status = "disabled";
			ambiq,pwrcfg = <&pwrcfg 0x4 0x20>;
		};

		iom5: iom@40055000 {
			reg = <0x40055000 0x1000>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <11 0>;
			status = "disabled";
			ambiq,pwrcfg = <&pwrcfg 0x4 0x40>;
		};

		iom6: iom@40056000 {
			reg = <0x40056000 0x1000>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <12 0>;
			status = "disabled";
			ambiq,pwrcfg = <&pwrcfg 0x4 0x80>;
		};

		iom7: iom@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>;
		};

		wdt0: watchdog@40024000 {
			compatible = "ambiq,watchdog";
			reg = <0x40024000 0x400>;
			interrupts = <1 0>;
			clock-frequency = <16>;
			status = "disabled";
		};
	};
};

&nvic {
	arm,num-irq-priority-bits = <3>;
};
