1/*
2 * Copyright (c) 2017 Arthur Sfez
3 *
4 * Based on stm32l496g_disco:
5 *
6 * Copyright (c) 2017 Linaro Limited
7 *
8 * SPDX-License-Identifier: Apache-2.0
9 */
10
11/dts-v1/;
12#include <st/l4/stm32l476Xg.dtsi>
13#include <st/l4/stm32l476v(c-e-g)tx-pinctrl.dtsi>
14#include <zephyr/dt-bindings/input/input-event-codes.h>
15
16/ {
17	model = "STMicroelectronics STM32L476G-DISCO board";
18	compatible = "st,stm32l476g-disco";
19
20	chosen {
21		zephyr,console = &usart2;
22		zephyr,shell-uart = &usart2;
23		zephyr,sram = &sram0;
24		zephyr,flash = &flash0;
25	};
26
27	leds {
28		compatible = "gpio-leds";
29		green_led_4: led_4 {
30			gpios = <&gpiob 2 GPIO_ACTIVE_HIGH>;
31			label = "User LD4";
32		};
33		green_led_5: led_5 {
34			gpios = <&gpioe 8 GPIO_ACTIVE_HIGH>;
35			label = "User LD5";
36		};
37	};
38
39	gpio_keys {
40		compatible = "gpio-keys";
41		joy_center: joystick_center {
42			label = "joystick center";
43			gpios = <&gpioa 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
44			zephyr,code = <INPUT_KEY_ENTER>;
45		};
46		joy_down: joystick_down {
47			label = "joystick down";
48			gpios = <&gpioa 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
49			zephyr,code = <INPUT_KEY_DOWN>;
50		};
51		joy_up: joystick_up {
52			label = "joystick up";
53			gpios = <&gpioa 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
54			zephyr,code = <INPUT_KEY_UP>;
55		};
56		joy_left: joystick_left {
57			label = "joystick left";
58			gpios = <&gpioa 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
59			zephyr,code = <INPUT_KEY_LEFT>;
60		};
61		joy_right: joystick_right {
62			label = "joystick right";
63			gpios = <&gpioa 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
64			zephyr,code = <INPUT_KEY_RIGHT>;
65		};
66	};
67
68	aliases {
69		led0 = &green_led_4;
70		sw0 = &joy_center;
71	};
72};
73
74&clk_lsi {
75	status = "okay";
76};
77
78&clk_hsi {
79	status = "okay";
80};
81
82&pll {
83	div-m = <1>;
84	mul-n = <20>;
85	div-p = <7>;
86	div-q = <2>;
87	div-r = <4>;
88	clocks = <&clk_hsi>;
89	status = "okay";
90};
91
92&rcc {
93	clocks = <&pll>;
94	clock-frequency = <DT_FREQ_M(80)>;
95	ahb-prescaler = <1>;
96	apb1-prescaler = <1>;
97	apb2-prescaler = <1>;
98};
99
100&usart2 {
101	pinctrl-0 = <&usart2_tx_pd5 &usart2_rx_pd6>;
102	pinctrl-names = "default";
103	current-speed = <115200>;
104	status = "okay";
105};
106
107&rtc {
108	clocks = <&rcc STM32_CLOCK_BUS_APB1 0x10000000>,
109		 <&rcc STM32_SRC_LSI RTC_SEL(2)>;
110	status = "okay";
111
112	backup_regs {
113		status = "okay";
114	};
115};
116