]>
git.gir.st - tmk_keyboard.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_RENESAS/TARGET_RZ_A1H/rza_io_regrw.c
1 /*******************************************************************************
3 * This software is supplied by Renesas Electronics Corporation and is only
4 * intended for use with Renesas products. No other uses are authorized. This
5 * software is owned by Renesas Electronics Corporation and is protected under
6 * all applicable laws, including copyright laws.
7 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
8 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
9 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
10 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
11 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
12 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
13 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
14 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
15 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
16 * Renesas reserves the right, without notice, to make changes to this software
17 * and to discontinue the availability of this software. By using this software,
18 * you agree to the additional terms and conditions found by accessing the
20 * http://www.renesas.com/disclaimer
21 * Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
22 *******************************************************************************/
23 /*******************************************************************************
24 * File Name : rza_io_regrw.c
26 * $Date:: 2014-08-06 17:09:53 +0900#$
27 * Description : Low level register read/write
28 *******************************************************************************/
30 /******************************************************************************
31 Includes <System Includes> , "Project Includes"
32 ******************************************************************************/
33 #include "r_typedefs.h"
36 #pragma arm section code = "CODE_IO_REGRW"
37 #pragma arm section rodata = "CONST_IO_REGRW"
38 #pragma arm section rwdata = "DATA_IO_REGRW"
39 #pragma arm section zidata = "BSS_IO_REGRW"
42 /******************************************************************************
44 ******************************************************************************/
47 /******************************************************************************
49 ******************************************************************************/
52 /******************************************************************************
53 Imported global variables and functions (from other files)
54 ******************************************************************************/
57 /******************************************************************************
58 Exported global variables and functions (to be accessed by other files)
59 ******************************************************************************/
62 /******************************************************************************
63 Private global variables and functions
64 ******************************************************************************/
67 /******************************************************************************
68 * Function Name: RZA_IO_RegWrite_8
69 * Description : IO register 8-bit write
70 * Arguments : volatile uint8_t * ioreg : IO register for writing
71 * : : Use register definition name of the
73 * : uint8_t write_value : Write value for the IO register
74 * : uint8_t shift : The number of left shifts to the
76 * : uint8_t mask : Mask value for the IO register
77 * : : (Target bit : "1")
79 ******************************************************************************/
80 void RZA_IO_RegWrite_8(volatile uint8_t * ioreg
, uint8_t write_value
, uint8_t shift
, uint8_t mask
)
84 reg_value
= *ioreg
; /* Read from register */
85 reg_value
= (reg_value
& (~mask
)) | (write_value
<< shift
); /* Modify value */
86 *ioreg
= reg_value
; /* Write to register */
89 /******************************************************************************
90 * Function Name: RZA_IO_RegWrite_16
91 * Description : IO register 16-bit write
92 * Arguments : volatile uint16_t * ioreg : IO register for writing
93 * : : Use register definition name of the
95 * : uint16_t write_value : Write value for the IO register
96 * : uint16_t shift : The number of left shifts to the
98 * : uint16_t mask : Mask value for the IO register
99 * : : (Target bit : "1")
100 * Return Value : None
101 ******************************************************************************/
102 void RZA_IO_RegWrite_16(volatile uint16_t * ioreg
, uint16_t write_value
, uint16_t shift
, uint16_t mask
)
106 reg_value
= *ioreg
; /* Read from register */
107 reg_value
= (reg_value
& (~mask
)) | (write_value
<< shift
); /* Modify value */
108 *ioreg
= reg_value
; /* Write to register */
111 /******************************************************************************
112 * Function Name: RZA_IO_RegWrite_32
113 * Description : IO register 32-bit write
114 * Arguments : volatile uint32_t * ioreg : IO register for writing
115 * : : Use register definition name of the
117 * : uint32_t write_value : Write value for the IO register
118 * : uint32_t shift : The number of left shifts to the
120 * : uint32_t mask : Mask value for the IO register
121 * : : (Target bit : "1")
122 * Return Value : None
123 ******************************************************************************/
124 void RZA_IO_RegWrite_32(volatile uint32_t * ioreg
, uint32_t write_value
, uint32_t shift
, uint32_t mask
)
128 reg_value
= *ioreg
; /* Read from register */
129 reg_value
= (reg_value
& (~mask
)) | (write_value
<< shift
); /* Modify value */
130 *ioreg
= reg_value
; /* Write to register */
133 /******************************************************************************
134 * Function Name: RZA_IO_RegRead_8
135 * Description : IO register 8-bit read
136 * Arguments : volatile uint8_t * ioreg : IO register for reading
137 * : : Use register definition name of the
139 * : uint8_t shift : The number of right shifts to the
141 * : uint8_t mask : Mask bit for the IO register
142 * : : (Target bit: "1")
143 * Return Value : uint8_t : Value of the obtained target bit
144 ******************************************************************************/
145 uint8_t RZA_IO_RegRead_8(volatile uint8_t * ioreg
, uint8_t shift
, uint8_t mask
)
149 reg_value
= *ioreg
; /* Read from register */
150 reg_value
= (reg_value
& mask
) >> shift
; /* Clear other bit and Bit shift */
155 /******************************************************************************
156 * Function Name: RZA_IO_RegRead_16
157 * Description : IO register 16-bit read
158 * Arguments : volatile uint16_t * ioreg : IO register for reading
159 * : : Use register definition name of the
161 * : uint16_t shift : The number of right shifts to the
163 * : uint16_t mask : Mask bit for the IO register
164 * : : (Target bit: "1")
165 * Return Value : uint16_t : Value of the obtained target bit
166 ******************************************************************************/
167 uint16_t RZA_IO_RegRead_16(volatile uint16_t * ioreg
, uint16_t shift
, uint16_t mask
)
171 reg_value
= *ioreg
; /* Read from register */
172 reg_value
= (reg_value
& mask
) >> shift
; /* Clear other bit and Bit shift */
177 /******************************************************************************
178 * Function Name: RZA_IO_RegRead_32
179 * Description : IO register 32-bit read
180 * Arguments : volatile uint32_t * ioreg : IO register for reading
181 * : : Use register definition name of the
183 * : uint32_t shift : The number of right shifts to the
185 * : uint32_t mask : Mask bit for the IO register
186 * : : (Target bit: "1")
187 * Return Value : uint32_t : Value of the obtained target bit
188 ******************************************************************************/
189 uint32_t RZA_IO_RegRead_32(volatile uint32_t * ioreg
, uint32_t shift
, uint32_t mask
)
193 reg_value
= *ioreg
; /* Read from register */
194 reg_value
= (reg_value
& mask
) >> shift
; /* Clear other bit and Bit shift */