1 /* 2 * Copyright (c) 2021-2024 HPMicro 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 */ 7 8 9 #ifndef HPM_PPI_H 10 #define HPM_PPI_H 11 12 typedef struct { 13 __RW uint32_t GLB_CFG; /* 0x0: glb_cfg */ 14 __RW uint32_t PAD_CFG; /* 0x4: pad_cfg */ 15 __R uint8_t RESERVED0[12]; /* 0x8 - 0x13: Reserved */ 16 __RW uint32_t CLKPIN_CFG; /* 0x14: clkpin_cfg */ 17 __RW uint32_t TM_CFG; /* 0x18: tm_cfg */ 18 __R uint8_t RESERVED1[4]; /* 0x1C - 0x1F: Reserved */ 19 __RW uint32_t IRQ_STS; /* 0x20: irq_sts */ 20 __RW uint32_t IRQ_EN; /* 0x24: irq_en */ 21 __R uint8_t RESERVED2[24]; /* 0x28 - 0x3F: Reserved */ 22 struct { 23 __RW uint32_t CFG0; /* 0x40: cfg0 */ 24 __RW uint32_t CFG1; /* 0x44: cfg1 */ 25 __RW uint32_t CFG2; /* 0x48: cfg2 */ 26 __RW uint32_t CFG3; /* 0x4C: cfg3 */ 27 __RW uint32_t CFG4; /* 0x50: cfg4 */ 28 __R uint8_t RESERVED0[12]; /* 0x54 - 0x5F: Reserved */ 29 } CS[4]; 30 __R uint8_t RESERVED3[832]; /* 0xC0 - 0x3FF: Reserved */ 31 struct { 32 __RW uint32_t CMD_CFG; /* 0x400: cmd_cfg */ 33 __RW uint32_t AD_CFG; /* 0x404: ad_cfg */ 34 __RW uint32_t CTRL_CFG; /* 0x408: ctrl_cfg */ 35 __R uint8_t RESERVED0[4]; /* 0x40C - 0x40F: Reserved */ 36 } CMD[64]; 37 } PPI_Type; 38 39 40 /* Bitfield definition for register: GLB_CFG */ 41 /* 42 * PAD_OUT_REG_ENJ (RW) 43 * 44 * 0: register output, one cycle delay; 45 * 1: direct output, no delay but may have timing issue 46 */ 47 #define PPI_GLB_CFG_PAD_OUT_REG_ENJ_MASK (0x2U) 48 #define PPI_GLB_CFG_PAD_OUT_REG_ENJ_SHIFT (1U) 49 #define PPI_GLB_CFG_PAD_OUT_REG_ENJ_SET(x) (((uint32_t)(x) << PPI_GLB_CFG_PAD_OUT_REG_ENJ_SHIFT) & PPI_GLB_CFG_PAD_OUT_REG_ENJ_MASK) 50 #define PPI_GLB_CFG_PAD_OUT_REG_ENJ_GET(x) (((uint32_t)(x) & PPI_GLB_CFG_PAD_OUT_REG_ENJ_MASK) >> PPI_GLB_CFG_PAD_OUT_REG_ENJ_SHIFT) 51 52 /* 53 * SOFT_RESET (RW) 54 * 55 * software reset 56 */ 57 #define PPI_GLB_CFG_SOFT_RESET_MASK (0x1U) 58 #define PPI_GLB_CFG_SOFT_RESET_SHIFT (0U) 59 #define PPI_GLB_CFG_SOFT_RESET_SET(x) (((uint32_t)(x) << PPI_GLB_CFG_SOFT_RESET_SHIFT) & PPI_GLB_CFG_SOFT_RESET_MASK) 60 #define PPI_GLB_CFG_SOFT_RESET_GET(x) (((uint32_t)(x) & PPI_GLB_CFG_SOFT_RESET_MASK) >> PPI_GLB_CFG_SOFT_RESET_SHIFT) 61 62 /* Bitfield definition for register: PAD_CFG */ 63 /* 64 * CS_IDLE_ST (RW) 65 * 66 * cs pin idle state, default high for active low 67 */ 68 #define PPI_PAD_CFG_CS_IDLE_ST_MASK (0xF000000UL) 69 #define PPI_PAD_CFG_CS_IDLE_ST_SHIFT (24U) 70 #define PPI_PAD_CFG_CS_IDLE_ST_SET(x) (((uint32_t)(x) << PPI_PAD_CFG_CS_IDLE_ST_SHIFT) & PPI_PAD_CFG_CS_IDLE_ST_MASK) 71 #define PPI_PAD_CFG_CS_IDLE_ST_GET(x) (((uint32_t)(x) & PPI_PAD_CFG_CS_IDLE_ST_MASK) >> PPI_PAD_CFG_CS_IDLE_ST_SHIFT) 72 73 /* 74 * DM_PAD_POL (RW) 75 * 76 * dm pin polarity 77 */ 78 #define PPI_PAD_CFG_DM_PAD_POL_MASK (0xF0000UL) 79 #define PPI_PAD_CFG_DM_PAD_POL_SHIFT (16U) 80 #define PPI_PAD_CFG_DM_PAD_POL_SET(x) (((uint32_t)(x) << PPI_PAD_CFG_DM_PAD_POL_SHIFT) & PPI_PAD_CFG_DM_PAD_POL_MASK) 81 #define PPI_PAD_CFG_DM_PAD_POL_GET(x) (((uint32_t)(x) & PPI_PAD_CFG_DM_PAD_POL_MASK) >> PPI_PAD_CFG_DM_PAD_POL_SHIFT) 82 83 /* 84 * CTRL_PAD_OE (RW) 85 * 86 * the pad output enable signal. 0 for IN; 1 for OUT. 87 * NOTE: for unused pads, set both ctrl_pad_oe and ctrl_pad_pol to 0 88 */ 89 #define PPI_PAD_CFG_CTRL_PAD_OE_MASK (0xFF00U) 90 #define PPI_PAD_CFG_CTRL_PAD_OE_SHIFT (8U) 91 #define PPI_PAD_CFG_CTRL_PAD_OE_SET(x) (((uint32_t)(x) << PPI_PAD_CFG_CTRL_PAD_OE_SHIFT) & PPI_PAD_CFG_CTRL_PAD_OE_MASK) 92 #define PPI_PAD_CFG_CTRL_PAD_OE_GET(x) (((uint32_t)(x) & PPI_PAD_CFG_CTRL_PAD_OE_MASK) >> PPI_PAD_CFG_CTRL_PAD_OE_SHIFT) 93 94 /* 95 * CTRL_PAD_POL (RW) 96 * 97 * for OUT pad: 98 * 0: output the value in cmd 99 * 1: output reversed value in cmd 100 * for IN pad, defines the signal active value, when ctrl_cfg.io_cfg is set, 101 * will wait the active value for ready(generally read or write ready) 102 */ 103 #define PPI_PAD_CFG_CTRL_PAD_POL_MASK (0xFFU) 104 #define PPI_PAD_CFG_CTRL_PAD_POL_SHIFT (0U) 105 #define PPI_PAD_CFG_CTRL_PAD_POL_SET(x) (((uint32_t)(x) << PPI_PAD_CFG_CTRL_PAD_POL_SHIFT) & PPI_PAD_CFG_CTRL_PAD_POL_MASK) 106 #define PPI_PAD_CFG_CTRL_PAD_POL_GET(x) (((uint32_t)(x) & PPI_PAD_CFG_CTRL_PAD_POL_MASK) >> PPI_PAD_CFG_CTRL_PAD_POL_SHIFT) 107 108 /* Bitfield definition for register: CLKPIN_CFG */ 109 /* 110 * CYCLE (RW) 111 * 112 * there will be a system counter run from 0 to cycle, 113 * clk output will be set to high when counter is clk_high, and low when counter is clk_low. 114 * The output will be system clock if cycle is 0. 115 * All 4 CS share same clock configuration(one clock pin with configured frequency). 116 * different CS can be assert at different counter value. 117 */ 118 #define PPI_CLKPIN_CFG_CYCLE_MASK (0xF000000UL) 119 #define PPI_CLKPIN_CFG_CYCLE_SHIFT (24U) 120 #define PPI_CLKPIN_CFG_CYCLE_SET(x) (((uint32_t)(x) << PPI_CLKPIN_CFG_CYCLE_SHIFT) & PPI_CLKPIN_CFG_CYCLE_MASK) 121 #define PPI_CLKPIN_CFG_CYCLE_GET(x) (((uint32_t)(x) & PPI_CLKPIN_CFG_CYCLE_MASK) >> PPI_CLKPIN_CFG_CYCLE_SHIFT) 122 123 /* 124 * HIGH (RW) 125 * 126 * clock high numer 127 */ 128 #define PPI_CLKPIN_CFG_HIGH_MASK (0xF0000UL) 129 #define PPI_CLKPIN_CFG_HIGH_SHIFT (16U) 130 #define PPI_CLKPIN_CFG_HIGH_SET(x) (((uint32_t)(x) << PPI_CLKPIN_CFG_HIGH_SHIFT) & PPI_CLKPIN_CFG_HIGH_MASK) 131 #define PPI_CLKPIN_CFG_HIGH_GET(x) (((uint32_t)(x) & PPI_CLKPIN_CFG_HIGH_MASK) >> PPI_CLKPIN_CFG_HIGH_SHIFT) 132 133 /* 134 * LOW (RW) 135 * 136 * clock low number 137 */ 138 #define PPI_CLKPIN_CFG_LOW_MASK (0xF00U) 139 #define PPI_CLKPIN_CFG_LOW_SHIFT (8U) 140 #define PPI_CLKPIN_CFG_LOW_SET(x) (((uint32_t)(x) << PPI_CLKPIN_CFG_LOW_SHIFT) & PPI_CLKPIN_CFG_LOW_MASK) 141 #define PPI_CLKPIN_CFG_LOW_GET(x) (((uint32_t)(x) & PPI_CLKPIN_CFG_LOW_MASK) >> PPI_CLKPIN_CFG_LOW_SHIFT) 142 143 /* 144 * INVERT (RW) 145 * 146 * set to invert clock output 147 */ 148 #define PPI_CLKPIN_CFG_INVERT_MASK (0x20U) 149 #define PPI_CLKPIN_CFG_INVERT_SHIFT (5U) 150 #define PPI_CLKPIN_CFG_INVERT_SET(x) (((uint32_t)(x) << PPI_CLKPIN_CFG_INVERT_SHIFT) & PPI_CLKPIN_CFG_INVERT_MASK) 151 #define PPI_CLKPIN_CFG_INVERT_GET(x) (((uint32_t)(x) & PPI_CLKPIN_CFG_INVERT_MASK) >> PPI_CLKPIN_CFG_INVERT_SHIFT) 152 153 /* 154 * AON (RW) 155 * 156 * 0: use clk_gate in cmd sequence for whether output clock 157 * 1: always enable clock output; 158 */ 159 #define PPI_CLKPIN_CFG_AON_MASK (0x2U) 160 #define PPI_CLKPIN_CFG_AON_SHIFT (1U) 161 #define PPI_CLKPIN_CFG_AON_SET(x) (((uint32_t)(x) << PPI_CLKPIN_CFG_AON_SHIFT) & PPI_CLKPIN_CFG_AON_MASK) 162 #define PPI_CLKPIN_CFG_AON_GET(x) (((uint32_t)(x) & PPI_CLKPIN_CFG_AON_MASK) >> PPI_CLKPIN_CFG_AON_SHIFT) 163 164 /* 165 * EN (RW) 166 * 167 * set to enable clock logic 168 */ 169 #define PPI_CLKPIN_CFG_EN_MASK (0x1U) 170 #define PPI_CLKPIN_CFG_EN_SHIFT (0U) 171 #define PPI_CLKPIN_CFG_EN_SET(x) (((uint32_t)(x) << PPI_CLKPIN_CFG_EN_SHIFT) & PPI_CLKPIN_CFG_EN_MASK) 172 #define PPI_CLKPIN_CFG_EN_GET(x) (((uint32_t)(x) & PPI_CLKPIN_CFG_EN_MASK) >> PPI_CLKPIN_CFG_EN_SHIFT) 173 174 /* Bitfield definition for register: TM_CFG */ 175 /* 176 * TM_EN (RW) 177 * 178 * timeout enable. 179 * if enabled, then if each AHB transfer time exceed tm_cfg clock cycles, will assert irq 180 */ 181 #define PPI_TM_CFG_TM_EN_MASK (0x10000UL) 182 #define PPI_TM_CFG_TM_EN_SHIFT (16U) 183 #define PPI_TM_CFG_TM_EN_SET(x) (((uint32_t)(x) << PPI_TM_CFG_TM_EN_SHIFT) & PPI_TM_CFG_TM_EN_MASK) 184 #define PPI_TM_CFG_TM_EN_GET(x) (((uint32_t)(x) & PPI_TM_CFG_TM_EN_MASK) >> PPI_TM_CFG_TM_EN_SHIFT) 185 186 /* 187 * TM_CFG (RW) 188 * 189 * timeout value, max 20us at 200MHz clock 190 */ 191 #define PPI_TM_CFG_TM_CFG_MASK (0xFFFU) 192 #define PPI_TM_CFG_TM_CFG_SHIFT (0U) 193 #define PPI_TM_CFG_TM_CFG_SET(x) (((uint32_t)(x) << PPI_TM_CFG_TM_CFG_SHIFT) & PPI_TM_CFG_TM_CFG_MASK) 194 #define PPI_TM_CFG_TM_CFG_GET(x) (((uint32_t)(x) & PPI_TM_CFG_TM_CFG_MASK) >> PPI_TM_CFG_TM_CFG_SHIFT) 195 196 /* Bitfield definition for register: IRQ_STS */ 197 /* 198 * IRQ_TMOUT_STS (RW1C) 199 * 200 * tiemout interrupt status, write 1 to clear 201 */ 202 #define PPI_IRQ_STS_IRQ_TMOUT_STS_MASK (0x1U) 203 #define PPI_IRQ_STS_IRQ_TMOUT_STS_SHIFT (0U) 204 #define PPI_IRQ_STS_IRQ_TMOUT_STS_SET(x) (((uint32_t)(x) << PPI_IRQ_STS_IRQ_TMOUT_STS_SHIFT) & PPI_IRQ_STS_IRQ_TMOUT_STS_MASK) 205 #define PPI_IRQ_STS_IRQ_TMOUT_STS_GET(x) (((uint32_t)(x) & PPI_IRQ_STS_IRQ_TMOUT_STS_MASK) >> PPI_IRQ_STS_IRQ_TMOUT_STS_SHIFT) 206 207 /* Bitfield definition for register: IRQ_EN */ 208 /* 209 * IRQ_TMOUT_EN (RW) 210 * 211 * timeout interrupt enable 212 */ 213 #define PPI_IRQ_EN_IRQ_TMOUT_EN_MASK (0x1U) 214 #define PPI_IRQ_EN_IRQ_TMOUT_EN_SHIFT (0U) 215 #define PPI_IRQ_EN_IRQ_TMOUT_EN_SET(x) (((uint32_t)(x) << PPI_IRQ_EN_IRQ_TMOUT_EN_SHIFT) & PPI_IRQ_EN_IRQ_TMOUT_EN_MASK) 216 #define PPI_IRQ_EN_IRQ_TMOUT_EN_GET(x) (((uint32_t)(x) & PPI_IRQ_EN_IRQ_TMOUT_EN_MASK) >> PPI_IRQ_EN_IRQ_TMOUT_EN_SHIFT) 217 218 /* Bitfield definition for register of struct array CS: CFG0 */ 219 /* 220 * ADDR_END (RW) 221 * 222 */ 223 #define PPI_CS_CFG0_ADDR_END_MASK (0xFFF0000UL) 224 #define PPI_CS_CFG0_ADDR_END_SHIFT (16U) 225 #define PPI_CS_CFG0_ADDR_END_SET(x) (((uint32_t)(x) << PPI_CS_CFG0_ADDR_END_SHIFT) & PPI_CS_CFG0_ADDR_END_MASK) 226 #define PPI_CS_CFG0_ADDR_END_GET(x) (((uint32_t)(x) & PPI_CS_CFG0_ADDR_END_MASK) >> PPI_CS_CFG0_ADDR_END_SHIFT) 227 228 /* 229 * ADDR_START (RW) 230 * 231 * addr_start and addr_end config the address slot for CS0, use high 12bit, 232 * the minimun slot is 1Mbyte(addr_start==addr_end) 233 */ 234 #define PPI_CS_CFG0_ADDR_START_MASK (0xFFFU) 235 #define PPI_CS_CFG0_ADDR_START_SHIFT (0U) 236 #define PPI_CS_CFG0_ADDR_START_SET(x) (((uint32_t)(x) << PPI_CS_CFG0_ADDR_START_SHIFT) & PPI_CS_CFG0_ADDR_START_MASK) 237 #define PPI_CS_CFG0_ADDR_START_GET(x) (((uint32_t)(x) & PPI_CS_CFG0_ADDR_START_MASK) >> PPI_CS_CFG0_ADDR_START_SHIFT) 238 239 /* Bitfield definition for register of struct array CS: CFG1 */ 240 /* 241 * ADDR_MASK (RW) 242 * 243 * the high AHB address will AND with {cs0_mask[15:0], 16'hFFFF}, 244 * shift right with addr_shift, then output as real address. 245 */ 246 #define PPI_CS_CFG1_ADDR_MASK_MASK (0xFFFF0000UL) 247 #define PPI_CS_CFG1_ADDR_MASK_SHIFT (16U) 248 #define PPI_CS_CFG1_ADDR_MASK_SET(x) (((uint32_t)(x) << PPI_CS_CFG1_ADDR_MASK_SHIFT) & PPI_CS_CFG1_ADDR_MASK_MASK) 249 #define PPI_CS_CFG1_ADDR_MASK_GET(x) (((uint32_t)(x) & PPI_CS_CFG1_ADDR_MASK_MASK) >> PPI_CS_CFG1_ADDR_MASK_SHIFT) 250 251 /* 252 * ADDR_SHIFT (RW) 253 * 254 * gennerally should be configured according to port size, 255 * 0 for 8bit; 1 for 16bit; 2 for 32bit; 256 */ 257 #define PPI_CS_CFG1_ADDR_SHIFT_MASK (0xFU) 258 #define PPI_CS_CFG1_ADDR_SHIFT_SHIFT (0U) 259 #define PPI_CS_CFG1_ADDR_SHIFT_SET(x) (((uint32_t)(x) << PPI_CS_CFG1_ADDR_SHIFT_SHIFT) & PPI_CS_CFG1_ADDR_SHIFT_MASK) 260 #define PPI_CS_CFG1_ADDR_SHIFT_GET(x) (((uint32_t)(x) & PPI_CS_CFG1_ADDR_SHIFT_MASK) >> PPI_CS_CFG1_ADDR_SHIFT_SHIFT) 261 262 /* Bitfield definition for register of struct array CS: CFG2 */ 263 /* 264 * CS_SYNC_EN (RW) 265 * 266 * set to enable CS pin sync with clock counter. 267 * Clr if use async mode(no clk pin), or not care the CS start time with clk pin 268 */ 269 #define PPI_CS_CFG2_CS_SYNC_EN_MASK (0x10000000UL) 270 #define PPI_CS_CFG2_CS_SYNC_EN_SHIFT (28U) 271 #define PPI_CS_CFG2_CS_SYNC_EN_SET(x) (((uint32_t)(x) << PPI_CS_CFG2_CS_SYNC_EN_SHIFT) & PPI_CS_CFG2_CS_SYNC_EN_MASK) 272 #define PPI_CS_CFG2_CS_SYNC_EN_GET(x) (((uint32_t)(x) & PPI_CS_CFG2_CS_SYNC_EN_MASK) >> PPI_CS_CFG2_CS_SYNC_EN_SHIFT) 273 274 /* 275 * SYNC_CLK_SEL (RW) 276 * 277 * CS assert at when clk_div_cnt equal to sync_clk_sel 278 */ 279 #define PPI_CS_CFG2_SYNC_CLK_SEL_MASK (0xF00000UL) 280 #define PPI_CS_CFG2_SYNC_CLK_SEL_SHIFT (20U) 281 #define PPI_CS_CFG2_SYNC_CLK_SEL_SET(x) (((uint32_t)(x) << PPI_CS_CFG2_SYNC_CLK_SEL_SHIFT) & PPI_CS_CFG2_SYNC_CLK_SEL_MASK) 282 #define PPI_CS_CFG2_SYNC_CLK_SEL_GET(x) (((uint32_t)(x) & PPI_CS_CFG2_SYNC_CLK_SEL_MASK) >> PPI_CS_CFG2_SYNC_CLK_SEL_SHIFT) 283 284 /* 285 * READY_IN_SEL (RW) 286 * 287 * 0: use two stage sync; 288 * 1: use one stage sync 289 */ 290 #define PPI_CS_CFG2_READY_IN_SEL_MASK (0x1000U) 291 #define PPI_CS_CFG2_READY_IN_SEL_SHIFT (12U) 292 #define PPI_CS_CFG2_READY_IN_SEL_SET(x) (((uint32_t)(x) << PPI_CS_CFG2_READY_IN_SEL_SHIFT) & PPI_CS_CFG2_READY_IN_SEL_MASK) 293 #define PPI_CS_CFG2_READY_IN_SEL_GET(x) (((uint32_t)(x) & PPI_CS_CFG2_READY_IN_SEL_MASK) >> PPI_CS_CFG2_READY_IN_SEL_SHIFT) 294 295 /* 296 * INTER_CMD_DLY (RW) 297 * 298 * set to none-zero value, will add delay between each command sequence for burst cmd, 299 * or splited transfer cmd sequence(such as transfer 32bit on 16bit port), 300 * CS will be de-assert during the delay. 301 */ 302 #define PPI_CS_CFG2_INTER_CMD_DLY_MASK (0xF0U) 303 #define PPI_CS_CFG2_INTER_CMD_DLY_SHIFT (4U) 304 #define PPI_CS_CFG2_INTER_CMD_DLY_SET(x) (((uint32_t)(x) << PPI_CS_CFG2_INTER_CMD_DLY_SHIFT) & PPI_CS_CFG2_INTER_CMD_DLY_MASK) 305 #define PPI_CS_CFG2_INTER_CMD_DLY_GET(x) (((uint32_t)(x) & PPI_CS_CFG2_INTER_CMD_DLY_MASK) >> PPI_CS_CFG2_INTER_CMD_DLY_SHIFT) 306 307 /* 308 * PORT_SIZE (RW) 309 * 310 * 00-8bit; 01-16bit; 10-32bit; 11-reserved 311 */ 312 #define PPI_CS_CFG2_PORT_SIZE_MASK (0x6U) 313 #define PPI_CS_CFG2_PORT_SIZE_SHIFT (1U) 314 #define PPI_CS_CFG2_PORT_SIZE_SET(x) (((uint32_t)(x) << PPI_CS_CFG2_PORT_SIZE_SHIFT) & PPI_CS_CFG2_PORT_SIZE_MASK) 315 #define PPI_CS_CFG2_PORT_SIZE_GET(x) (((uint32_t)(x) & PPI_CS_CFG2_PORT_SIZE_MASK) >> PPI_CS_CFG2_PORT_SIZE_SHIFT) 316 317 /* 318 * ENABLE (RW) 319 * 320 * CS enable 321 */ 322 #define PPI_CS_CFG2_ENABLE_MASK (0x1U) 323 #define PPI_CS_CFG2_ENABLE_SHIFT (0U) 324 #define PPI_CS_CFG2_ENABLE_SET(x) (((uint32_t)(x) << PPI_CS_CFG2_ENABLE_SHIFT) & PPI_CS_CFG2_ENABLE_MASK) 325 #define PPI_CS_CFG2_ENABLE_GET(x) (((uint32_t)(x) & PPI_CS_CFG2_ENABLE_MASK) >> PPI_CS_CFG2_ENABLE_SHIFT) 326 327 /* Bitfield definition for register of struct array CS: CFG3 */ 328 /* 329 * RCMD_END1 (RW) 330 * 331 * sequential read cmd end index 332 */ 333 #define PPI_CS_CFG3_RCMD_END1_MASK (0x3F000000UL) 334 #define PPI_CS_CFG3_RCMD_END1_SHIFT (24U) 335 #define PPI_CS_CFG3_RCMD_END1_SET(x) (((uint32_t)(x) << PPI_CS_CFG3_RCMD_END1_SHIFT) & PPI_CS_CFG3_RCMD_END1_MASK) 336 #define PPI_CS_CFG3_RCMD_END1_GET(x) (((uint32_t)(x) & PPI_CS_CFG3_RCMD_END1_MASK) >> PPI_CS_CFG3_RCMD_END1_SHIFT) 337 338 /* 339 * RCMD_START1 (RW) 340 * 341 * sequential read cmd start index 342 */ 343 #define PPI_CS_CFG3_RCMD_START1_MASK (0x3F0000UL) 344 #define PPI_CS_CFG3_RCMD_START1_SHIFT (16U) 345 #define PPI_CS_CFG3_RCMD_START1_SET(x) (((uint32_t)(x) << PPI_CS_CFG3_RCMD_START1_SHIFT) & PPI_CS_CFG3_RCMD_START1_MASK) 346 #define PPI_CS_CFG3_RCMD_START1_GET(x) (((uint32_t)(x) & PPI_CS_CFG3_RCMD_START1_MASK) >> PPI_CS_CFG3_RCMD_START1_SHIFT) 347 348 /* 349 * RCMD_END0 (RW) 350 * 351 * first read cmd end index 352 */ 353 #define PPI_CS_CFG3_RCMD_END0_MASK (0x3F00U) 354 #define PPI_CS_CFG3_RCMD_END0_SHIFT (8U) 355 #define PPI_CS_CFG3_RCMD_END0_SET(x) (((uint32_t)(x) << PPI_CS_CFG3_RCMD_END0_SHIFT) & PPI_CS_CFG3_RCMD_END0_MASK) 356 #define PPI_CS_CFG3_RCMD_END0_GET(x) (((uint32_t)(x) & PPI_CS_CFG3_RCMD_END0_MASK) >> PPI_CS_CFG3_RCMD_END0_SHIFT) 357 358 /* 359 * RCMD_START0 (RW) 360 * 361 * first read cmd start index 362 */ 363 #define PPI_CS_CFG3_RCMD_START0_MASK (0x3FU) 364 #define PPI_CS_CFG3_RCMD_START0_SHIFT (0U) 365 #define PPI_CS_CFG3_RCMD_START0_SET(x) (((uint32_t)(x) << PPI_CS_CFG3_RCMD_START0_SHIFT) & PPI_CS_CFG3_RCMD_START0_MASK) 366 #define PPI_CS_CFG3_RCMD_START0_GET(x) (((uint32_t)(x) & PPI_CS_CFG3_RCMD_START0_MASK) >> PPI_CS_CFG3_RCMD_START0_SHIFT) 367 368 /* Bitfield definition for register of struct array CS: CFG4 */ 369 /* 370 * WCMD_END1 (RW) 371 * 372 * sequential write cmd end index 373 */ 374 #define PPI_CS_CFG4_WCMD_END1_MASK (0x3F000000UL) 375 #define PPI_CS_CFG4_WCMD_END1_SHIFT (24U) 376 #define PPI_CS_CFG4_WCMD_END1_SET(x) (((uint32_t)(x) << PPI_CS_CFG4_WCMD_END1_SHIFT) & PPI_CS_CFG4_WCMD_END1_MASK) 377 #define PPI_CS_CFG4_WCMD_END1_GET(x) (((uint32_t)(x) & PPI_CS_CFG4_WCMD_END1_MASK) >> PPI_CS_CFG4_WCMD_END1_SHIFT) 378 379 /* 380 * WCMD_START1 (RW) 381 * 382 * sequential write cmd start index 383 */ 384 #define PPI_CS_CFG4_WCMD_START1_MASK (0x3F0000UL) 385 #define PPI_CS_CFG4_WCMD_START1_SHIFT (16U) 386 #define PPI_CS_CFG4_WCMD_START1_SET(x) (((uint32_t)(x) << PPI_CS_CFG4_WCMD_START1_SHIFT) & PPI_CS_CFG4_WCMD_START1_MASK) 387 #define PPI_CS_CFG4_WCMD_START1_GET(x) (((uint32_t)(x) & PPI_CS_CFG4_WCMD_START1_MASK) >> PPI_CS_CFG4_WCMD_START1_SHIFT) 388 389 /* 390 * WCMD_END0 (RW) 391 * 392 * first write cmd end index 393 */ 394 #define PPI_CS_CFG4_WCMD_END0_MASK (0x3F00U) 395 #define PPI_CS_CFG4_WCMD_END0_SHIFT (8U) 396 #define PPI_CS_CFG4_WCMD_END0_SET(x) (((uint32_t)(x) << PPI_CS_CFG4_WCMD_END0_SHIFT) & PPI_CS_CFG4_WCMD_END0_MASK) 397 #define PPI_CS_CFG4_WCMD_END0_GET(x) (((uint32_t)(x) & PPI_CS_CFG4_WCMD_END0_MASK) >> PPI_CS_CFG4_WCMD_END0_SHIFT) 398 399 /* 400 * WCMD_START0 (RW) 401 * 402 * first write cmd start index 403 */ 404 #define PPI_CS_CFG4_WCMD_START0_MASK (0x3FU) 405 #define PPI_CS_CFG4_WCMD_START0_SHIFT (0U) 406 #define PPI_CS_CFG4_WCMD_START0_SET(x) (((uint32_t)(x) << PPI_CS_CFG4_WCMD_START0_SHIFT) & PPI_CS_CFG4_WCMD_START0_MASK) 407 #define PPI_CS_CFG4_WCMD_START0_GET(x) (((uint32_t)(x) & PPI_CS_CFG4_WCMD_START0_MASK) >> PPI_CS_CFG4_WCMD_START0_SHIFT) 408 409 /* Bitfield definition for register of struct array CMD: CMD_CFG */ 410 /* 411 * CS_VAL (RW) 412 * 413 * cs value in current cmd 414 */ 415 #define PPI_CMD_CMD_CFG_CS_VAL_MASK (0x20000UL) 416 #define PPI_CMD_CMD_CFG_CS_VAL_SHIFT (17U) 417 #define PPI_CMD_CMD_CFG_CS_VAL_SET(x) (((uint32_t)(x) << PPI_CMD_CMD_CFG_CS_VAL_SHIFT) & PPI_CMD_CMD_CFG_CS_VAL_MASK) 418 #define PPI_CMD_CMD_CFG_CS_VAL_GET(x) (((uint32_t)(x) & PPI_CMD_CMD_CFG_CS_VAL_MASK) >> PPI_CMD_CMD_CFG_CS_VAL_SHIFT) 419 420 /* 421 * CLK_GATE (RW) 422 * 423 * the clock gate enable signal, set to output clock signal 424 */ 425 #define PPI_CMD_CMD_CFG_CLK_GATE_MASK (0x10000UL) 426 #define PPI_CMD_CMD_CFG_CLK_GATE_SHIFT (16U) 427 #define PPI_CMD_CMD_CFG_CLK_GATE_SET(x) (((uint32_t)(x) << PPI_CMD_CMD_CFG_CLK_GATE_SHIFT) & PPI_CMD_CMD_CFG_CLK_GATE_MASK) 428 #define PPI_CMD_CMD_CFG_CLK_GATE_GET(x) (((uint32_t)(x) & PPI_CMD_CMD_CFG_CLK_GATE_MASK) >> PPI_CMD_CMD_CFG_CLK_GATE_SHIFT) 429 430 /* 431 * CYCLE_NUM (RW) 432 * 433 * cmd clock cycles 434 */ 435 #define PPI_CMD_CMD_CFG_CYCLE_NUM_MASK (0xFFU) 436 #define PPI_CMD_CMD_CFG_CYCLE_NUM_SHIFT (0U) 437 #define PPI_CMD_CMD_CFG_CYCLE_NUM_SET(x) (((uint32_t)(x) << PPI_CMD_CMD_CFG_CYCLE_NUM_SHIFT) & PPI_CMD_CMD_CFG_CYCLE_NUM_MASK) 438 #define PPI_CMD_CMD_CFG_CYCLE_NUM_GET(x) (((uint32_t)(x) & PPI_CMD_CMD_CFG_CYCLE_NUM_MASK) >> PPI_CMD_CMD_CFG_CYCLE_NUM_SHIFT) 439 440 /* Bitfield definition for register of struct array CMD: AD_CFG */ 441 /* 442 * DIR3 (RW) 443 * 444 */ 445 #define PPI_CMD_AD_CFG_DIR3_MASK (0x8000U) 446 #define PPI_CMD_AD_CFG_DIR3_SHIFT (15U) 447 #define PPI_CMD_AD_CFG_DIR3_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_DIR3_SHIFT) & PPI_CMD_AD_CFG_DIR3_MASK) 448 #define PPI_CMD_AD_CFG_DIR3_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_DIR3_MASK) >> PPI_CMD_AD_CFG_DIR3_SHIFT) 449 450 /* 451 * AD_SEL3 (RW) 452 * 453 */ 454 #define PPI_CMD_AD_CFG_AD_SEL3_MASK (0x4000U) 455 #define PPI_CMD_AD_CFG_AD_SEL3_SHIFT (14U) 456 #define PPI_CMD_AD_CFG_AD_SEL3_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_AD_SEL3_SHIFT) & PPI_CMD_AD_CFG_AD_SEL3_MASK) 457 #define PPI_CMD_AD_CFG_AD_SEL3_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_AD_SEL3_MASK) >> PPI_CMD_AD_CFG_AD_SEL3_SHIFT) 458 459 /* 460 * BYTE_SEL3 (RW) 461 * 462 */ 463 #define PPI_CMD_AD_CFG_BYTE_SEL3_MASK (0x3000U) 464 #define PPI_CMD_AD_CFG_BYTE_SEL3_SHIFT (12U) 465 #define PPI_CMD_AD_CFG_BYTE_SEL3_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_BYTE_SEL3_SHIFT) & PPI_CMD_AD_CFG_BYTE_SEL3_MASK) 466 #define PPI_CMD_AD_CFG_BYTE_SEL3_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_BYTE_SEL3_MASK) >> PPI_CMD_AD_CFG_BYTE_SEL3_SHIFT) 467 468 /* 469 * DIR2 (RW) 470 * 471 */ 472 #define PPI_CMD_AD_CFG_DIR2_MASK (0x800U) 473 #define PPI_CMD_AD_CFG_DIR2_SHIFT (11U) 474 #define PPI_CMD_AD_CFG_DIR2_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_DIR2_SHIFT) & PPI_CMD_AD_CFG_DIR2_MASK) 475 #define PPI_CMD_AD_CFG_DIR2_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_DIR2_MASK) >> PPI_CMD_AD_CFG_DIR2_SHIFT) 476 477 /* 478 * AD_SEL2 (RW) 479 * 480 */ 481 #define PPI_CMD_AD_CFG_AD_SEL2_MASK (0x400U) 482 #define PPI_CMD_AD_CFG_AD_SEL2_SHIFT (10U) 483 #define PPI_CMD_AD_CFG_AD_SEL2_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_AD_SEL2_SHIFT) & PPI_CMD_AD_CFG_AD_SEL2_MASK) 484 #define PPI_CMD_AD_CFG_AD_SEL2_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_AD_SEL2_MASK) >> PPI_CMD_AD_CFG_AD_SEL2_SHIFT) 485 486 /* 487 * BYTE_SEL2 (RW) 488 * 489 */ 490 #define PPI_CMD_AD_CFG_BYTE_SEL2_MASK (0x300U) 491 #define PPI_CMD_AD_CFG_BYTE_SEL2_SHIFT (8U) 492 #define PPI_CMD_AD_CFG_BYTE_SEL2_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_BYTE_SEL2_SHIFT) & PPI_CMD_AD_CFG_BYTE_SEL2_MASK) 493 #define PPI_CMD_AD_CFG_BYTE_SEL2_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_BYTE_SEL2_MASK) >> PPI_CMD_AD_CFG_BYTE_SEL2_SHIFT) 494 495 /* 496 * DIR1 (RW) 497 * 498 */ 499 #define PPI_CMD_AD_CFG_DIR1_MASK (0x80U) 500 #define PPI_CMD_AD_CFG_DIR1_SHIFT (7U) 501 #define PPI_CMD_AD_CFG_DIR1_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_DIR1_SHIFT) & PPI_CMD_AD_CFG_DIR1_MASK) 502 #define PPI_CMD_AD_CFG_DIR1_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_DIR1_MASK) >> PPI_CMD_AD_CFG_DIR1_SHIFT) 503 504 /* 505 * AD_SEL1 (RW) 506 * 507 */ 508 #define PPI_CMD_AD_CFG_AD_SEL1_MASK (0x40U) 509 #define PPI_CMD_AD_CFG_AD_SEL1_SHIFT (6U) 510 #define PPI_CMD_AD_CFG_AD_SEL1_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_AD_SEL1_SHIFT) & PPI_CMD_AD_CFG_AD_SEL1_MASK) 511 #define PPI_CMD_AD_CFG_AD_SEL1_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_AD_SEL1_MASK) >> PPI_CMD_AD_CFG_AD_SEL1_SHIFT) 512 513 /* 514 * BYTE_SEL1 (RW) 515 * 516 */ 517 #define PPI_CMD_AD_CFG_BYTE_SEL1_MASK (0x30U) 518 #define PPI_CMD_AD_CFG_BYTE_SEL1_SHIFT (4U) 519 #define PPI_CMD_AD_CFG_BYTE_SEL1_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_BYTE_SEL1_SHIFT) & PPI_CMD_AD_CFG_BYTE_SEL1_MASK) 520 #define PPI_CMD_AD_CFG_BYTE_SEL1_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_BYTE_SEL1_MASK) >> PPI_CMD_AD_CFG_BYTE_SEL1_SHIFT) 521 522 /* 523 * DIR0 (RW) 524 * 525 * 0 for OUT; 1 for IN 526 */ 527 #define PPI_CMD_AD_CFG_DIR0_MASK (0x8U) 528 #define PPI_CMD_AD_CFG_DIR0_SHIFT (3U) 529 #define PPI_CMD_AD_CFG_DIR0_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_DIR0_SHIFT) & PPI_CMD_AD_CFG_DIR0_MASK) 530 #define PPI_CMD_AD_CFG_DIR0_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_DIR0_MASK) >> PPI_CMD_AD_CFG_DIR0_SHIFT) 531 532 /* 533 * AD_SEL0 (RW) 534 * 535 * 0 for data; 1 for address. 536 */ 537 #define PPI_CMD_AD_CFG_AD_SEL0_MASK (0x4U) 538 #define PPI_CMD_AD_CFG_AD_SEL0_SHIFT (2U) 539 #define PPI_CMD_AD_CFG_AD_SEL0_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_AD_SEL0_SHIFT) & PPI_CMD_AD_CFG_AD_SEL0_MASK) 540 #define PPI_CMD_AD_CFG_AD_SEL0_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_AD_SEL0_MASK) >> PPI_CMD_AD_CFG_AD_SEL0_SHIFT) 541 542 /* 543 * BYTE_SEL0 (RW) 544 * 545 * select one of the 4 bytes(11 for 31:24, 10 for 23:16, 01 for 15:8, 00 for 7:0) 546 */ 547 #define PPI_CMD_AD_CFG_BYTE_SEL0_MASK (0x3U) 548 #define PPI_CMD_AD_CFG_BYTE_SEL0_SHIFT (0U) 549 #define PPI_CMD_AD_CFG_BYTE_SEL0_SET(x) (((uint32_t)(x) << PPI_CMD_AD_CFG_BYTE_SEL0_SHIFT) & PPI_CMD_AD_CFG_BYTE_SEL0_MASK) 550 #define PPI_CMD_AD_CFG_BYTE_SEL0_GET(x) (((uint32_t)(x) & PPI_CMD_AD_CFG_BYTE_SEL0_MASK) >> PPI_CMD_AD_CFG_BYTE_SEL0_SHIFT) 551 552 /* Bitfield definition for register of struct array CMD: CTRL_CFG */ 553 /* 554 * IO_CFG7 (RW) 555 * 556 */ 557 #define PPI_CMD_CTRL_CFG_IO_CFG7_MASK (0x10000000UL) 558 #define PPI_CMD_CTRL_CFG_IO_CFG7_SHIFT (28U) 559 #define PPI_CMD_CTRL_CFG_IO_CFG7_SET(x) (((uint32_t)(x) << PPI_CMD_CTRL_CFG_IO_CFG7_SHIFT) & PPI_CMD_CTRL_CFG_IO_CFG7_MASK) 560 #define PPI_CMD_CTRL_CFG_IO_CFG7_GET(x) (((uint32_t)(x) & PPI_CMD_CTRL_CFG_IO_CFG7_MASK) >> PPI_CMD_CTRL_CFG_IO_CFG7_SHIFT) 561 562 /* 563 * IO_CFG6 (RW) 564 * 565 */ 566 #define PPI_CMD_CTRL_CFG_IO_CFG6_MASK (0x1000000UL) 567 #define PPI_CMD_CTRL_CFG_IO_CFG6_SHIFT (24U) 568 #define PPI_CMD_CTRL_CFG_IO_CFG6_SET(x) (((uint32_t)(x) << PPI_CMD_CTRL_CFG_IO_CFG6_SHIFT) & PPI_CMD_CTRL_CFG_IO_CFG6_MASK) 569 #define PPI_CMD_CTRL_CFG_IO_CFG6_GET(x) (((uint32_t)(x) & PPI_CMD_CTRL_CFG_IO_CFG6_MASK) >> PPI_CMD_CTRL_CFG_IO_CFG6_SHIFT) 570 571 /* 572 * IO_CFG5 (RW) 573 * 574 */ 575 #define PPI_CMD_CTRL_CFG_IO_CFG5_MASK (0x100000UL) 576 #define PPI_CMD_CTRL_CFG_IO_CFG5_SHIFT (20U) 577 #define PPI_CMD_CTRL_CFG_IO_CFG5_SET(x) (((uint32_t)(x) << PPI_CMD_CTRL_CFG_IO_CFG5_SHIFT) & PPI_CMD_CTRL_CFG_IO_CFG5_MASK) 578 #define PPI_CMD_CTRL_CFG_IO_CFG5_GET(x) (((uint32_t)(x) & PPI_CMD_CTRL_CFG_IO_CFG5_MASK) >> PPI_CMD_CTRL_CFG_IO_CFG5_SHIFT) 579 580 /* 581 * IO_CFG4 (RW) 582 * 583 */ 584 #define PPI_CMD_CTRL_CFG_IO_CFG4_MASK (0x10000UL) 585 #define PPI_CMD_CTRL_CFG_IO_CFG4_SHIFT (16U) 586 #define PPI_CMD_CTRL_CFG_IO_CFG4_SET(x) (((uint32_t)(x) << PPI_CMD_CTRL_CFG_IO_CFG4_SHIFT) & PPI_CMD_CTRL_CFG_IO_CFG4_MASK) 587 #define PPI_CMD_CTRL_CFG_IO_CFG4_GET(x) (((uint32_t)(x) & PPI_CMD_CTRL_CFG_IO_CFG4_MASK) >> PPI_CMD_CTRL_CFG_IO_CFG4_SHIFT) 588 589 /* 590 * IO_CFG3 (RW) 591 * 592 */ 593 #define PPI_CMD_CTRL_CFG_IO_CFG3_MASK (0x1000U) 594 #define PPI_CMD_CTRL_CFG_IO_CFG3_SHIFT (12U) 595 #define PPI_CMD_CTRL_CFG_IO_CFG3_SET(x) (((uint32_t)(x) << PPI_CMD_CTRL_CFG_IO_CFG3_SHIFT) & PPI_CMD_CTRL_CFG_IO_CFG3_MASK) 596 #define PPI_CMD_CTRL_CFG_IO_CFG3_GET(x) (((uint32_t)(x) & PPI_CMD_CTRL_CFG_IO_CFG3_MASK) >> PPI_CMD_CTRL_CFG_IO_CFG3_SHIFT) 597 598 /* 599 * IO_CFG2 (RW) 600 * 601 */ 602 #define PPI_CMD_CTRL_CFG_IO_CFG2_MASK (0x100U) 603 #define PPI_CMD_CTRL_CFG_IO_CFG2_SHIFT (8U) 604 #define PPI_CMD_CTRL_CFG_IO_CFG2_SET(x) (((uint32_t)(x) << PPI_CMD_CTRL_CFG_IO_CFG2_SHIFT) & PPI_CMD_CTRL_CFG_IO_CFG2_MASK) 605 #define PPI_CMD_CTRL_CFG_IO_CFG2_GET(x) (((uint32_t)(x) & PPI_CMD_CTRL_CFG_IO_CFG2_MASK) >> PPI_CMD_CTRL_CFG_IO_CFG2_SHIFT) 606 607 /* 608 * IO_CFG1 (RW) 609 * 610 */ 611 #define PPI_CMD_CTRL_CFG_IO_CFG1_MASK (0x10U) 612 #define PPI_CMD_CTRL_CFG_IO_CFG1_SHIFT (4U) 613 #define PPI_CMD_CTRL_CFG_IO_CFG1_SET(x) (((uint32_t)(x) << PPI_CMD_CTRL_CFG_IO_CFG1_SHIFT) & PPI_CMD_CTRL_CFG_IO_CFG1_MASK) 614 #define PPI_CMD_CTRL_CFG_IO_CFG1_GET(x) (((uint32_t)(x) & PPI_CMD_CTRL_CFG_IO_CFG1_MASK) >> PPI_CMD_CTRL_CFG_IO_CFG1_SHIFT) 615 616 /* 617 * IO_CFG0 (RW) 618 * 619 * for OUT, it defines the output value(0 or 1); 620 * for IN, it defines whether to wait for ready(ready polarity is defined in ctrl_pad_pol) 621 */ 622 #define PPI_CMD_CTRL_CFG_IO_CFG0_MASK (0x1U) 623 #define PPI_CMD_CTRL_CFG_IO_CFG0_SHIFT (0U) 624 #define PPI_CMD_CTRL_CFG_IO_CFG0_SET(x) (((uint32_t)(x) << PPI_CMD_CTRL_CFG_IO_CFG0_SHIFT) & PPI_CMD_CTRL_CFG_IO_CFG0_MASK) 625 #define PPI_CMD_CTRL_CFG_IO_CFG0_GET(x) (((uint32_t)(x) & PPI_CMD_CTRL_CFG_IO_CFG0_MASK) >> PPI_CMD_CTRL_CFG_IO_CFG0_SHIFT) 626 627 628 629 /* CS register group index macro definition */ 630 #define PPI_CS_0 (0UL) 631 #define PPI_CS_1 (1UL) 632 #define PPI_CS_2 (2UL) 633 #define PPI_CS_3 (3UL) 634 635 /* CMD register group index macro definition */ 636 #define PPI_CMD_0 (0UL) 637 #define PPI_CMD_1 (1UL) 638 #define PPI_CMD_2 (2UL) 639 #define PPI_CMD_3 (3UL) 640 #define PPI_CMD_4 (4UL) 641 #define PPI_CMD_5 (5UL) 642 #define PPI_CMD_6 (6UL) 643 #define PPI_CMD_7 (7UL) 644 #define PPI_CMD_8 (8UL) 645 #define PPI_CMD_9 (9UL) 646 #define PPI_CMD_10 (10UL) 647 #define PPI_CMD_11 (11UL) 648 #define PPI_CMD_12 (12UL) 649 #define PPI_CMD_13 (13UL) 650 #define PPI_CMD_14 (14UL) 651 #define PPI_CMD_15 (15UL) 652 #define PPI_CMD_16 (16UL) 653 #define PPI_CMD_17 (17UL) 654 #define PPI_CMD_18 (18UL) 655 #define PPI_CMD_19 (19UL) 656 #define PPI_CMD_20 (20UL) 657 #define PPI_CMD_21 (21UL) 658 #define PPI_CMD_22 (22UL) 659 #define PPI_CMD_23 (23UL) 660 #define PPI_CMD_24 (24UL) 661 #define PPI_CMD_25 (25UL) 662 #define PPI_CMD_26 (26UL) 663 #define PPI_CMD_27 (27UL) 664 #define PPI_CMD_28 (28UL) 665 #define PPI_CMD_29 (29UL) 666 #define PPI_CMD_30 (30UL) 667 #define PPI_CMD_31 (31UL) 668 #define PPI_CMD_32 (32UL) 669 #define PPI_CMD_33 (33UL) 670 #define PPI_CMD_34 (34UL) 671 #define PPI_CMD_35 (35UL) 672 #define PPI_CMD_36 (36UL) 673 #define PPI_CMD_37 (37UL) 674 #define PPI_CMD_38 (38UL) 675 #define PPI_CMD_39 (39UL) 676 #define PPI_CMD_40 (40UL) 677 #define PPI_CMD_41 (41UL) 678 #define PPI_CMD_42 (42UL) 679 #define PPI_CMD_43 (43UL) 680 #define PPI_CMD_44 (44UL) 681 #define PPI_CMD_45 (45UL) 682 #define PPI_CMD_46 (46UL) 683 #define PPI_CMD_47 (47UL) 684 #define PPI_CMD_48 (48UL) 685 #define PPI_CMD_49 (49UL) 686 #define PPI_CMD_50 (50UL) 687 #define PPI_CMD_51 (51UL) 688 #define PPI_CMD_52 (52UL) 689 #define PPI_CMD_53 (53UL) 690 #define PPI_CMD_54 (54UL) 691 #define PPI_CMD_55 (55UL) 692 #define PPI_CMD_56 (56UL) 693 #define PPI_CMD_57 (57UL) 694 #define PPI_CMD_58 (58UL) 695 #define PPI_CMD_59 (59UL) 696 #define PPI_CMD_61 (61UL) 697 #define PPI_CMD_62 (62UL) 698 #define PPI_CMD_63 (63UL) 699 700 701 #endif /* HPM_PPI_H */ 702