1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  *
7  * Description:
8  *     Definitions for the Juno PVT Sensors
9  */
10 
11 #ifndef JUNO_PVT_H
12 #define JUNO_PVT_H
13 
14 #include "juno_mmap.h"
15 
16 #include <fwk_macros.h>
17 
18 #include <stdint.h>
19 
20 /*
21  * PVT-Group register definitions.
22  */
23 struct juno_pvt_reg {
24     FWK_R   uint32_t    GROUP_INFO;
25     FWK_RW  uint32_t    MEASUREMENT_ENABLE;
26             uint8_t     RESERVED1[0x10 - 0x08];
27     FWK_RW  uint32_t    SENSOR_ENABLE;
28             uint8_t     RESERVED2[0x60 - 0x14];
29     FWK_RW  uint32_t    SSI_RATE_DIV;
30             uint8_t     RESERVED3[0x94 - 0x64];
31     FWK_RW  uint32_t    SAMPLE_WINDOW;
32             uint8_t     RESERVED4[0xA0 - 0x98];
33     FWK_R   uint32_t    SENSOR_DATA_VALID;
34             uint8_t     RESERVED5[0xC0 - 0xA4];
35     FWK_RW  uint32_t    IRQ_CLEAR;
36     FWK_RW  uint32_t    IRQ_MASK_SET;
37     FWK_W   uint32_t    IRQ_MASK_CLEAR;
38             uint8_t     RESERVED6[0x100 - 0xCC];
39     FWK_R   uint32_t    SENSOR_DATA[32];
40 };
41 
42 #define PVT_REG_STDCELL     ((struct juno_pvt_reg *) PVT_STDCELL_BASE)
43 #define PVT_REG_SOC         ((struct juno_pvt_reg *) PVT_SOC_BASE)
44 #define PVT_REG_GPU         ((struct juno_pvt_reg *) PVT_GPU_BASE)
45 #define PVT_REG_BIG         ((struct juno_pvt_reg *) PVT_BIG_BASE)
46 #define PVT_REG_LITTLE      ((struct juno_pvt_reg *) PVT_LITTLE_BASE)
47 
48 #endif /* JUNO_PVT_H */
49