1/*
2 * SPDX-License-Identifier: Apache-2.0
3 *
4 * Copyright (c) 2023 Schlumberger
5 *
6 */
7
8/dts-v1/;
9
10#include <infineon/xmc4700_F144x2048.dtsi>
11#include <infineon/xmc4700_F144x2048-intc.dtsi>
12#include <zephyr/dt-bindings/pwm/pwm.h>
13#include "xmc47_relax_kit-pinctrl.dtsi"
14#include "arduino_r3_connector.dtsi"
15
16/ {
17	model = "Infineon XMC4700 Relax Kit board";
18	compatible = "infineon,xmc4700", "infineon,xmc4xxx";
19
20	aliases {
21		led0 = &led1;
22		die-temp0 = &die_temp;
23		pwm-led0 = &pwm_led1;
24	};
25
26	leds {
27		compatible = "gpio-leds";
28		/* leds are labelled LED1 and LED2 in the relax kit documentation */
29		led1: led1 {
30			gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>;
31		};
32		led2: led2 {
33			gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>;
34		};
35	};
36
37	pwmleds {
38		compatible = "pwm-leds";
39		pwm_led1: pwm_led1 {
40			pwms = <&pwm_ccu80 4 PWM_SEC(1) PWM_POLARITY_NORMAL>;
41			label = "PWM LED1";
42		};
43		pwm_led2: pwm_led2 {
44			pwms = <&pwm_ccu80 0 PWM_SEC(1) PWM_POLARITY_NORMAL>;
45			label = "PWM LED2";
46		};
47	};
48
49	chosen {
50		zephyr,sram = &psram1;
51		zephyr,flash = &flash0;
52		zephyr,console = &usic0ch0;
53		zephyr,shell-uart = &usic0ch0;
54		zephyr,flash-controller = &flash_controller;
55		zephyr,code-partition = &code_partition;
56	};
57
58};
59
60&dsram1 {
61	compatible = "zephyr,memory-region", "mmio-sram";
62	zephyr,memory-region = "DSRAM1";
63};
64
65&dsram2 {
66	compatible = "zephyr,memory-region", "mmio-sram";
67	zephyr,memory-region = "DSRAM2";
68};
69
70&cpu0 {
71	clock-frequency = <144000000>;
72};
73
74&flash0 {
75	partitions {
76		compatible = "fixed-partitions";
77		#address-cells = <1>;
78		#size-cells = <1>;
79
80		code_partition: partition@0 {
81			reg = <0x0 0x80000>;
82			read-only;
83		};
84
85		storage_partition: partition@80000 {
86			label = "storage";
87			reg = <0x80000 0x80000>;
88		};
89	};
90};
91
92&usic0ch0 {
93	compatible = "infineon,xmc4xxx-uart";
94	current-speed = <115200>;
95	pinctrl-0 = <&uart_tx_p1_5_u0c0 &uart_rx_p1_4_u0c0>;
96	pinctrl-names = "default";
97	input-src = "DX0B";
98	interrupts = <84 1 85 1>;
99	interrupt-names = "tx", "rx";
100	fifo-start-offset = <0>;
101	fifo-tx-size = <16>;
102	fifo-rx-size = <16>;
103	status = "okay";
104};
105
106&usic1ch0 {
107	compatible = "infineon,xmc4xxx-uart";
108	current-speed = <115200>;
109	pinctrl-0 = <&uart_tx_p2_14_u1c0 &uart_rx_p2_15_u1c0>;
110	pinctrl-names = "default";
111	input-src = "DX0C";
112	interrupts = <92 1 93 1>;
113	interrupt-names = "tx", "rx";
114	fifo-start-offset = <0>;
115	fifo-tx-size = <0>;
116	fifo-rx-size = <0>;
117	status = "okay";
118};
119
120&usic2ch0 {
121	compatible = "infineon,xmc4xxx-spi";
122	pinctrl-0 = <&spi_mosi_p3_8_u2c0 &spi_miso_p3_7_u2c0 &spi_sclk_p3_9_u2c0>;
123	pinctrl-names = "default";
124	miso-src = "DX0C";
125	interrupts = <96 1 97 1>;
126	interrupt-names = "tx", "rx";
127	status = "okay";
128
129	#address-cells = <1>;
130	#size-cells = <0>;
131};
132
133&usic1ch1 {
134	compatible = "infineon,xmc4xxx-i2c";
135	status = "okay";
136
137	pinctrl-0 = <&i2c_scl_p0_13_u1c1 &i2c_sda_p3_15_u1c1>;
138	pinctrl-names = "default";
139	scl-src = "DX1B";
140	sda-src = "DX0A";
141	interrupts = <94 1>;
142
143	#address-cells = <1>;
144	#size-cells = <0>;
145};
146
147&adc0 {
148	vref-internal-mv = <3300>;
149};
150
151&adc1 {
152	vref-internal-mv = <3300>;
153};
154
155&adc2 {
156	vref-internal-mv = <3300>;
157};
158
159&adc3 {
160	vref-internal-mv = <3300>;
161};
162
163&gpio5 {
164	status = "okay";
165};
166
167/* this example is not using the high-side/low-side signals of the same channel */
168/* the PWM signals are only used for the blink led example */
169&pwm_ccu80 {
170	slice-prescaler = <15 15 15 15>;
171	slice-deadtime-prescaler = <3 3 3 3>;
172	channel-deadtime-high = <0 0 0 0 0 0 0 0>;
173	channel-deadtime-low = <0 0 0 0 0 0 0 0>;
174	pinctrl-0 = <&pwm_out_p5_9_ccu80_ch4_high &pwm_out_p5_8_ccu80_ch0_low>;
175	pinctrl-names = "default";
176};
177