/**************************************************************************** * boards/arm/stm32f0l0g0/nucleo-g070rb/src/nucleo-g070rb.h * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. The * ASF licenses this file to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * ****************************************************************************/ #ifndef __BOARDS_ARM_STM32F0L0G0_NUCLEO_G070RB_SRC_NUCLEO_G070RB_H #define __BOARDS_ARM_STM32F0L0G0_NUCLEO_G070RB_SRC_NUCLEO_G070RB_H /**************************************************************************** * Included Files ****************************************************************************/ #include /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ /* LED definitions **********************************************************/ /* Nucleo G070RB board has three LEDs. Two of these are controlled by * logic on the board and are not available for software control: * * LD1 COM: LD1 default status is red. LD1 turns to green to indicate that * communications are in progress between the PC and the * ST-LINK/V2-1. * LD3 5V_PWR: green LED indicates that the board is powered by a 5V source. * * And one can be controlled by software: * * User LD4: green LED is a user LED connected to STM32 I/O PA5. * * If CONFIG_ARCH_LEDS is not defined, then the user can control the LED in * any way. The following definition is used to access the LED. */ #define GPIO_LED1 (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_HIGH | \ GPIO_OUTPUT_CLEAR | GPIO_PORTA | GPIO_PIN5) #define LED_DRIVER_PATH "/dev/userleds" /* Button definitions *******************************************************/ /* Nucleo G070RB supports two buttons; only one button is controllable * by software: * * B1 USER: user button connected to the I/O PC13 of the STM32G070RBT6. * B2 RESET: push button connected to NRST; is used to RESET the * STM32G070RBT6. * * NOTE that EXTI interrupts are configured. */ /* Button definitions *******************************************************/ /* Nucleo G070RB board supports two buttons; only one button is controllable * by software: * * B1 USER: user button connected to STM32 I/O PC13. * B2 RESET: push button connected to NRST; used to RESET the MCU. */ #define MIN_IRQBUTTON BUTTON_USER #define MAX_IRQBUTTON BUTTON_USER #define NUM_IRQBUTTONS 1 #define GPIO_BTN_USER (GPIO_INPUT | GPIO_FLOAT | GPIO_EXTI | GPIO_PORTC | \ GPIO_PIN13) /* GPIO pins used by the GPIO Subsystem */ #define BOARD_NGPIOIN 1 /* Amount of GPIO Input pins */ #define BOARD_NGPIOOUT 1 /* Amount of GPIO Output pins */ #define BOARD_NGPIOINT 1 /* Amount of GPIO Input w/ Interruption pins */ /* Input pins */ #define GPIO_IN1 (GPIO_INPUT | GPIO_FLOAT | GPIO_PORTA | GPIO_PIN4) /* Interrupt pins */ #define GPIO_INT1 GPIO_BTN_USER /* Output pins */ #define GPIO_OUT1 (GPIO_OUTPUT | GPIO_FLOAT | GPIO_PORTC | GPIO_PIN7) /**************************************************************************** * Public Data ****************************************************************************/ /**************************************************************************** * Public Function Prototypes ****************************************************************************/ #ifdef CONFIG_DEV_GPIO int stm32_gpio_initialize(void); #endif /**************************************************************************** * Name: stm32_pwm_setup * * Description: * Initialize PWM and register the PWM device. * ****************************************************************************/ #ifdef CONFIG_PWM int stm32_pwm_setup(void); #endif /**************************************************************************** * Name: stm32_timer_driver_setup * * Description: * Configure the timer driver. * * Input Parameters: * devpath - The full path to the timer device. This should be of the * form /dev/timer0 * timer - The timer's number. * * Returned Value: * Zero (OK) is returned on success; A negated errno value is returned * to indicate the nature of any failure. * ****************************************************************************/ #ifdef CONFIG_TIMER int stm32_timer_driver_setup(const char *devpath, int timer); #endif /**************************************************************************** * Name: stm32_bringup * * Description: * Perform architecture-specific initialization * * CONFIG_BOARD_LATE_INITIALIZE=y : * Called from board_late_initialize(). * * CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y : * Called from the NSH library * ****************************************************************************/ int stm32_bringup(void); #endif /* __BOARDS_ARM_STM32F0L0G0_NUCLEO_G070RB_SRC_NUCLEO_G070RB_H */