Skip to content

Commit

Permalink
Release v1.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
renesas-rza-fsp-development committed Sep 29, 2022
1 parent 94d2b9e commit 1f97aa9
Show file tree
Hide file tree
Showing 45 changed files with 3,225 additions and 683 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ FSP uses an open software ecosystem and provides flexibility in using your prefe

### Current Release

[FSP v1.0.0](https://github.com/renesas/rza-fsp/releases/tag/v1.0.0)
[FSP v1.1.0](https://github.com/renesas/rza-fsp/releases/tag/v1.1.0)

### Supported RZ/A MPU Kits

Expand All @@ -23,13 +23,13 @@ N/A
### Setup Instractions
<!--##### For existing users that are using RZ/A FSP with e² studio-->

- FSP versions of 1.0.0 and later require a minimum e² studio version of 2022-07.
- FSP versions of 1.1.0 and later require a minimum e² studio version of 2022-07.

If you have already installed a previous FSP release that included e² studio then you can download the packs separately. These are available for download under the Assets section for each release. There is a zipped version, FSP_Packs_\<version\>.zip, and an installer version, FSP_Packs_\<version\>.exe.

<!--
##### For new users that are using
1. Download the FSP with e² studio Installer from the Assets section of the [current release](https://github.com/renesas/rza-fsp/releases/tag/v1.0.0).
1. Download the FSP with e² studio Installer from the Assets section of the [current release](https://github.com/renesas/rza-fsp/releases/tag/v1.1.0).
2. Run the installer. This will install the e² studio tool, FSP packs, GCC toolchain and other tools required to use this software. No additional installations are required.
-->

Expand Down
4 changes: 4 additions & 0 deletions SUPPORTED_SOFTWARE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
## Software Modules Packaged with FSP

### FSP Top Level Modules
* Analog
* [ADC Driver on r_adc_c](https://renesas.github.io/fsp/group___a_d_c.html)
* Connectivity
* [I2C Master Driver on r_riic_master](https://renesas.github.io/fsp/group___r_i_i_c___m_a_s_t_e_r.html)
* [I2S Driver on r_ssi](https://renesas.github.io/fsp/group___s_s_i.html)
Expand All @@ -14,6 +16,8 @@
* [External IRQ Driver on r_intc_irq](https://renesas.github.io/fsp/group___i_n_t_c___i_r_q.html)
* [External IRQ Driver on r_intc_nmi](https://renesas.github.io/fsp/group___i_n_t_c___n_m_i.html)
* [External IRQ Driver on r_intc_tint](https://renesas.github.io/fsp/group___i_n_t_c___t_i_n_t.html)
* Monitoring
* [Watchdog (r_wdt)](https://renesas.github.io/fsp/group___w_d_t.html)
* Networking
* [FreeRTOS+TCP](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html)
* [Gigabit Ethernet (r_gether)](https://renesas.github.io/fsp/group___g_e_t_h_e_r.html)
Expand Down
388 changes: 388 additions & 0 deletions rza/fsp/inc/api/r_adc_api.h

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion rza/fsp/inc/api/r_usb_basic_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,8 @@ typedef enum e_usb_class
USB_CLASS_HMSC, ///< HMSC Class
USB_CLASS_PMSC, ///< PMSC Class
USB_CLASS_REQUEST, ///< USB Class Request
USB_CLASS_END ///< USB Class End Code
USB_CLASS_END, ///< USB Class End Code
USB_CLASS_HUB
} usb_class_t;

/** USB battery charging type */
Expand Down
246 changes: 246 additions & 0 deletions rza/fsp/inc/api/r_wdt_api.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
/***********************************************************************************************************************
* Copyright [2020-2022] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved.
*
* This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only
* be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized.
* Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for
* the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any
* intellectual property right is granted by Renesas. This software is protected under all applicable laws, including
* copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation.
* THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND
* TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY,
* INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE
* SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH.
* TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR
* DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER,
* INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY
* LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE
* POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS.
**********************************************************************************************************************/

/*******************************************************************************************************************//**
* @ingroup RENESAS_INTERFACES
* @defgroup WDT_API WDT Interface
* @brief Interface for watch dog timer functions.
*
* @section WDT_API_Summary Summary
* The WDT interface for the Watchdog Timer (WDT) peripheral provides watchdog functionality including resetting the
* device or generating an interrupt.
*
* The watchdog timer interface can be implemented by:
* - @ref WDT
*
* @{
**********************************************************************************************************************/

#ifndef R_WDT_API_H
#define R_WDT_API_H

/***********************************************************************************************************************
* Includes
**********************************************************************************************************************/

/* Register definitions, common services and error codes. */
#include "bsp_api.h"

/* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */
FSP_HEADER

/**********************************************************************************************************************
* Macro definitions
**********************************************************************************************************************/

/**********************************************************************************************************************
* Typedef definitions
**********************************************************************************************************************/

/** WDT time-out periods. */
typedef enum e_wdt_timeout
{
WDT_TIMEOUT_128 = 0, ///< 128 clock cycles
WDT_TIMEOUT_512, ///< 512 clock cycles
WDT_TIMEOUT_1024, ///< 1024 clock cycles
WDT_TIMEOUT_2048, ///< 2048 clock cycles
WDT_TIMEOUT_4096, ///< 4096 clock cycles
WDT_TIMEOUT_8192, ///< 8192 clock cycles
WDT_TIMEOUT_16384, ///< 16384 clock cycles
} wdt_timeout_t;

/** WDT clock division ratio. */
typedef enum e_wdt_clock_division
{
WDT_CLOCK_DIVISION_1 = 0, ///< CLK/1
WDT_CLOCK_DIVISION_4 = 1, ///< CLK/4
WDT_CLOCK_DIVISION_16 = 2, ///< CLK/16
WDT_CLOCK_DIVISION_32 = 3, ///< CLK/32
WDT_CLOCK_DIVISION_64 = 4, ///< CLK/64
WDT_CLOCK_DIVISION_128 = 15, ///< CLK/128
WDT_CLOCK_DIVISION_256 = 5, ///< CLK/256
WDT_CLOCK_DIVISION_512 = 6, ///< CLK/512
WDT_CLOCK_DIVISION_2048 = 7, ///< CLK/2048
WDT_CLOCK_DIVISION_8192 = 8, ///< CLK/8192
} wdt_clock_division_t;

/** WDT refresh permitted period window start position. */
typedef enum e_wdt_window_start
{
WDT_WINDOW_START_25 = 0, ///< Start position = 25%
WDT_WINDOW_START_50 = 1, ///< Start position = 50%
WDT_WINDOW_START_75 = 2, ///< Start position = 75%
WDT_WINDOW_START_100 = 3, ///< Start position = 100%
} wdt_window_start_t;

/** WDT refresh permitted period window end position. */
typedef enum e_wdt_window_end
{
WDT_WINDOW_END_75 = 0, ///< End position = 75%
WDT_WINDOW_END_50 = 1, ///< End position = 50%
WDT_WINDOW_END_25 = 2, ///< End position = 25%
WDT_WINDOW_END_0 = 3, ///< End position = 0%
} wdt_window_end_t;

/** WDT Counter underflow and refresh error control. */
typedef enum e_wdt_reset_control
{
WDT_RESET_CONTROL_NMI = 0, ///< NMI request when counter underflows.
WDT_RESET_CONTROL_RESET = 1, ///< Reset request when counter underflows.
} wdt_reset_control_t;

/** WDT Counter operation in sleep mode. */
typedef enum e_wdt_stop_control
{
WDT_STOP_CONTROL_DISABLE = 0, ///< Count will not stop when device enters sleep mode.
WDT_STOP_CONTROL_ENABLE = 1, ///< Count will automatically stop when device enters sleep mode.
} wdt_stop_control_t;

/** WDT status */
typedef enum e_wdt_status
{
WDT_STATUS_NO_ERROR = 0, ///< No status flags set.
WDT_STATUS_UNDERFLOW = 1, ///< Underflow flag set.
WDT_STATUS_REFRESH_ERROR = 2, ///< Refresh error flag set. Refresh outside of permitted window.
WDT_STATUS_UNDERFLOW_AND_REFRESH_ERROR = 3, ///< Underflow and refresh error flags set.
WDT_STATUS_OVERFLOW = 4, ///< Overflow flag set.
} wdt_status_t;

/** Callback function parameter data */
typedef struct st_wdt_callback_args
{
void const * p_context; ///< Placeholder for user data. Set in @ref wdt_api_t::open function in @ref wdt_cfg_t.
} wdt_callback_args_t;

/** WDT timeout data. Used to return frequency of WDT clock and timeout period */
typedef struct st_wdt_timeout_values
{
uint32_t clock_frequency_hz; ///< Frequency of watchdog clock after divider.
uint32_t timeout_clocks; ///< Timeout period in units of watchdog clock ticks.
} wdt_timeout_values_t;

/** WDT control block. Allocate an instance specific control block to pass into the WDT API calls.
* @par Implemented as
* - wdt_instance_ctrl_t
*/
typedef void wdt_ctrl_t;

/** WDT configuration parameters. */
typedef struct st_wdt_cfg
{
wdt_timeout_t timeout; ///< Timeout period.
wdt_clock_division_t clock_division; ///< Clock divider.
wdt_window_start_t window_start; ///< Refresh permitted window start position.
wdt_window_end_t window_end; ///< Refresh permitted window end position.
wdt_reset_control_t reset_control; ///< Select NMI or reset generated on underflow.
wdt_stop_control_t stop_control; ///< Select whether counter operates in sleep mode.
void (* p_callback)(wdt_callback_args_t * p_args); ///< Callback provided when a WDT NMI ISR occurs.

/** Placeholder for user data. Passed to the user callback in wdt_callback_args_t. */
void const * p_context;
void const * p_extend; ///< Placeholder for user extension.
} wdt_cfg_t;

/** WDT functions implemented at the HAL layer will follow this API. */
typedef struct st_wdt_api
{
/** Initialize the WDT in register start mode. In auto-start mode with NMI output it registers the NMI callback.
* @par Implemented as
* - @ref R_WDT_Open()
*
* @param[in] p_ctrl Pointer to control structure.
* @param[in] p_cfg Pointer to pin configuration structure.
*/
fsp_err_t (* open)(wdt_ctrl_t * const p_ctrl, wdt_cfg_t const * const p_cfg);

/** Refresh the watchdog timer.
* @par Implemented as
* - @ref R_WDT_Refresh()
*
* @param[in] p_ctrl Pointer to control structure.
*/
fsp_err_t (* refresh)(wdt_ctrl_t * const p_ctrl);

/** Read the status of the WDT.
* @par Implemented as
* - @ref R_WDT_StatusGet()
*
* @param[in] p_ctrl Pointer to control structure.
* @param[out] p_status Pointer to variable to return status information through.
*/
fsp_err_t (* statusGet)(wdt_ctrl_t * const p_ctrl, wdt_status_t * const p_status);

/** Clear the status flags of the WDT.
* @par Implemented as
* - @ref R_WDT_StatusClear()
*
* @param[in] p_ctrl Pointer to control structure.
* @param[in] status Status condition(s) to clear.
*/
fsp_err_t (* statusClear)(wdt_ctrl_t * const p_ctrl, const wdt_status_t status);

/** Read the current WDT counter value.
* @par Implemented as
* - @ref R_WDT_CounterGet()
*
* @param[in] p_ctrl Pointer to control structure.
* @param[out] p_count Pointer to variable to return current WDT counter value.
*/
fsp_err_t (* counterGet)(wdt_ctrl_t * const p_ctrl, uint32_t * const p_count);

/** Read the watchdog timeout values.
* @par Implemented as
* - @ref R_WDT_TimeoutGet()
*
* @param[in] p_ctrl Pointer to control structure.
* @param[out] p_timeout Pointer to structure to return timeout values.
*/
fsp_err_t (* timeoutGet)(wdt_ctrl_t * const p_ctrl, wdt_timeout_values_t * const p_timeout);

/** Specify callback function and optional context pointer and working memory pointer.
* @par Implemented as
* - @ref R_WDT_CallbackSet()
*
* @param[in] p_ctrl Pointer to the WDT control block.
* @param[in] p_callback Callback function
* @param[in] p_context Pointer to send to callback function
* @param[in] p_working_memory Pointer to volatile memory where callback structure can be allocated.
* Callback arguments allocated here are only valid during the callback.
*/
fsp_err_t (* callbackSet)(wdt_ctrl_t * const p_api_ctrl, void (* p_callback)(wdt_callback_args_t *),
void const * const p_context, wdt_callback_args_t * const p_callback_memory);
} wdt_api_t;

/** This structure encompasses everything that is needed to use an instance of this interface. */
typedef struct st_wdt_instance
{
wdt_ctrl_t * p_ctrl; ///< Pointer to the control structure for this instance
wdt_cfg_t const * p_cfg; ///< Pointer to the configuration structure for this instance
wdt_api_t const * p_api; ///< Pointer to the API structure for this instance
} wdt_instance_t;

/* Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */
FSP_FOOTER

#endif

/*******************************************************************************************************************//**
* @} (end addtogroup WDT_API)
**********************************************************************************************************************/
10 changes: 7 additions & 3 deletions rza/fsp/inc/fsp_features.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,19 +52,23 @@
typedef enum e_fsp_ip
{
FSP_IP_GTM = 0, ///< General Timer
FSP_IP_GPT = 1, ///< General PWM Timer
FSP_IP_POEG = 2, ///< Port Output Enable for GPT
FSP_IP_PORT = 3, ///< I/O Ports
FSP_IP_IA55 = 4, ///< IA55 (Interrupt controller)
FSP_IP_SCIF = 5, ///< Serial Communications Interface with FIFO
FSP_IP_RIIC = 6, ///< I2C Bus Interface
FSP_IP_RSPI = 7, ///< Renesas Serial Peripheral Interface
FSP_IP_MHU = 8, ///< Message Handling Unit
FSP_IP_DMAC = 9, ///< Direct Memory Access Controller
FSP_IP_SSI = 10, ///< Serial Sound Interface
FSP_IP_CANFD = 11, ///< CANFD Interface (RS-CANFD)
FSP_IP_ETHER = 12, ///< Ethernet MAC Controller
FSP_IP_EDMAC = 12, ///< Ethernet DMA Controller
FSP_IP_CRU = 13, ///< Camera Data Receiving Unit
FSP_IP_LCDC = 14, ///< LCD Controller
FSP_IP_USB = 15, ///< USB 2.0
FSP_IP_ADC = 16, ///< A/D Converter
FSP_IP_WDT = 17, ///< Watchdog Timer
FSP_IP_SDHI = 18, ///< SD/MMC Host Interface
FSP_IP_ISU = 19, ///< Image Scaling Unit
} fsp_ip_t;

typedef void (* fsp_vector_t)(IRQn_Type const irq);
Expand Down
6 changes: 3 additions & 3 deletions rza/fsp/inc/fsp_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
#define FSP_VERSION_MAJOR (1U)

/** FSP pack minor version. */
#define FSP_VERSION_MINOR (0U)
#define FSP_VERSION_MINOR (1U)

/** FSP pack patch version. */
#define FSP_VERSION_PATCH (0U)
Expand All @@ -50,10 +50,10 @@
#define FSP_VERSION_BUILD (0U)

/** Public FSP version name. */
#define FSP_VERSION_STRING ("1.0.0")
#define FSP_VERSION_STRING ("1.1.0")

/** Unique FSP version ID. */
#define FSP_VERSION_BUILD_STRING ("Built with RZ/A3UL Flexible Software Package version 1.0.0")
#define FSP_VERSION_BUILD_STRING ("Built with RZ/A3UL Flexible Software Package version 1.1.0")

/**********************************************************************************************************************
* Typedef definitions
Expand Down
Loading

0 comments on commit 1f97aa9

Please sign in to comment.