Lines Matching +full:reg +full:- +full:data
1 /*-
10 found at http://www.gnu.org/licenses/gpl-2.0.html
30 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
53 /* *INDENT-OFF* */
57 /* *INDENT-ON* */
66 #define AL_REG_FIELD_GET(reg, mask, shift) (((reg) & (mask)) >> (shift)) argument
69 #define AL_REG_FIELD_SET(reg, mask, shift, val) \ argument
70 (reg) = \
71 (((reg) & (~(mask))) | \
75 #define AL_REG_FIELD_SET_64(reg, mask, shift, val) \ argument
76 ((reg) = \
77 (((reg) & (~(mask))) | \
81 #define AL_REG_BIT_GET(reg, shift) \ argument
82 AL_REG_FIELD_GET(reg, AL_BIT(shift), shift)
88 #define AL_REG_BIT_VAL_SET(reg, shift, val) \ argument
89 AL_REG_FIELD_SET(reg, AL_BIT(shift), shift, val)
92 #define AL_REG_BIT_SET(reg, shift) \ argument
93 AL_REG_BIT_VAL_SET(reg, shift, 1)
96 #define AL_REG_BIT_CLEAR(reg, shift) \ argument
97 AL_REG_BIT_VAL_SET(reg, shift, 0)
101 (AL_BIT(n) - 1)
104 (AL_BIT(msb) + AL_BIT_MASK(msb) - AL_BIT_MASK(lsb))
107 #define AL_REG_MASK_CLEAR(reg, clear_mask) \ argument
108 ((reg) = (((reg) & (~(clear_mask)))))
111 #define AL_REG_MASK_SET(reg, clear_mask) \ argument
112 ((reg) = (((reg) | (clear_mask))))
116 #define AL_REG_CLEAR_AND_SET(reg, clear_mask, set_mask) \ argument
117 (reg) = (((reg) & (~(clear_mask))) | (set_mask))
120 ((size) * (((val) + (size) - 1) / (size)))
122 /** take bits selected by mask from one data, the rest from background */
123 #define AL_MASK_VAL(mask, data, background) \ argument
124 (((mask) & (data)) | ((~mask) & (background)))
129 * @param reg
133 * @param data
134 * data to write. bits not selected by mask ignored.
137 al_reg_write8_masked(uint8_t __iomem *reg, uint8_t mask, uint8_t data) in al_reg_write8_masked() argument
140 temp = al_reg_read8(reg); in al_reg_write8_masked()
141 al_reg_write8(reg, AL_MASK_VAL(mask, data, temp)); in al_reg_write8_masked()
148 * @param reg
152 * @param data
153 * data to write. bits not selected by mask ignored.
156 al_reg_write16_masked(uint16_t __iomem *reg, uint16_t mask, uint16_t data) in al_reg_write16_masked() argument
159 temp = al_reg_read16(reg); in al_reg_write16_masked()
160 al_reg_write16(reg, AL_MASK_VAL(mask, data, temp)); in al_reg_write16_masked()
167 * @param reg
171 * @param data
172 * data to write. bits not selected by mask ignored.
175 al_reg_write32_masked(uint32_t __iomem *reg, uint32_t mask, uint32_t data) in al_reg_write32_masked() argument
178 temp = al_reg_read32(reg); in al_reg_write32_masked()
179 al_reg_write32(reg, AL_MASK_VAL(mask, data, temp)); in al_reg_write32_masked()
182 /* *INDENT-OFF* */
186 /* *INDENT-ON* */