|
350 | 350 | #error "Invalid IRQ priority assigned to ADC3" |
351 | 351 | #endif |
352 | 352 |
|
| 353 | +#if !defined(STM32_ENFORCE_H7_REV_XY) |
353 | 354 | /* ADC clock source checks.*/ |
| 355 | +#if (STM32_D1HPRE == STM32_D1HPRE_DIV1) |
| 356 | +#define STM32_ADC_SCLK STM32_SYSCLK |
| 357 | +#else |
| 358 | +#define STM32_ADC_SCLK (STM32_SYSCLK / 2) |
| 359 | +#endif |
| 360 | + |
| 361 | +#if STM32_ADC_ADC12_CLOCK_MODE == ADC_CCR_CKMODE_ADCCK |
| 362 | +/* CHTODO: also check ADC_CCR_PRESC.*/ |
| 363 | +#define STM32_ADC12_CLOCK (STM32_ADCCLK / 2) |
| 364 | +#elif STM32_ADC_ADC12_CLOCK_MODE == ADC_CCR_CKMODE_AHB_DIV1 |
| 365 | +#define STM32_ADC12_CLOCK (STM32_ADC_SCLK / 1 / 2) |
| 366 | +#elif STM32_ADC_ADC12_CLOCK_MODE == ADC_CCR_CKMODE_AHB_DIV2 |
| 367 | +#define STM32_ADC12_CLOCK (STM32_ADC_SCLK / 2 / 2) |
| 368 | +#elif STM32_ADC_ADC12_CLOCK_MODE == ADC_CCR_CKMODE_AHB_DIV4 |
| 369 | +#define STM32_ADC12_CLOCK (STM32_ADC_SCLK / 4 / 2) |
| 370 | +#else |
| 371 | +#error "invalid clock mode selected for STM32_ADC_ADC12_CLOCK_MODE" |
| 372 | +#endif |
| 373 | + |
| 374 | +#if STM32_ADC_ADC3_CLOCK_MODE == ADC_CCR_CKMODE_ADCCK |
| 375 | +/* CHTODO: also check ADC_CCR_PRESC.*/ |
| 376 | +#define STM32_ADC3_CLOCK (STM32_ADCCLK / 2) |
| 377 | +#elif STM32_ADC_ADC3_CLOCK_MODE == ADC_CCR_CKMODE_AHB_DIV1 |
| 378 | +#define STM32_ADC3_CLOCK (STM32_ADC_SCLK / 1 / 2) |
| 379 | +#elif STM32_ADC_ADC3_CLOCK_MODE == ADC_CCR_CKMODE_AHB_DIV2 |
| 380 | +#define STM32_ADC3_CLOCK (STM32_ADC_SCLK / 2 / 2) |
| 381 | +#elif STM32_ADC_ADC3_CLOCK_MODE == ADC_CCR_CKMODE_AHB_DIV4 |
| 382 | +#define STM32_ADC3_CLOCK (STM32_ADC_SCLK / 4 / 2) |
| 383 | +#else |
| 384 | +#error "invalid clock mode selected for STM32_ADC_ADC3_CLOCK_MODE" |
| 385 | +#endif |
| 386 | + |
| 387 | +#else /* defined(STM32_ENFORCE_H7_REV_XY) */ |
| 388 | + |
354 | 389 | #if STM32_ADC_ADC12_CLOCK_MODE == ADC_CCR_CKMODE_ADCCK |
355 | 390 | #define STM32_ADC12_CLOCK STM32_ADCCLK |
356 | 391 | #elif STM32_ADC_ADC12_CLOCK_MODE == ADC_CCR_CKMODE_AHB_DIV1 |
|
375 | 410 | #error "invalid clock mode selected for STM32_ADC_ADC3_CLOCK_MODE" |
376 | 411 | #endif |
377 | 412 |
|
| 413 | +#endif /* defined(STM32_ENFORCE_H7_REV_XY) */ |
| 414 | + |
378 | 415 | #if STM32_ADC12_CLOCK > STM32_ADCCLK_MAX |
379 | 416 | #error "STM32_ADC12_CLOCK exceeding maximum frequency (STM32_ADCCLK_MAX)" |
380 | 417 | #endif |
|
0 commit comments