Caesar Wang | b400374 | 2016-10-12 08:10:12 +0800 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. |
| 3 | * |
dp-arm | fa3cf0b | 2017-05-03 09:38:09 +0100 | [diff] [blame] | 4 | * SPDX-License-Identifier: BSD-3-Clause |
Caesar Wang | b400374 | 2016-10-12 08:10:12 +0800 | [diff] [blame] | 5 | */ |
| 6 | |
Antonio Nino Diaz | 5eb8837 | 2018-11-08 10:20:19 +0000 | [diff] [blame] | 7 | #ifndef RK3399_MCU_H |
| 8 | #define RK3399_MCU_H |
Caesar Wang | b400374 | 2016-10-12 08:10:12 +0800 | [diff] [blame] | 9 | |
Xing Zheng | b4bcc1d | 2017-02-24 16:26:11 +0800 | [diff] [blame] | 10 | #include <addressmap.h> |
| 11 | |
Xing Zheng | 93280b7 | 2016-10-26 21:25:26 +0800 | [diff] [blame] | 12 | typedef unsigned int uint32_t; |
| 13 | |
Xing Zheng | aae6be4 | 2016-10-24 21:06:25 +0800 | [diff] [blame] | 14 | #define mmio_read_32(c) ({unsigned int __v = \ |
Caesar Wang | b400374 | 2016-10-12 08:10:12 +0800 | [diff] [blame] | 15 | (*(volatile unsigned int *)(c)); __v; }) |
Xing Zheng | aae6be4 | 2016-10-24 21:06:25 +0800 | [diff] [blame] | 16 | #define mmio_write_32(c, v) ((*(volatile unsigned int *)(c)) = (v)) |
Caesar Wang | b400374 | 2016-10-12 08:10:12 +0800 | [diff] [blame] | 17 | |
Xing Zheng | 93280b7 | 2016-10-26 21:25:26 +0800 | [diff] [blame] | 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 | |
Julius Werner | 84afaaf | 2017-01-30 18:26:07 -0800 | [diff] [blame] | 25 | #define MIN(a, b) ((a) < (b) ? (a) : (b)) |
| 26 | #define MAX(a, b) ((a) > (b) ? (a) : (b)) |
| 27 | |
Lin Huang | e7c2422 | 2016-11-30 16:57:08 +0800 | [diff] [blame] | 28 | void stopwatch_init_usecs_expire(unsigned int usecs); |
| 29 | int stopwatch_expired(void); |
| 30 | void stopwatch_reset(void); |
Caesar Wang | b400374 | 2016-10-12 08:10:12 +0800 | [diff] [blame] | 31 | |
Antonio Nino Diaz | 5eb8837 | 2018-11-08 10:20:19 +0000 | [diff] [blame] | 32 | #endif /* RK3399_MCU_H */ |