1 /* 2 * Copyright (c) 2021 Chipsea Technologies (Shenzhen) Corp., Ltd. All rights reserved. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 #ifndef _CS1000LITE_LED_PWM_H_ 16 #define _CS1000LITE_LED_PWM_H_ 17 18 #include "chip.h" 19 20 // ============================================================================= 21 // MACROS 22 // ============================================================================= 23 24 // ============================================================================= 25 // TYPES 26 // ============================================================================= 27 28 // ============================================================================ 29 // CS1000LITE_LED_PWM_T 30 // ----------------------------------------------------------------------------- 31 /// 32 // ============================================================================= 33 #define REG_CS1000LITE_LED_PWM_BASE 0x50014000 34 35 typedef struct { 36 __IO uint32_t tmr0_ld_value; //0x00000000 37 __IO uint32_t Reserved_00000004; //0x00000004 38 __IO uint32_t tmr0_cnt_value; //0x00000008 39 __IO uint32_t Reserved_0000000C; //0x0000000C 40 __IO uint32_t tmr0_cfg; //0x00000010 41 __IO uint32_t tmr0_int_ctrl; //0x00000014 42 __IO uint32_t tmr0_cnt_read; //0x00000018 43 __IO uint32_t Reserved_0000001C; //0x0000001C 44 __IO uint32_t tmr1_ld_value; //0x00000020 45 __IO uint32_t Reserved_00000024; //0x00000024 46 __IO uint32_t tmr1_cnt_value; //0x00000028 47 __IO uint32_t Reserved_0000002C; //0x0000002C 48 __IO uint32_t tmr1_cfg; //0x00000030 49 __IO uint32_t tmr1_int_ctrl; //0x00000034 50 __IO uint32_t tmr1_cnt_read; //0x00000038 51 __IO uint32_t Reserved_0000003C; //0x0000003C 52 __IO uint32_t tmr2_ld_value; //0x00000040 53 __IO uint32_t Reserved_00000044; //0x00000044 54 __IO uint32_t tmr2_cnt_value; //0x00000048 55 __IO uint32_t Reserved_0000004C; //0x0000004C 56 __IO uint32_t tmr2_cfg; //0x00000050 57 __IO uint32_t tmr2_int_ctrl; //0x00000054 58 __IO uint32_t tmr2_cnt_read; //0x00000058 59 __IO uint32_t Reserved_0000005C[41]; //0x0000005C 60 __IO uint32_t pwm0_sta_val; //0x00000100 61 __IO uint32_t pwm0_end_val; //0x00000104 62 __IO uint32_t pwm0_step_cfg0; //0x00000108 63 __IO uint32_t pwm0_step_cfg1; //0x0000010C 64 __IO uint32_t pwm0_cfg; //0x00000110 65 __IO uint32_t pwm0_int_ctrl; //0x00000114 66 __IO uint32_t pwm0_end_val_use; //0x00000118 67 __IO uint32_t pwm0_step_cnt; //0x0000011C 68 __IO uint32_t pwm1_sta_val; //0x00000120 69 __IO uint32_t pwm1_end_val; //0x00000124 70 __IO uint32_t pwm1_step_cfg0; //0x00000128 71 __IO uint32_t pwm1_step_cfg1; //0x0000012C 72 __IO uint32_t pwm1_cfg; //0x00000130 73 __IO uint32_t pwm1_int_ctrl; //0x00000134 74 __IO uint32_t pwm1_end_val_use; //0x00000138 75 __IO uint32_t pwm1_step_cnt; //0x0000013C 76 __IO uint32_t pwm2_sta_val; //0x00000140 77 __IO uint32_t pwm2_end_val; //0x00000144 78 __IO uint32_t pwm2_step_cfg0; //0x00000148 79 __IO uint32_t pwm2_step_cfg1; //0x0000014C 80 __IO uint32_t pwm2_cfg; //0x00000150 81 __IO uint32_t pwm2_int_ctrl; //0x00000154 82 __IO uint32_t pwm2_end_val_use; //0x00000158 83 __IO uint32_t pwm2_step_cnt; //0x0000015C 84 __IO uint32_t pwm3_sta_val; //0x00000160 85 __IO uint32_t pwm3_end_val; //0x00000164 86 __IO uint32_t pwm3_step_cfg0; //0x00000168 87 __IO uint32_t pwm3_step_cfg1; //0x0000016C 88 __IO uint32_t pwm3_cfg; //0x00000170 89 __IO uint32_t pwm3_int_ctrl; //0x00000174 90 __IO uint32_t pwm3_end_val_use; //0x00000178 91 __IO uint32_t pwm3_step_cnt; //0x0000017C 92 __IO uint32_t pwm4_sta_val; //0x00000180 93 __IO uint32_t pwm4_end_val; //0x00000184 94 __IO uint32_t pwm4_step_cfg0; //0x00000188 95 __IO uint32_t pwm4_step_cfg1; //0x0000018C 96 __IO uint32_t pwm4_cfg; //0x00000190 97 __IO uint32_t pwm4_int_ctrl; //0x00000194 98 __IO uint32_t pwm4_end_val_use; //0x00000198 99 __IO uint32_t pwm4_step_cnt; //0x0000019C 100 __IO uint32_t pwm5_sta_val; //0x000001A0 101 __IO uint32_t pwm5_end_val; //0x000001A4 102 __IO uint32_t pwm5_step_cfg0; //0x000001A8 103 __IO uint32_t pwm5_step_cfg1; //0x000001AC 104 __IO uint32_t pwm5_cfg; //0x000001B0 105 __IO uint32_t pwm5_int_ctrl; //0x000001B4 106 __IO uint32_t pwm5_end_val_use; //0x000001B8 107 __IO uint32_t pwm5_step_cnt; //0x000001BC 108 } HWP_CS1000LITE_LED_PWM_T; 109 110 static HWP_CS1000LITE_LED_PWM_T * const cs1000liteLedPwm = ((HWP_CS1000LITE_LED_PWM_T *)REG_CS1000LITE_LED_PWM_BASE); 111 112 113 //tmr0_ld_value 114 #define CS1000LITE_LED_PWM_TMR_LD_VALUE(n) (((n)&0xFFFFFFFF)<<0) 115 116 //tmr0_cnt_value 117 #define CS1000LITE_LED_PWM_TMR_CNT_VALUE(n) (((n)&0xFFFFFFFF)<<0) 118 119 //tmr0_cfg 120 #define CS1000LITE_LED_PWM_TMR_MODE (1<<0) 121 #define CS1000LITE_LED_PWM_TMR_RUN (1<<1) 122 123 //tmr0_int_ctrl 124 #define CS1000LITE_LED_PWM_TMR_INT_EN (1<<0) 125 #define CS1000LITE_LED_PWM_TMR_INT_RAW (1<<1) 126 #define CS1000LITE_LED_PWM_TMR_INT_STATUS (1<<2) 127 #define CS1000LITE_LED_PWM_TMR_INT_CLR (1<<3) 128 129 //tmr0_cnt_read 130 #define CS1000LITE_LED_PWM_TMR_CNT_READ(n) (((n)&0xFFFFFFFF)<<0) 131 132 //tmr1_ld_value 133 //#define CS1000LITE_LED_PWM_TMR_LD_VALUE(n) (((n)&0xFFFFFFFF)<<0) 134 135 //tmr1_cnt_value 136 //#define CS1000LITE_LED_PWM_TMR_CNT_VALUE(n) (((n)&0xFFFFFFFF)<<0) 137 138 //tmr1_cfg 139 //#define CS1000LITE_LED_PWM_TMR_MODE (1<<0) 140 //#define CS1000LITE_LED_PWM_TMR_RUN (1<<1) 141 142 //tmr1_int_ctrl 143 //#define CS1000LITE_LED_PWM_TMR_INT_EN (1<<0) 144 //#define CS1000LITE_LED_PWM_TMR_INT_RAW (1<<1) 145 //#define CS1000LITE_LED_PWM_TMR_INT_STATUS (1<<2) 146 //#define CS1000LITE_LED_PWM_TMR_INT_CLR (1<<3) 147 148 //tmr1_cnt_read 149 //#define CS1000LITE_LED_PWM_TMR_CNT_READ(n) (((n)&0xFFFFFFFF)<<0) 150 151 //tmr2_ld_value 152 //#define CS1000LITE_LED_PWM_TMR_LD_VALUE(n) (((n)&0xFFFFFFFF)<<0) 153 154 //tmr2_cnt_value 155 //#define CS1000LITE_LED_PWM_TMR_CNT_VALUE(n) (((n)&0xFFFFFFFF)<<0) 156 157 //tmr2_cfg 158 //#define CS1000LITE_LED_PWM_TMR_MODE (1<<0) 159 //#define CS1000LITE_LED_PWM_TMR_RUN (1<<1) 160 161 //tmr2_int_ctrl 162 //#define CS1000LITE_LED_PWM_TMR_INT_EN (1<<0) 163 //#define CS1000LITE_LED_PWM_TMR_INT_RAW (1<<1) 164 //#define CS1000LITE_LED_PWM_TMR_INT_STATUS (1<<2) 165 //#define CS1000LITE_LED_PWM_TMR_INT_CLR (1<<3) 166 167 //tmr2_cnt_read 168 #define CS1000LITE_LED_PWM_TMR2_CNT_READ(n) (((n)&0xFFFFFFFF)<<0) 169 170 //pwm0_sta_val 171 #define CS1000LITE_LED_PWM_PWM_STA_VAL(n) (((n)&0xFFFFFFFF)<<0) 172 173 //pwm0_end_val 174 #define CS1000LITE_LED_PWM_PWM_END_VAL(n) (((n)&0xFFFFFFFF)<<0) 175 176 //pwm0_step_cfg0 177 #define CS1000LITE_LED_PWM_PWM_STEP_CYC(n) (((n)&0xFFFF)<<0) 178 #define CS1000LITE_LED_PWM_PWM_STEP_NUM(n) (((n)&0xFFFF)<<16) 179 180 //pwm0_step_cfg1 181 #define CS1000LITE_LED_PWM_PWM_STEP_VALUE(n) (((n)&0xFFFFFFFF)<<0) 182 183 //pwm0_cfg 184 #define CS1000LITE_LED_PWM_PWM_RUN (1<<0) 185 #define CS1000LITE_LED_PWM_PWM_INC_MODE (1<<1) 186 #define CS1000LITE_LED_PWM_PWM_DEFAULT_VAL (1<<2) 187 #define CS1000LITE_LED_PWM_PWM_TMR_SEL(n) (((n)&3)<<16) 188 #define CS1000LITE_LED_PWM_PWM_UPDATE (1<<31) 189 190 //pwm0_int_ctrl 191 #define CS1000LITE_LED_PWM_PWM_INT_EN (1<<0) 192 #define CS1000LITE_LED_PWM_PWM_INT_RAW (1<<1) 193 #define CS1000LITE_LED_PWM_PWM_INT_STATUS (1<<2) 194 #define CS1000LITE_LED_PWM_PWM_INT_CLR (1<<3) 195 196 //pwm0_end_val_use 197 #define CS1000LITE_LED_PWM_PWM_END_VAL_USE(n) (((n)&0xFFFFFFFF)<<0) 198 199 //pwm0_step_cnt 200 #define CS1000LITE_LED_PWM_PWM_STEP_CYC_CNT(n) (((n)&0xFFFF)<<0) 201 #define CS1000LITE_LED_PWM_PWM_STEP_NUM_CNT(n) (((n)&0xFFFF)<<16) 202 203 //pwm1_sta_val 204 //#define CS1000LITE_LED_PWM_PWM_STA_VAL(n) (((n)&0xFFFFFFFF)<<0) 205 206 //pwm1_end_val 207 //#define CS1000LITE_LED_PWM_PWM_END_VAL(n) (((n)&0xFFFFFFFF)<<0) 208 209 //pwm1_step_cfg0 210 //#define CS1000LITE_LED_PWM_PWM_STEP_CYC(n) (((n)&0xFFFF)<<0) 211 //#define CS1000LITE_LED_PWM_PWM_STEP_NUM(n) (((n)&0xFFFF)<<16) 212 213 //pwm1_step_cfg1 214 //#define CS1000LITE_LED_PWM_PWM_STEP_VALUE(n) (((n)&0xFFFFFFFF)<<0) 215 216 //pwm1_cfg 217 //#define CS1000LITE_LED_PWM_PWM_RUN (1<<0) 218 //#define CS1000LITE_LED_PWM_PWM_INC_MODE (1<<1) 219 //#define CS1000LITE_LED_PWM_PWM_DEFAULT_VAL (1<<2) 220 //#define CS1000LITE_LED_PWM_PWM_TMR_SEL(n) (((n)&3)<<16) 221 //#define CS1000LITE_LED_PWM_PWM_UPDATE (1<<31) 222 223 //pwm1_int_ctrl 224 //#define CS1000LITE_LED_PWM_PWM_INT_EN (1<<0) 225 //#define CS1000LITE_LED_PWM_PWM_INT_RAW (1<<1) 226 //#define CS1000LITE_LED_PWM_PWM_INT_STATUS (1<<2) 227 //#define CS1000LITE_LED_PWM_PWM_INT_CLR (1<<3) 228 229 //pwm1_end_val_use 230 //#define CS1000LITE_LED_PWM_PWM_END_VAL_USE(n) (((n)&0xFFFFFFFF)<<0) 231 232 //pwm1_step_cnt 233 //#define CS1000LITE_LED_PWM_PWM_STEP_CYC_CNT(n) (((n)&0xFFFF)<<0) 234 //#define CS1000LITE_LED_PWM_PWM_STEP_NUM_CNT(n) (((n)&0xFFFF)<<16) 235 236 //pwm2_sta_val 237 //#define CS1000LITE_LED_PWM_PWM_STA_VAL(n) (((n)&0xFFFFFFFF)<<0) 238 239 //pwm2_end_val 240 //#define CS1000LITE_LED_PWM_PWM_END_VAL(n) (((n)&0xFFFFFFFF)<<0) 241 242 //pwm2_step_cfg0 243 //#define CS1000LITE_LED_PWM_PWM_STEP_CYC(n) (((n)&0xFFFF)<<0) 244 //#define CS1000LITE_LED_PWM_PWM_STEP_NUM(n) (((n)&0xFFFF)<<16) 245 246 //pwm2_step_cfg1 247 //#define CS1000LITE_LED_PWM_PWM_STEP_VALUE(n) (((n)&0xFFFFFFFF)<<0) 248 249 //pwm2_cfg 250 //#define CS1000LITE_LED_PWM_PWM_RUN (1<<0) 251 //#define CS1000LITE_LED_PWM_PWM_INC_MODE (1<<1) 252 //#define CS1000LITE_LED_PWM_PWM_DEFAULT_VAL (1<<2) 253 //#define CS1000LITE_LED_PWM_PWM_TMR_SEL(n) (((n)&3)<<16) 254 //#define CS1000LITE_LED_PWM_PWM_UPDATE (1<<31) 255 256 //pwm2_int_ctrl 257 //#define CS1000LITE_LED_PWM_PWM_INT_EN (1<<0) 258 //#define CS1000LITE_LED_PWM_PWM_INT_RAW (1<<1) 259 //#define CS1000LITE_LED_PWM_PWM_INT_STATUS (1<<2) 260 //#define CS1000LITE_LED_PWM_PWM_INT_CLR (1<<3) 261 262 //pwm2_end_val_use 263 //#define CS1000LITE_LED_PWM_PWM_END_VAL_USE(n) (((n)&0xFFFFFFFF)<<0) 264 265 //pwm2_step_cnt 266 //#define CS1000LITE_LED_PWM_PWM_STEP_CYC_CNT(n) (((n)&0xFFFF)<<0) 267 //#define CS1000LITE_LED_PWM_PWM_STEP_NUM_CNT(n) (((n)&0xFFFF)<<16) 268 269 //pwm3_sta_val 270 //#define CS1000LITE_LED_PWM_PWM_STA_VAL(n) (((n)&0xFFFFFFFF)<<0) 271 272 //pwm3_end_val 273 //#define CS1000LITE_LED_PWM_PWM_END_VAL(n) (((n)&0xFFFFFFFF)<<0) 274 275 //pwm3_step_cfg0 276 //#define CS1000LITE_LED_PWM_PWM_STEP_CYC(n) (((n)&0xFFFF)<<0) 277 //#define CS1000LITE_LED_PWM_PWM_STEP_NUM(n) (((n)&0xFFFF)<<16) 278 279 //pwm3_step_cfg1 280 //#define CS1000LITE_LED_PWM_PWM_STEP_VALUE(n) (((n)&0xFFFFFFFF)<<0) 281 282 //pwm3_cfg 283 //#define CS1000LITE_LED_PWM_PWM_RUN (1<<0) 284 //#define CS1000LITE_LED_PWM_PWM_INC_MODE (1<<1) 285 //#define CS1000LITE_LED_PWM_PWM_DEFAULT_VAL (1<<2) 286 //#define CS1000LITE_LED_PWM_PWM_TMR_SEL(n) (((n)&3)<<16) 287 //#define CS1000LITE_LED_PWM_PWM_UPDATE (1<<31) 288 289 //pwm3_int_ctrl 290 //#define CS1000LITE_LED_PWM_PWM_INT_EN (1<<0) 291 //#define CS1000LITE_LED_PWM_PWM_INT_RAW (1<<1) 292 //#define CS1000LITE_LED_PWM_PWM_INT_STATUS (1<<2) 293 //#define CS1000LITE_LED_PWM_PWM_INT_CLR (1<<3) 294 295 //pwm3_end_val_use 296 //#define CS1000LITE_LED_PWM_PWM_END_VAL_USE(n) (((n)&0xFFFFFFFF)<<0) 297 298 //pwm3_step_cnt 299 //#define CS1000LITE_LED_PWM_PWM_STEP_CYC_CNT(n) (((n)&0xFFFF)<<0) 300 //#define CS1000LITE_LED_PWM_PWM_STEP_NUM_CNT(n) (((n)&0xFFFF)<<16) 301 302 //pwm4_sta_val 303 //#define CS1000LITE_LED_PWM_PWM_STA_VAL(n) (((n)&0xFFFFFFFF)<<0) 304 305 //pwm4_end_val 306 //#define CS1000LITE_LED_PWM_PWM_END_VAL(n) (((n)&0xFFFFFFFF)<<0) 307 308 //pwm4_step_cfg0 309 //#define CS1000LITE_LED_PWM_PWM_STEP_CYC(n) (((n)&0xFFFF)<<0) 310 //#define CS1000LITE_LED_PWM_PWM_STEP_NUM(n) (((n)&0xFFFF)<<16) 311 312 //pwm4_step_cfg1 313 //#define CS1000LITE_LED_PWM_PWM_STEP_VALUE(n) (((n)&0xFFFFFFFF)<<0) 314 315 //pwm4_cfg 316 //#define CS1000LITE_LED_PWM_PWM_RUN (1<<0) 317 //#define CS1000LITE_LED_PWM_PWM_INC_MODE (1<<1) 318 //#define CS1000LITE_LED_PWM_PWM_DEFAULT_VAL (1<<2) 319 //#define CS1000LITE_LED_PWM_PWM_TMR_SEL(n) (((n)&3)<<16) 320 //#define CS1000LITE_LED_PWM_PWM_UPDATE (1<<31) 321 322 //pwm4_int_ctrl 323 //#define CS1000LITE_LED_PWM_PWM_INT_EN (1<<0) 324 //#define CS1000LITE_LED_PWM_PWM_INT_RAW (1<<1) 325 //#define CS1000LITE_LED_PWM_PWM_INT_STATUS (1<<2) 326 //#define CS1000LITE_LED_PWM_PWM_INT_CLR (1<<3) 327 328 //pwm4_end_val_use 329 //#define CS1000LITE_LED_PWM_PWM_END_VAL_USE(n) (((n)&0xFFFFFFFF)<<0) 330 331 //pwm4_step_cnt 332 //#define CS1000LITE_LED_PWM_PWM_STEP_CYC_CNT(n) (((n)&0xFFFF)<<0) 333 //#define CS1000LITE_LED_PWM_PWM_STEP_NUM_CNT(n) (((n)&0xFFFF)<<16) 334 335 //pwm5_sta_val 336 //#define CS1000LITE_LED_PWM_PWM_STA_VAL(n) (((n)&0xFFFFFFFF)<<0) 337 338 //pwm5_end_val 339 //#define CS1000LITE_LED_PWM_PWM_END_VAL(n) (((n)&0xFFFFFFFF)<<0) 340 341 //pwm5_step_cfg0 342 //#define CS1000LITE_LED_PWM_PWM_STEP_CYC(n) (((n)&0xFFFF)<<0) 343 //#define CS1000LITE_LED_PWM_PWM_STEP_NUM(n) (((n)&0xFFFF)<<16) 344 345 //pwm5_step_cfg1 346 //#define CS1000LITE_LED_PWM_PWM_STEP_VALUE(n) (((n)&0xFFFFFFFF)<<0) 347 348 //pwm5_cfg 349 //#define CS1000LITE_LED_PWM_PWM_RUN (1<<0) 350 //#define CS1000LITE_LED_PWM_PWM_INC_MODE (1<<1) 351 //#define CS1000LITE_LED_PWM_PWM_DEFAULT_VAL (1<<2) 352 //#define CS1000LITE_LED_PWM_PWM_TMR_SEL(n) (((n)&3)<<16) 353 //#define CS1000LITE_LED_PWM_PWM_UPDATE (1<<31) 354 355 //pwm5_int_ctrl 356 //#define CS1000LITE_LED_PWM_PWM_INT_EN (1<<0) 357 //#define CS1000LITE_LED_PWM_PWM_INT_RAW (1<<1) 358 //#define CS1000LITE_LED_PWM_PWM_INT_STATUS (1<<2) 359 //#define CS1000LITE_LED_PWM_PWM_INT_CLR (1<<3) 360 361 //pwm5_end_val_use 362 //#define CS1000LITE_LED_PWM_PWM_END_VAL_USE(n) (((n)&0xFFFFFFFF)<<0) 363 364 //pwm5_step_cnt 365 //#define CS1000LITE_LED_PWM_PWM_STEP_CYC_CNT(n) (((n)&0xFFFF)<<0) 366 //#define CS1000LITE_LED_PWM_PWM_STEP_NUM_CNT(n) (((n)&0xFFFF)<<16) 367 368 #endif 369