132 lines
3.7 KiB
C
132 lines
3.7 KiB
C
// Generated register defines for rvic
|
|
|
|
// Copyright information found in source file:
|
|
// Copyright lowRISC contributors.
|
|
|
|
// Licensing information found in source file:
|
|
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
#ifndef _RVIC_REG_DEFS_
|
|
#define _RVIC_REG_DEFS_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
// Register width
|
|
#define RVIC_PARAM_REG_WIDTH 32
|
|
|
|
#define RVIC_BASE (0xD0000000)
|
|
#define RVIC_REG(addr) (*((volatile uint32_t *)(RVIC_BASE + addr)))
|
|
|
|
#define RVIC_PRIO_REG_NUM (8)
|
|
|
|
typedef struct {
|
|
volatile uint32_t prio[RVIC_PRIO_REG_NUM];
|
|
} rvic_prio_t;
|
|
|
|
#define RVIC_PRIO ((rvic_prio_t *)(RVIC_BASE + RVIC_PRIORITY0_REG_OFFSET))
|
|
|
|
typedef enum {
|
|
RVIC_INT_ID_0 = 0,
|
|
RVIC_INT_ID_1,
|
|
RVIC_INT_ID_2,
|
|
RVIC_INT_ID_3,
|
|
RVIC_INT_ID_4,
|
|
RVIC_INT_ID_5,
|
|
RVIC_INT_ID_6,
|
|
RVIC_INT_ID_7,
|
|
RVIC_INT_ID_8,
|
|
RVIC_INT_ID_9,
|
|
RVIC_INT_ID_10,
|
|
RVIC_INT_ID_11,
|
|
RVIC_INT_ID_12,
|
|
RVIC_INT_ID_13,
|
|
RVIC_INT_ID_14,
|
|
RVIC_INT_ID_15,
|
|
RVIC_INT_ID_16,
|
|
RVIC_INT_ID_17,
|
|
RVIC_INT_ID_18,
|
|
RVIC_INT_ID_19,
|
|
RVIC_INT_ID_20,
|
|
RVIC_INT_ID_21,
|
|
RVIC_INT_ID_22,
|
|
RVIC_INT_ID_23,
|
|
RVIC_INT_ID_24,
|
|
RVIC_INT_ID_25,
|
|
RVIC_INT_ID_26,
|
|
RVIC_INT_ID_27,
|
|
RVIC_INT_ID_28,
|
|
RVIC_INT_ID_29,
|
|
RVIC_INT_ID_30,
|
|
RVIC_INT_ID_31,
|
|
} rvic_int_id_e;
|
|
|
|
#define RVIC_TIMER0_INT_ID RVIC_INT_ID_0
|
|
#define RVIC_UART0_INT_ID RVIC_INT_ID_1
|
|
#define RVIC_GPIO0_INT_ID RVIC_INT_ID_2
|
|
#define RVIC_GPIO1_INT_ID RVIC_INT_ID_3
|
|
#define RVIC_I2C0_INT_ID RVIC_INT_ID_4
|
|
#define RVIC_SPI0_INT_ID RVIC_INT_ID_5
|
|
#define RVIC_GPIO2_4_INT_ID RVIC_INT_ID_6
|
|
#define RVIC_GPIO5_7_INT_ID RVIC_INT_ID_7
|
|
#define RVIC_GPIO8_INT_ID RVIC_INT_ID_8
|
|
#define RVIC_GPIO9_INT_ID RVIC_INT_ID_9
|
|
#define RVIC_GPIO10_12_INT_ID RVIC_INT_ID_10
|
|
#define RVIC_GPIO13_15_INT_ID RVIC_INT_ID_11
|
|
#define RVIC_UART1_INT_ID RVIC_INT_ID_12
|
|
#define RVIC_UART2_INT_ID RVIC_INT_ID_13
|
|
#define RVIC_I2C1_INT_ID RVIC_INT_ID_14
|
|
#define RVIC_TIMER1_INT_ID RVIC_INT_ID_15
|
|
#define RVIC_TIMER2_INT_ID RVIC_INT_ID_16
|
|
|
|
void rvic_irq_enable(rvic_int_id_e id);
|
|
void rvic_irq_disable(rvic_int_id_e id);
|
|
void rvic_clear_irq_pending(rvic_int_id_e id);
|
|
void rvic_set_irq_prio_level(rvic_int_id_e id, uint8_t level);
|
|
|
|
// RVIC interrupt enable register
|
|
#define RVIC_ENABLE_REG_OFFSET 0x0
|
|
#define RVIC_ENABLE_REG_RESVAL 0x0
|
|
|
|
// RVIC interrupt pending register
|
|
#define RVIC_PENDING_REG_OFFSET 0x4
|
|
#define RVIC_PENDING_REG_RESVAL 0x0
|
|
|
|
// RVIC interrupt priority0 register
|
|
#define RVIC_PRIORITY0_REG_OFFSET 0x8
|
|
#define RVIC_PRIORITY0_REG_RESVAL 0x0
|
|
|
|
// RVIC interrupt priority1 register
|
|
#define RVIC_PRIORITY1_REG_OFFSET 0xc
|
|
#define RVIC_PRIORITY1_REG_RESVAL 0x0
|
|
|
|
// RVIC interrupt priority2 register
|
|
#define RVIC_PRIORITY2_REG_OFFSET 0x10
|
|
#define RVIC_PRIORITY2_REG_RESVAL 0x0
|
|
|
|
// RVIC interrupt priority3 register
|
|
#define RVIC_PRIORITY3_REG_OFFSET 0x14
|
|
#define RVIC_PRIORITY3_REG_RESVAL 0x0
|
|
|
|
// RVIC interrupt priority4 register
|
|
#define RVIC_PRIORITY4_REG_OFFSET 0x18
|
|
#define RVIC_PRIORITY4_REG_RESVAL 0x0
|
|
|
|
// RVIC interrupt priority5 register
|
|
#define RVIC_PRIORITY5_REG_OFFSET 0x1c
|
|
#define RVIC_PRIORITY5_REG_RESVAL 0x0
|
|
|
|
// RVIC interrupt priority6 register
|
|
#define RVIC_PRIORITY6_REG_OFFSET 0x20
|
|
#define RVIC_PRIORITY6_REG_RESVAL 0x0
|
|
|
|
// RVIC interrupt priority7 register
|
|
#define RVIC_PRIORITY7_REG_OFFSET 0x24
|
|
#define RVIC_PRIORITY7_REG_RESVAL 0x0
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif
|
|
#endif // _RVIC_REG_DEFS_
|
|
// End generated register defines for rvic
|