Commit 0039c665 authored by Maxin John's avatar Maxin John Committed by Carles Cufi
Browse files

boards: st: stm32l152c_disco: add board support



The STM32L152C-DISCOVERY is a development board based on the STM32L152RC
MCU. It is very similar to the stm32l1_disco, which was used as a
reference for the pinmux and defconfig.

stm32l152c_disco board has 256 Kbytes of flash memory, 32 Kbytes of RAM
and 8 Kbytes of data EEPROM.

Signed-off-by: default avatarMaxin John <maxin.john@gmail.com>
parent 75f5d980
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
# Copyright (c) 2024 Maxin John
# SPDX-License-Identifier: Apache-2.0

config BOARD_STM32L152C_DISCO
	select SOC_STM32L152XC
+9 −5
Original line number Diff line number Diff line
board:
  name: stm32l1_disco
boards:
  - name: stm32l1_disco
    vendor: st
    socs:
      - name: stm32l151xb
  - name: stm32l152c_disco
    vendor: st
    socs:
      - name: stm32l152xc
+132 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2024 Maxin John
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <st/l1/stm32l152Xc.dtsi>
#include <st/l1/stm32l152r(6-8-b)tx-pinctrl.dtsi>
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
	model = "STMicroelectronics STM32L152CDISCOVERY board";
	compatible = "st,stm32l1discovery";

	chosen {
		zephyr,console = &usart1;
		zephyr,shell-uart = &usart1;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
	};

	leds {
		compatible = "gpio-leds";
		green_led: ld3 {
			gpios = <&gpiob 7 GPIO_ACTIVE_HIGH>;
			label = "User LD3";
		};
		blue_led: ld4 {
			gpios = <&gpiob 6 GPIO_ACTIVE_HIGH>;
			label = "User LD4";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button: button {
			label = "User";
			gpios = <&gpioa 0 GPIO_ACTIVE_LOW>;
			zephyr,code = <INPUT_KEY_0>;
		};
	};

	aliases {
		led0 = &green_led;
		led1 = &blue_led;
		sw0 = &user_button;
	};
};

&clk_lsi {
	status = "okay";
};

&clk_hsi {
	status = "okay";
};

&pll {
	div = <4>;
	mul = <8>;
	/* out of the box, MCO from stlink is not enabled, unlike later discos */
	clocks = <&clk_hsi>;
	status = "okay";
};

&rcc {
	clocks = <&pll>;
	clock-frequency = <DT_FREQ_M(32)>;
	ahb-prescaler = <1>;
	apb1-prescaler = <1>;
	apb2-prescaler = <1>;
};

&usart1 {
	pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&usart2 {
	pinctrl-0 = <&usart2_tx_pa2 &usart2_rx_pa3>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&usart3 {
	pinctrl-0 = <&usart3_tx_pb10 &usart3_rx_pb11>;
	pinctrl-names = "default";
	current-speed = <115200>;
	status = "okay";
};

&i2c1 {
	pinctrl-0 = <&i2c1_scl_pb6 &i2c1_sda_pb7>;
	pinctrl-names = "default";
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
};

&i2c2 {
	pinctrl-0 = <&i2c2_scl_pb10 &i2c2_sda_pb11>;
	pinctrl-names = "default";
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
};

&spi1 {
	pinctrl-0 = <&spi1_nss_pa4 &spi1_sck_pa5
		     &spi1_miso_pa6 &spi1_mosi_pa7>;
	pinctrl-names = "default";
	status = "okay";
};

&spi2 {
	pinctrl-0 = <&spi2_nss_pb12 &spi2_sck_pb13
		     &spi2_miso_pb14 &spi2_mosi_pb15>;
	pinctrl-names = "default";
	status = "okay";
};

&rtc {
	clocks = <&rcc STM32_CLOCK_BUS_APB1 0x10000000>,
		 <&rcc STM32_SRC_LSI RTC_SEL(2)>;
	status = "okay";

	backup_regs {
		status = "okay";
	};
};
+15 −0
Original line number Diff line number Diff line
identifier: stm32l152c_disco
name: ST STM32L152C Discovery
type: mcu
arch: arm
toolchain:
  - zephyr
  - gnuarmemb
  - xtools
ram: 32
flash: 256
supported:
  - gpio
  - i2c
  - spi
vendor: st
+17 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: Apache-2.0

# enable uart driver
CONFIG_SERIAL=y

# enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# enable GPIO
CONFIG_GPIO=y

# Enable Clocks
CONFIG_CLOCK_CONTROL=y

# enable pin controller
CONFIG_PINCTRL=y