#ifndef _LED_HEADER_H #define _LED_HEADER_H #define SYS_RED_NUM 0 #define SYS_GRN_NUM 1 #define HD1_RED_NUM 2 #define HD1_GRN_NUM 3 #define HD2_RED_NUM 4 #define HD2_GRN_NUM 5 #define CPY_RED_NUM 6 #define CPY_GRN_NUM 7 #define HD1_GRN_BLINK_NUM 8 #define HD2_GRN_BLINK_NUM 9 #define MPP_REG0_ADDR 0xF1010000 #define MPP_REG1_ADDR 0xF1010004 #define MPP_REG2_ADDR 0xF1010050 #define DATA_OUT_ENB_ADDR 0xF1010104 #define BLINK_ENB_ADDR 0xF1010108 #define DATA_OUT_ADDR 0xF1010100 #define SYS_RED_MPP MPP_REG0_ADDR #define SYS_GRN_MPP MPP_REG0_ADDR #define HD1_RED_MPP MPP_REG0_ADDR #define HD1_GRN_MPP MPP_REG1_ADDR #define HD2_RED_MPP MPP_REG0_ADDR #define HD2_GRN_MPP MPP_REG1_ADDR #define CPY_RED_MPP MPP_REG0_ADDR #define CPY_GRN_MPP MPP_REG2_ADDR #define HD1_GRN_BLINK_MPP MPP_REG1_ADDR #define HD2_GRN_BLINK_MPP MPP_REG1_ADDR #define SYS_RED_MPP_FLD 0x00F00000 #define SYS_GRN_MPP_FLD 0x000F0000 #define HD1_RED_MPP_FLD 0x0000000F #define HD1_GRN_MPP_FLD 0x000F0000 #define HD2_RED_MPP_FLD 0x000000F0 #define HD2_GRN_MPP_FLD 0x00F00000 #define CPY_RED_MPP_FLD 0x0F000000 #define CPY_GRN_MPP_FLD 0x000000F0 #define HD1_GRN_BLINK_MPP_FLD 0x0F0F0000 #define HD2_GRN_BLINK_MPP_FLD 0xF0F00000 #define SYS_RED_MPP_VAL 0 #define SYS_GRN_MPP_VAL 0 #define HD1_RED_MPP_VAL 0x3 #define HD1_GRN_MPP_VAL 0 #define HD2_RED_MPP_VAL 0 #define HD2_GRN_MPP_VAL 0 #define CPY_RED_MPP_VAL 0 #define CPY_GRN_MPP_VAL 0x50 #define HD1_GRN_BLINK_MPP_VAL 0 #define HD2_GRN_BLINK_MPP_VAL 0 #define SYS_RED_MPP_PIN 1 << 5 #define SYS_GRN_MPP_PIN 1 << 4 #define HD1_RED_MPP_PIN 1 << 0 #define HD1_GRN_MPP_PIN 1 << 12 #define HD2_RED_MPP_PIN 1 << 1 #define HD2_GRN_MPP_PIN 1 << 13 #define CPY_RED_MPP_PIN 1 << 6 #define CPY_GRN_MPP_PIN 1 << 17 #define HD1_GRN_BLINK_MPP_PIN 0x00004000 #define HD2_GRN_BLINK_MPP_PIN 0x00008000 #define LED_NUM 10 #define IO_REG32_READ(_reg) (*((volatile unsigned int*) (_reg))) #define IO_REG32_WRITE(_reg, _val) ((*((volatile unsigned int*) (_reg))) = (_val)) #define IO_REG_BASE (0xE8000000) #define IO_REG_SIZE (0x18000000) // 1MB struct LED_State { unsigned int MPP_REG_ADDR; unsigned int MPP_REG_FLD; unsigned int MPP_VAL; unsigned int PIN; }; #define LED_OFF 0 #define LED_ON 1 #define LED_BLINK 2 #endif