1 /* 2 * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef RK3399_MCU_H 8 #define RK3399_MCU_H 9 10 #include <addressmap.h> 11 12 typedef unsigned int uint32_t; 13 14 #define mmio_read_32(c) ({unsigned int __v = \ 15 (*(volatile unsigned int *)(c)); __v; }) 16 #define mmio_write_32(c, v) ((*(volatile unsigned int *)(c)) = (v)) 17 18 #define mmio_clrbits_32(addr, clear) \ 19 mmio_write_32(addr, (mmio_read_32(addr) & ~(clear))) 20 #define mmio_setbits_32(addr, set) \ 21 mmio_write_32(addr, (mmio_read_32(addr)) | (set)) 22 #define mmio_clrsetbits_32(addr, clear, set) \ 23 mmio_write_32(addr, (mmio_read_32(addr) & ~(clear)) | (set)) 24 25 #define MIN(a, b) ((a) < (b) ? (a) : (b)) 26 #define MAX(a, b) ((a) > (b) ? (a) : (b)) 27 28 void stopwatch_init_usecs_expire(unsigned int usecs); 29 int stopwatch_expired(void); 30 void stopwatch_reset(void); 31 32 #endif /* RK3399_MCU_H */ 33