zephyr/dts/arm/ti/cc32xx.dtsi

144 lines
3.4 KiB
Plaintext

/* SPDX-License-Identifier: Apache-2.0 */
#include <arm/armv7-m.dtsi>
#include <zephyr/dt-bindings/adc/adc.h>
#include <zephyr/dt-bindings/i2c/i2c.h>
#include <zephyr/dt-bindings/gpio/gpio.h>
#define INT_UARTA0 21 // UART0 Rx and Tx
#define INT_UARTA1 22 // UART1 Rx and Tx
#define INT_I2CA0 24 // I2C controller
#define INT_ADCCH0 30 // ADC channel 0
#define INT_ADCCH1 31 // ADC channel 1
#define INT_ADCCH2 32 // ADC channel 2
#define INT_ADCCH3 33 // ADC channel 3
#define INT_WDT 34 // Watchdog Timer
/* Note: Zephyr uses exception numbers, vs the IRQ #s used by the CC32XX SDK */
/* which are offset by 16: */
#define EXP_UARTA0 (INT_UARTA0 - 16)
#define EXP_UARTA1 (INT_UARTA1 - 16)
#define EXP_I2CA0 (INT_I2CA0 - 16)
#define EXP_ADCCH0 (INT_ADCCH0 - 16)
#define EXP_ADCCH1 (INT_ADCCH1 - 16)
#define EXP_ADCCH2 (INT_ADCCH2 - 16)
#define EXP_ADCCH3 (INT_ADCCH3 - 16)
#define EXP_WDT (INT_WDT - 16)
#define EXC_GPIOA0 0 /* (INT_GPIOA0 - 16) = (16-16) */
#define EXC_GPIOA1 1 /* (INT_GPIOA1 - 16) = (17-16) */
#define EXC_GPIOA2 2 /* (INT_GPIOA2 - 16) = (18-16) */
#define EXC_GPIOA3 3 /* (INT_GPIOA3 - 16) = (19-16) */
/ {
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-m4";
reg = <0>;
};
};
sram0: memory@20000000 {
compatible = "mmio-sram";
};
flash0: serial-flash@0 {
compatible = "serial-flash";
};
sysclk: system-clock {
compatible = "fixed-clock";
clock-frequency = <80000000>;
#clock-cells = <0>;
};
soc {
uart0: uart@4000c000 {
compatible = "ti,cc32xx-uart";
reg = <0x4000c000 0x4c>;
interrupts = <EXP_UARTA0 3>;
clocks = <&sysclk>;
status = "disabled";
};
uart1: uart@4000d000 {
compatible = "ti,cc32xx-uart";
reg = <0x4000d000 0x4c>;
interrupts = <EXP_UARTA1 3>;
clocks = <&sysclk>;
status = "disabled";
};
i2c0: i2c@40020000 {
compatible = "ti,cc32xx-i2c";
clocks = <&sysclk>;
clock-frequency = <I2C_BITRATE_STANDARD>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0x40020000 0xfc8>;
interrupts = <EXP_I2CA0 3>;
status = "disabled";
};
gpioa0: gpio@40004000 {
compatible = "ti,cc32xx-gpio";
reg = <0x40004000 0x1000>;
interrupts = <0 1>;
gpio-controller;
#gpio-cells = <2>;
};
gpioa1: gpio@40005000 {
compatible = "ti,cc32xx-gpio";
reg = <0x40005000 0x1000>;
interrupts = <1 1>;
gpio-controller;
#gpio-cells = <2>;
};
gpioa2: gpio@40006000 {
compatible = "ti,cc32xx-gpio";
reg = <0x40006000 0x1000>;
interrupts = <2 1>;
gpio-controller;
#gpio-cells = <2>;
};
gpioa3: gpio@40007000 {
compatible = "ti,cc32xx-gpio";
reg = <0x40007000 0x1000>;
interrupts = <3 1>;
gpio-controller;
#gpio-cells = <2>;
};
adc0: adc@4402e800 {
compatible = "ti,cc32xx-adc";
reg = <0x4402E800 0x100>;
interrupts = <EXP_ADCCH0 3>, <EXP_ADCCH1 3>, <EXP_ADCCH2 3>, <EXP_ADCCH3 3>;
status = "disabled";
#io-channel-cells = <1>;
};
wdt0: watchdog@40000000 {
compatible = "ti,cc32xx-watchdog";
reg = <0x40000000 0x1000>;
interrupts = <EXP_WDT 0>;
status = "disabled";
};
pinctrl: pin-controller@4402e0a0 {
compatible = "ti,cc32xx-pinctrl";
reg = <0x4402e0a0 0x80>;
};
};
};
&nvic {
arm,num-irq-priority-bits = <3>;
};