1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright (c) 2022, STMicroelectronics 4 */ 5 6 #ifndef __DRIVERS_STM32_SHARED_IO_H__ 7 #define __DRIVERS_STM32_SHARED_IO_H__ 8 9 #include <stdint.h> 10 #include <types_ext.h> 11 12 /* 13 * Shared registers support: common lock for accessing SoC registers 14 * shared between several drivers. 15 */ 16 void io_clrsetbits32_stm32shregs(vaddr_t va, uint32_t clr, uint32_t set); 17 void io_mask32_stm32shregs(vaddr_t va, uint32_t value, uint32_t mask); 18 19 static inline void io_setbits32_stm32shregs(vaddr_t va, uint32_t value) 20 { 21 io_mask32_stm32shregs(va, value, value); 22 } 23 24 static inline void io_clrbits32_stm32shregs(vaddr_t va, uint32_t value) 25 { 26 io_mask32_stm32shregs(va, 0, value); 27 } 28 29 #endif /* __DRIVERS_STM32_SHARED_IO_H__ */ 30