274 lines
12 KiB
C
274 lines
12 KiB
C
|
#ifndef _REG_CSC_H_
|
||
|
#define _REG_CSC_H_
|
||
|
|
||
|
#include "reg_base.h"
|
||
|
|
||
|
//================================
|
||
|
//BLOCK CSC define
|
||
|
|
||
|
|
||
|
#define CSC_BASE ((uint32_t)0x40002000)
|
||
|
#define CSC_OUT_CTRL0_ADDR_OFFSET 0x000
|
||
|
#define CSC_OUT_CTRL1_ADDR_OFFSET 0x004
|
||
|
#define CSC_OUT_CTRL2_ADDR_OFFSET 0x008
|
||
|
#define CSC_OUT_CTRL3_ADDR_OFFSET 0x00c
|
||
|
#define CSC_OUT_CTRL4_ADDR_OFFSET 0x010
|
||
|
#define CSC_OUT_CTRL5_ADDR_OFFSET 0x014
|
||
|
#define CSC_OUT_CTRL6_ADDR_OFFSET 0x018
|
||
|
#define CSC_OUT_CTRL7_ADDR_OFFSET 0x01c
|
||
|
#define CSC_OUT_CTRL8_ADDR_OFFSET 0x020
|
||
|
#define CSC_OUT_CTRL9_ADDR_OFFSET 0x024
|
||
|
#define CSC_OUT_CTRL10_ADDR_OFFSET 0x028
|
||
|
#define CSC_OUT_CTRL11_ADDR_OFFSET 0x02c
|
||
|
#define CSC_OUT_CTRL12_ADDR_OFFSET 0x030
|
||
|
#define CSC_OUT_CTRL13_ADDR_OFFSET 0x034
|
||
|
#define CSC_OUT_CTRL14_ADDR_OFFSET 0x038
|
||
|
#define CSC_OUT_CTRL15_ADDR_OFFSET 0x03c
|
||
|
#define CSC_OUT_CTRL16_ADDR_OFFSET 0x040
|
||
|
#define CSC_OUT_CTRL17_ADDR_OFFSET 0x044
|
||
|
#define CSC_OUT_CTRL18_ADDR_OFFSET 0x048
|
||
|
#define CSC_OUT_CTRL19_ADDR_OFFSET 0x04c
|
||
|
#define CSC_IN_CTRL0_ADDR_OFFSET 0x080
|
||
|
#define CSC_IN_CTRL1_ADDR_OFFSET 0x084
|
||
|
#define CSC_IN_CTRL2_ADDR_OFFSET 0x088
|
||
|
#define CSC_IN_CTRL3_ADDR_OFFSET 0x08c
|
||
|
#define CSC_IN_CTRL4_ADDR_OFFSET 0x090
|
||
|
#define CSC_IN_CTRL5_ADDR_OFFSET 0x094
|
||
|
#define CSC_IN_CTRL6_ADDR_OFFSET 0x098
|
||
|
#define CSC_IN_CTRL7_ADDR_OFFSET 0x09c
|
||
|
#define CSC_IN_CTRL8_ADDR_OFFSET 0x0a0
|
||
|
#define CSC_IN_CTRL9_ADDR_OFFSET 0x0a4
|
||
|
#define CSC_IN_CTRL10_ADDR_OFFSET 0x0a8
|
||
|
#define CSC_IN_CTRL11_ADDR_OFFSET 0x0ac
|
||
|
#define CSC_IN_CTRL12_ADDR_OFFSET 0x0b0
|
||
|
#define CSC_IN_CTRL13_ADDR_OFFSET 0x0b4
|
||
|
#define CSC_PIOA00_CTRL_ADDR_OFFSET 0x100
|
||
|
#define CSC_PIOA01_CTRL_ADDR_OFFSET 0x104
|
||
|
#define CSC_PIOA02_CTRL_ADDR_OFFSET 0x108
|
||
|
#define CSC_PIOA03_CTRL_ADDR_OFFSET 0x10c
|
||
|
#define CSC_PIOA04_CTRL_ADDR_OFFSET 0x110
|
||
|
#define CSC_PIOA05_CTRL_ADDR_OFFSET 0x114
|
||
|
#define CSC_PIOA06_CTRL_ADDR_OFFSET 0x118
|
||
|
#define CSC_PIOA07_CTRL_ADDR_OFFSET 0x11c
|
||
|
#define CSC_PIOA08_CTRL_ADDR_OFFSET 0x120
|
||
|
#define CSC_PIOA09_CTRL_ADDR_OFFSET 0x124
|
||
|
#define CSC_PIOA10_CTRL_ADDR_OFFSET 0x128
|
||
|
#define CSC_PIOA11_CTRL_ADDR_OFFSET 0x12c
|
||
|
#define CSC_PIOA12_CTRL_ADDR_OFFSET 0x130
|
||
|
#define CSC_PIOA13_CTRL_ADDR_OFFSET 0x134
|
||
|
#define CSC_PIOA14_CTRL_ADDR_OFFSET 0x138
|
||
|
#define CSC_PIOA15_CTRL_ADDR_OFFSET 0x13c
|
||
|
#define CSC_PIOA16_CTRL_ADDR_OFFSET 0x140
|
||
|
#define CSC_PIOA17_CTRL_ADDR_OFFSET 0x144
|
||
|
#define CSC_PIOA18_CTRL_ADDR_OFFSET 0x148
|
||
|
#define CSC_PIOA19_CTRL_ADDR_OFFSET 0x14c
|
||
|
#define CSC_FSH_IO_CTRL_RUN_ADDR_OFFSET 0x180
|
||
|
#define CSC_FSH_IO_CTRL_DP_ADDR_OFFSET 0x184
|
||
|
|
||
|
|
||
|
typedef union
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t FSEL: 3; // bit[2:0] --- function select
|
||
|
uint32_t RSV_NOUSE1: 2; // bit[4:3] --- Ignore me
|
||
|
uint32_t DS: 1; // bit5 --- drive strength mode
|
||
|
uint32_t PUPDCTRL: 2; // bit[7:6] --- pull up/down
|
||
|
uint32_t IE: 1; // bit8 --- input enable
|
||
|
uint32_t CE: 1; // bit9 --- 1ma current spurce enable
|
||
|
uint32_t AE: 1; // bit10 --- analog enable
|
||
|
uint32_t ODE: 1; // bit11 --- open drain enable
|
||
|
uint32_t RSV_END: 20; // bit[31:12]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} CSC_IO_CTRL_TypeDef;
|
||
|
|
||
|
//================================
|
||
|
#define CSC_IO_FSEL_LSB 0
|
||
|
#define CSC_IO_FSEL_WIDTH 3
|
||
|
#define CSC_IO_DS_POS 5
|
||
|
#define CSC_IO_PUPDCTRL_LSB 6
|
||
|
#define CSC_IO_PUPDCTRL_WIDTH 2
|
||
|
#define CSC_IO_IE_POS 8
|
||
|
#define CSC_IO_CE_POS 9
|
||
|
#define CSC_IO_AE_POS 10
|
||
|
#define CSC_IO_ODE_POS 11
|
||
|
//================================
|
||
|
//
|
||
|
typedef union //0x000
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t CSC_FSEL: 5; // bit[4:0] --- pad output function select
|
||
|
// padio0 sel pad port, for example:pioa00,pioa01...
|
||
|
uint32_t RSV_NOUSE1: 2; // bit[6:5] --- Ignore me
|
||
|
uint32_t CSC_FEN: 1; // bit7 --- csc peripheral function enable
|
||
|
uint32_t RSV_END: 24; // bit[31:8]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} CSC_OUTPUT_CTRL_TypeDef;
|
||
|
|
||
|
//================================
|
||
|
#define CSC_FOUT_SEL_LSB 0
|
||
|
#define CSC_FOUT_SEL_WIDTH 5
|
||
|
#define CSC_FOUT_EN_POS 7
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x000
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t CSC_FSEL: 5; // bit[4:0] --- pad input function select
|
||
|
// padio0 sel pad port, for example:pioa00,pioa01...
|
||
|
uint32_t RSV_NOUSE1: 2; // bit[6:5] --- Ignore me
|
||
|
uint32_t CSC_FEN: 1; // bit7 --- csc peripheral function enable
|
||
|
uint32_t RSV_END: 24; // bit[31:8]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} CSC_INPUT_CTRL_TypeDef;
|
||
|
|
||
|
//================================
|
||
|
#define CSC_FIN_SEL_LSB 0
|
||
|
#define CSC_FIN_SEL_WIDTH 5
|
||
|
#define CSC_FIN_EN_POS 7
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x180
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t QSCK_OE_EN_RUN: 1; // bit0
|
||
|
uint32_t QSCK_PUPDCTRL_RUN: 2; // bit[2:1]
|
||
|
uint32_t QSCK_IE_RUN: 1; // bit3
|
||
|
uint32_t QCSN_OE_EN_RUN: 1; // bit4
|
||
|
uint32_t QCSN_PUPDCTRL_RUN: 2; // bit[6:5]
|
||
|
uint32_t QCSN_IE_RUN: 1; // bit7
|
||
|
uint32_t QIO0_OE_EN_RUN: 1; // bit8
|
||
|
uint32_t QIO0_PUPDCTRL_RUN: 2; // bit[10:9]
|
||
|
uint32_t QIO0_IE_RUN: 1; // bit11
|
||
|
uint32_t QIO1_OE_EN_RUN: 1; // bit12
|
||
|
uint32_t QIO1_PUPDCTRL_RUN: 2; // bit[14:13]
|
||
|
uint32_t QIO1_IE_RUN: 1; // bit15
|
||
|
uint32_t QIO2_OE_EN_RUN: 1; // bit16
|
||
|
uint32_t QIO2_PUPDCTRL_RUN: 2; // bit[18:17]
|
||
|
uint32_t QIO2_IE_RUN: 1; // bit19
|
||
|
uint32_t QIO3_OE_EN_RUN: 1; // bit20
|
||
|
uint32_t QIO3_PUPDCTRL_RUN: 2; // bit[22:21]
|
||
|
uint32_t QIO3_IE_RUN: 1; // bit23
|
||
|
uint32_t QSCK_DS_RUN: 1; // bit24
|
||
|
uint32_t QCSN_DS_RUN: 1; // bit25
|
||
|
uint32_t QIO0_DS_RUN: 1; // bit26
|
||
|
uint32_t QIO1_DS_RUN: 1; // bit27
|
||
|
uint32_t QIO2_DS_RUN: 1; // bit28
|
||
|
uint32_t QIO3_DS_RUN: 1; // bit29
|
||
|
uint32_t RSV_END: 2; // bit[31:30]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} CSC_FSH_PAD_RUN_CTRL_TypeDef; //0x180
|
||
|
|
||
|
//================================
|
||
|
#define CSC_QSCK_OE_EN_RUN_POS 0
|
||
|
#define CSC_QSCK_PUPDCTRL_RUN_LSB 1
|
||
|
#define CSC_QSCK_PUPDCTRL_RUN_WIDTH 2
|
||
|
#define CSC_QSCK_IE_RUN_POS 3
|
||
|
#define CSC_QCSN_OE_EN_RUN_POS 4
|
||
|
#define CSC_QCSN_PUPDCTRL_RUN_LSB 5
|
||
|
#define CSC_QCSN_PUPDCTRL_RUN_WIDTH 2
|
||
|
#define CSC_QCSN_IE_RUN_POS 7
|
||
|
#define CSC_QIO0_OE_EN_RUN_POS 8
|
||
|
#define CSC_QIO0_PUPDCTRL_RUN_LSB 9
|
||
|
#define CSC_QIO0_PUPDCTRL_RUN_WIDTH 2
|
||
|
#define CSC_QIO0_IE_RUN_POS 11
|
||
|
#define CSC_QIO1_OE_EN_RUN_POS 12
|
||
|
#define CSC_QIO1_PUPDCTRL_RUN_LSB 13
|
||
|
#define CSC_QIO1_PUPDCTRL_RUN_WIDTH 2
|
||
|
#define CSC_QIO1_IE_RUN_POS 15
|
||
|
#define CSC_QIO2_OE_EN_RUN_POS 16
|
||
|
#define CSC_QIO2_PUPDCTRL_RUN_LSB 17
|
||
|
#define CSC_QIO2_PUPDCTRL_RUN_WIDTH 2
|
||
|
#define CSC_QIO2_IE_RUN_POS 19
|
||
|
#define CSC_QIO3_OE_EN_RUN_POS 20
|
||
|
#define CSC_QIO3_PUPDCTRL_RUN_LSB 21
|
||
|
#define CSC_QIO3_PUPDCTRL_RUN_WIDTH 2
|
||
|
#define CSC_QIO3_IE_RUN_POS 23
|
||
|
#define CSC_QSCK_DS_RUN_POS 24
|
||
|
#define CSC_QCSN_DS_RUN_POS 25
|
||
|
#define CSC_QIO0_DS_RUN_POS 26
|
||
|
#define CSC_QIO1_DS_RUN_POS 27
|
||
|
#define CSC_QIO2_DS_RUN_POS 28
|
||
|
#define CSC_QIO3_DS_RUN_POS 29
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x184
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t QSCK_OE_EN_DP: 1; // bit0
|
||
|
uint32_t QSCK_PUPDCTRL_DP: 2; // bit[2:1]
|
||
|
uint32_t QSCK_IE_DP: 1; // bit3
|
||
|
uint32_t QCSN_OE_EN_DP: 1; // bit4
|
||
|
uint32_t QCSN_PUPDCTRL_DP: 2; // bit[6:5]
|
||
|
uint32_t QCSN_IE_DP: 1; // bit7
|
||
|
uint32_t QIO0_OE_EN_DP: 1; // bit8
|
||
|
uint32_t QIO0_PUPDCTRL_DP: 2; // bit[10:9]
|
||
|
uint32_t QIO0_IE_DP: 1; // bit11
|
||
|
uint32_t QIO1_OE_EN_DP: 1; // bit12
|
||
|
uint32_t QIO1_PUPDCTRL_DP: 2; // bit[14:13]
|
||
|
uint32_t QIO1_IE_DP: 1; // bit15
|
||
|
uint32_t QIO2_OE_EN_DP: 1; // bit16
|
||
|
uint32_t QIO2_PUPDCTRL_DP: 2; // bit[18:17]
|
||
|
uint32_t QIO2_IE_DP: 1; // bit19
|
||
|
uint32_t QIO3_OE_EN_DP: 1; // bit20
|
||
|
uint32_t QIO3_PUPDCTRL_DP: 2; // bit[22:21]
|
||
|
uint32_t QIO3_IE_DP: 1; // bit23
|
||
|
uint32_t RSV_END: 8; // bit[31:24]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} CSC_FSH_PAD_DP_CTRL_TypeDef; //0x184
|
||
|
|
||
|
//================================
|
||
|
#define CSC_QSCK_OE_EN_DP_POS 0
|
||
|
#define CSC_QSCK_PUPDCTRL_DP_LSB 1
|
||
|
#define CSC_QSCK_PUPDCTRL_DP_WIDTH 2
|
||
|
#define CSC_QSCK_IE_DP_POS 3
|
||
|
#define CSC_QCSN_OE_EN_DP_POS 4
|
||
|
#define CSC_QCSN_PUPDCTRL_DP_LSB 5
|
||
|
#define CSC_QCSN_PUPDCTRL_DP_WIDTH 2
|
||
|
#define CSC_QCSN_IE_DP_POS 7
|
||
|
#define CSC_QIO0_OE_EN_DP_POS 8
|
||
|
#define CSC_QIO0_PUPDCTRL_DP_LSB 9
|
||
|
#define CSC_QIO0_PUPDCTRL_DP_WIDTH 2
|
||
|
#define CSC_QIO0_IE_DP_POS 11
|
||
|
#define CSC_QIO1_OE_EN_DP_POS 12
|
||
|
#define CSC_QIO1_PUPDCTRL_DP_LSB 13
|
||
|
#define CSC_QIO1_PUPDCTRL_DP_WIDTH 2
|
||
|
#define CSC_QIO1_IE_DP_POS 15
|
||
|
#define CSC_QIO2_OE_EN_DP_POS 16
|
||
|
#define CSC_QIO2_PUPDCTRL_DP_LSB 17
|
||
|
#define CSC_QIO2_PUPDCTRL_DP_WIDTH 2
|
||
|
#define CSC_QIO2_IE_DP_POS 19
|
||
|
#define CSC_QIO3_OE_EN_DP_POS 20
|
||
|
#define CSC_QIO3_PUPDCTRL_DP_LSB 21
|
||
|
#define CSC_QIO3_PUPDCTRL_DP_WIDTH 2
|
||
|
#define CSC_QIO3_IE_DP_POS 23
|
||
|
//================================
|
||
|
|
||
|
//================================
|
||
|
//BLOCK CSC top struct define
|
||
|
typedef struct
|
||
|
{
|
||
|
__IO CSC_OUTPUT_CTRL_TypeDef CSC_OUTPUT[20] ; // 0x000 ~ 0x04C,
|
||
|
__I uint32_t RSV0[12] ; // 0x050 ~ 0x07C,
|
||
|
__IO CSC_INPUT_CTRL_TypeDef CSC_INPUT[14] ; // 0x080 ~ 0x0B4,
|
||
|
__I uint32_t RSV1[18] ; // 0x0B8 ~ 0x0FC,
|
||
|
__IO CSC_IO_CTRL_TypeDef CSC_PIO[20] ; // 0x100 ~ 0x14C,
|
||
|
__I uint32_t RSV2[12] ; // 0x150 ~ 0x17C
|
||
|
__IO CSC_FSH_PAD_RUN_CTRL_TypeDef FSH_PAD_RUN_CTRL ; // 0x180,
|
||
|
__IO CSC_FSH_PAD_DP_CTRL_TypeDef FSH_PAD_DP_CTRL ; // 0x184,
|
||
|
} CSC_TypeDef;
|
||
|
|
||
|
|
||
|
#define CSC (( CSC_TypeDef *) CSC_BASE)
|
||
|
|
||
|
#endif
|