/**************************************************************************** * boards/arm/stm32/stm32f334-disco/src/stm32f334-disco.h * * Copyright (C) 2017 Gregory Nutt. All rights reserved. * Authors: Mateusz Szafoni * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * 3. Neither the name NuttX nor the names of its contributors may be * used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************/ #ifndef __BOARDS_ARM_STM32_STM32F334_DISCO_SRC_STM32F334_DISCO_H #define __BOARDS_ARM_STM32_STM32F334_DISCO_SRC_STM32F334_DISCO_H /**************************************************************************** * Included Files ****************************************************************************/ #include /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ /* LED definitions **********************************************************/ #define GPIO_LED1 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|\ GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN6) #define GPIO_LED2 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz| \ GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN8) #define GPIO_LED3 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz| \ GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN9) #define GPIO_LED4 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz| \ GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN7) #define LED_DRIVER_PATH "/dev/userleds" /* Button definitions *******************************************************/ #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_PORTA|GPIO_PIN0) /* PWM definitions **********************************************************/ /* The STM32F334-DISCO has no real on-board PWM devices, but the board can be * configured to output a pulse train using variously unused pins on the * board for PWM output (see board.h for details of pins). */ #ifdef CONFIG_PWM # if defined(CONFIG_STM32_TIM2_PWM) # define STM32F334_DISCO_PWMTIMER 2 # elif defined(CONFIG_STM32_TIM3_PWM) # define STM32F334_DISCO_PWMTIMER 3 # elif defined(CONFIG_STM32_TIM4_PWM) # define STM32F334_DISCO_PWMTIMER 4 # endif #endif /**************************************************************************** * Public Data ****************************************************************************/ /**************************************************************************** * Public Function Prototypes ****************************************************************************/ /**************************************************************************** * Name: stm32_spidev_initialize * * Description: * Called to configure SPI chip select GPIO pins for the board. * ****************************************************************************/ #ifdef CONFIG_SPI void weak_function stm32_spidev_initialize(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(FAR const char *devpath, int timer); #endif /**************************************************************************** * Name: stm32_dac_setup * * Description: * Configure DAC peripheral for the board. * ****************************************************************************/ #ifdef CONFIG_DAC int stm32_dac_setup(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_adc_setup * * Description: * Initialize ADC and register the ADC driver. * ****************************************************************************/ #ifdef CONFIG_ADC int stm32_adc_setup(void); #endif /**************************************************************************** * Name: stm32_can_setup * * Description: * Initialize CAN and register the CAN device * ****************************************************************************/ #ifdef CONFIG_CAN int stm32_can_setup(void); #endif /**************************************************************************** * Name: stm32_comp_setup * * Description: * Initialize COMP peripheral for the board. * ****************************************************************************/ #ifdef CONFIG_COMP int stm32_comp_setup(void); #endif /**************************************************************************** * Name: stm32_opamp_setup * * Description: * Initialize OPAMP peripheral for the board. * ****************************************************************************/ #ifdef CONFIG_OPAMP int stm32_opamp_setup(void); #endif /**************************************************************************** * Name: stm32_powerled_setup * * Description: * Initialize POWERLED peripheral for the board. * ****************************************************************************/ #ifdef CONFIG_DRIVERS_POWERLED int stm32_powerled_setup(void); #endif /**************************************************************************** * Name: stm32_smps_setup * * Description: * Initialize SMPS peripheral for the board. * ****************************************************************************/ #ifdef CONFIG_DRIVERS_SMPS int stm32_smps_setup(void); #endif #endif /* __BOARDS_ARM_STM32_STM32F334_DISCO_SRC_STM32F334_DISCO_H */