|
10 | 10 | #include <stdint.h> |
11 | 11 | #include <stddef.h> |
12 | 12 |
|
| 13 | +#if defined(CONFIG_SOC_MEC172X_NLJ) |
| 14 | +/* 16 ADC channels numbered 0 - 15 */ |
| 15 | +#define MCHP_ADC_MAX_CHAN 16u |
| 16 | +#define MCHP_ADC_MAX_CHAN_MASK 0x0fu |
| 17 | +#else |
13 | 18 | /* Eight ADC channels numbered 0 - 7 */ |
14 | 19 | #define MCHP_ADC_MAX_CHAN 8u |
15 | 20 | #define MCHP_ADC_MAX_CHAN_MASK 0x07u |
| 21 | +#endif |
16 | 22 |
|
17 | 23 | /* Control register */ |
18 | 24 | #define MCHP_ADC_CTRL_REG_OFS 0u |
|
42 | 48 |
|
43 | 49 | /* Single Conversion Select register */ |
44 | 50 | #define MCHP_ADC_SCS_REG_OFS 0x0cu |
| 51 | +#if defined(CONFIG_SOC_MEC172X_NLJ) |
| 52 | +#define MCHP_ADC_SCS_REG_MASK 0xffffu |
| 53 | +#define MCHP_ADC_SCS_CH_0_15 0xffffu |
| 54 | +#define MCHP_ADC_SCS_CH(n) BIT(((n) & 0x0fu)) |
| 55 | +#else |
45 | 56 | #define MCHP_ADC_SCS_REG_MASK 0xffu |
46 | 57 | #define MCHP_ADC_SCS_CH_0_7 0xffu |
47 | 58 | #define MCHP_ADC_SCS_CH(n) BIT(((n) & 0x07u)) |
| 59 | +#endif |
48 | 60 |
|
49 | 61 | /* Repeat Conversion Select register */ |
50 | 62 | #define MCHP_ADC_RCS_REG_OFS 0x10u |
| 63 | +#if defined(CONFIG_SOC_MEC172X_NLJ) |
| 64 | +#define MCHP_ADC_RCS_REG_MASK 0xffffu |
| 65 | +#define MCHP_ADC_RCS_CH_0_15 0xffffu |
| 66 | +#define MCHP_ADC_RCS_CH(n) BIT(((n) & 0x0fu)) |
| 67 | +#else |
51 | 68 | #define MCHP_ADC_RCS_REG_MASK 0xffu |
52 | 69 | #define MCHP_ADC_RCS_CH_0_7 0xffu |
53 | 70 | #define MCHP_ADC_RCS_CH(n) BIT(((n) & 0x07u)) |
| 71 | +#endif |
54 | 72 |
|
55 | 73 | /* Channel reading registers */ |
56 | 74 | #define MCHP_ADC_RDCH_REG_MASK 0xfffu |
|
62 | 80 | #define MCHP_ADC_RDCH5_REG_OFS 0x28u |
63 | 81 | #define MCHP_ADC_RDCH6_REG_OFS 0x2cu |
64 | 82 | #define MCHP_ADC_RDCH7_REG_OFS 0x30u |
| 83 | +#define MCHP_ADC_RDCH8_REG_OFS 0x34u |
| 84 | +#define MCHP_ADC_RDCH9_REG_OFS 0x38u |
| 85 | +#define MCHP_ADC_RDCH10_REG_OFS 0x3cu |
| 86 | +#define MCHP_ADC_RDCH11_REG_OFS 0x40u |
| 87 | +#define MCHP_ADC_RDCH12_REG_OFS 0x44u |
| 88 | +#define MCHP_ADC_RDCH13_REG_OFS 0x48u |
| 89 | +#define MCHP_ADC_RDCH14_REG_OFS 0x4cu |
| 90 | +#define MCHP_ADC_RDCH15_REG_OFS 0x50u |
65 | 91 |
|
66 | 92 | /* Configuration register */ |
67 | 93 | #define MCHP_ADC_CFG_REG_OFS 0x7cu |
|
76 | 102 | /* Channel Vref Select register */ |
77 | 103 | #define MCHP_ADC_CH_VREF_SEL_REG_OFS 0x80u |
78 | 104 | #define MCHP_ADC_CH_VREF_SEL_REG_MASK 0x00ffffffu |
| 105 | +#if defined(CONFIG_SOC_MEC172X_NLJ) |
| 106 | +#define MCHP_ADC_CH_VREF_SEL_MASK(n) SHLU32(0x03u, (((n) & 0x0f) * 2u)) |
| 107 | +#define MCHP_ADC_CH_VREF_SEL_PAD(n) 0u |
| 108 | +#define MCHP_ADC_CH_VREF_SEL_GPIO(n) SHLU32(0x01u, (((n) & 0x0f) * 2u)) |
| 109 | +#else |
79 | 110 | #define MCHP_ADC_CH_VREF_SEL_MASK(n) SHLU32(0x03u, (((n) & 0x07) * 2u)) |
80 | 111 | #define MCHP_ADC_CH_VREF_SEL_PAD(n) 0u |
81 | 112 | #define MCHP_ADC_CH_VREF_SEL_GPIO(n) SHLU32(0x01u, (((n) & 0x07) * 2u)) |
| 113 | +#endif |
82 | 114 |
|
83 | 115 | /* Vref Control register */ |
84 | 116 | #define MCHP_ADC_VREF_CTRL_REG_OFS 0x84u |
@@ -131,8 +163,8 @@ struct adc_regs { |
131 | 163 | volatile uint32_t STATUS; |
132 | 164 | volatile uint32_t SINGLE; |
133 | 165 | volatile uint32_t REPEAT; |
134 | | - volatile uint32_t RD[8]; |
135 | | - uint8_t RSVD1[0x7c - 0x34]; |
| 166 | + volatile uint32_t RD[MCHP_ADC_MAX_CHAN]; |
| 167 | + uint8_t RSVD1[0x7c - ((MCHP_ADC_MAX_CHAN * 4) + 0x14)]; |
136 | 168 | volatile uint32_t CONFIG; |
137 | 169 | volatile uint32_t VREF_CHAN_SEL; |
138 | 170 | volatile uint32_t VREF_CTRL; |
|
0 commit comments