|
1 | 1 | /* |
2 | | - * Copyright (c) 2020 Raspberry Pi (Trading) Ltd. |
| 2 | + * Copyright (c) 2024 Raspberry Pi Ltd. |
3 | 3 | * |
4 | 4 | * SPDX-License-Identifier: BSD-3-Clause |
5 | 5 | */ |
|
20 | 20 | #define NUM_CORES _u(2) |
21 | 21 | #define NUM_DMA_CHANNELS _u(12) |
22 | 22 | #define NUM_DMA_TIMERS _u(4) |
| 23 | +#define NUM_DMA_IRQS _u(2) |
23 | 24 | #define NUM_IRQS _u(32) |
24 | 25 | #define NUM_USER_IRQS _u(6) |
25 | 26 | #define NUM_PIOS _u(2) |
26 | 27 | #define NUM_PIO_STATE_MACHINES _u(4) |
| 28 | +#define NUM_PIO_IRQS _u(2) |
27 | 29 | #define NUM_PWM_SLICES _u(8) |
| 30 | +#define NUM_PWM_IRQS _u(1) |
28 | 31 | #define NUM_SPIN_LOCKS _u(32) |
29 | 32 | #define NUM_UARTS _u(2) |
30 | 33 | #define NUM_I2CS _u(2) |
31 | 34 | #define NUM_SPIS _u(2) |
32 | | -#define NUM_TIMERS _u(4) |
| 35 | +#define NUM_GENERIC_TIMERS _u(1) |
| 36 | +#define NUM_ALARMS _u(4) |
| 37 | +#define ADC_BASE_PIN _u(26) |
33 | 38 | #define NUM_ADC_CHANNELS _u(5) |
34 | | - |
| 39 | +#define NUM_RESETS _u(24) |
35 | 40 | #define NUM_BANK0_GPIOS _u(30) |
36 | 41 | #define NUM_QSPI_GPIOS _u(6) |
37 | 42 |
|
38 | 43 | #define PIO_INSTRUCTION_COUNT _u(32) |
39 | 44 |
|
40 | | -// PICO_CONFIG: XOSC_KHZ, The crystal oscillator frequency in kHz, type=int, default=12000, advanced=true, group=hardware_base |
| 45 | +#define USBCTRL_DPRAM_SIZE _u(4096) |
| 46 | + |
| 47 | +#define HAS_SIO_DIVIDER 1 |
| 48 | +#define HAS_RP2040_RTC 1 |
| 49 | +// PICO_CONFIG: XOSC_HZ, Crystal oscillator frequency in Hz, type=int, default=12000000, advanced=true, group=hardware_base |
41 | 50 | // NOTE: The system and USB clocks are generated from the frequency using two PLLs. |
42 | | -// If you override this define, or SYS_CLK_KHZ/USB_CLK_KHZ below, you will *also* need to add your own adjusted PLL set-up defines to |
| 51 | +// If you override this define, or SYS_CLK_HZ/USB_CLK_HZ below, you will *also* need to add your own adjusted PLL set-up defines to |
43 | 52 | // override the defaults which live in src/rp2_common/hardware_clocks/include/hardware/clocks.h |
44 | 53 | // Please see the comments there about calculating the new PLL setting values. |
45 | | -#ifndef XOSC_KHZ |
46 | | -#define XOSC_KHZ _u(12000) |
| 54 | +#ifndef XOSC_HZ |
| 55 | +#ifdef XOSC_KHZ |
| 56 | +#define XOSC_HZ ((XOSC_KHZ) * _u(1000)) |
| 57 | +#elif defined(XOSC_MHZ) |
| 58 | +#define XOSC_HZ ((XOSC_MHZ) * _u(1000000)) |
| 59 | +#else |
| 60 | +#define XOSC_HZ _u(12000000) |
| 61 | +#endif |
| 62 | +#endif |
| 63 | + |
| 64 | +// PICO_CONFIG: PICO_USE_FASTEST_SUPPORTED_CLOCK, Use the fastest officially supported clock by default, type=bool, default=0, group=hardware_base |
| 65 | +#ifndef PICO_USE_FASTEST_SUPPORTED_CLOCK |
| 66 | +#define PICO_USE_FASTEST_SUPPORTED_CLOCK 0 |
| 67 | +#endif |
| 68 | + |
| 69 | +// PICO_CONFIG: SYS_CLK_HZ, System operating frequency in Hz, type=int, default=125000000, advanced=true, group=hardware_base |
| 70 | +#ifndef SYS_CLK_HZ |
| 71 | +#ifdef SYS_CLK_KHZ |
| 72 | +#define SYS_CLK_HZ ((SYS_CLK_KHZ) * _u(1000)) |
| 73 | +#elif defined(SYS_CLK_MHZ) |
| 74 | +#define SYS_CLK_HZ ((SYS_CLK_MHZ) * _u(1000000)) |
| 75 | +#else |
| 76 | +#if PICO_USE_FASTEST_SUPPORTED_CLOCK |
| 77 | +#define SYS_CLK_HZ _u(200000000) |
| 78 | +#else |
| 79 | +#define SYS_CLK_HZ _u(125000000) |
| 80 | +#endif |
| 81 | +#endif |
47 | 82 | #endif |
48 | 83 |
|
49 | | -// PICO_CONFIG: SYS_CLK_KHZ, The system operating frequency in kHz, type=int, default=125000, advanced=true, group=hardware_base |
50 | | -#ifndef SYS_CLK_KHZ |
51 | | -#define SYS_CLK_KHZ _u(125000) |
| 84 | +// PICO_CONFIG: USB_CLK_HZ, USB clock frequency. Must be 48MHz for the USB interface to operate correctly, type=int, default=48000000, advanced=true, group=hardware_base |
| 85 | +#ifndef USB_CLK_HZ |
| 86 | +#ifdef USB_CLK_KHZ |
| 87 | +#define USB_CLK_HZ ((USB_CLK_KHZ) * _u(1000)) |
| 88 | +#elif defined(USB_CLK_MHZ) |
| 89 | +#define USB_CLK_HZ ((USB_CLK_MHZ) * _u(1000000)) |
| 90 | +#else |
| 91 | +#define USB_CLK_HZ _u(48000000) |
| 92 | +#endif |
52 | 93 | #endif |
53 | 94 |
|
54 | | -// PICO_CONFIG: USB_CLK_KHZ, USB clock frequency. Must be 48MHz for the USB interface to operate correctly, type=int, default=48000, advanced=true, group=hardware_base |
55 | | -#ifndef USB_CLK_KHZ |
56 | | -#define USB_CLK_KHZ _u(48000) |
| 95 | +// For backwards compatibility define XOSC_KHZ if the frequency is indeed an integer number of Khz. |
| 96 | +#if defined(XOSC_HZ) && !defined(XOSC_KHZ) && (XOSC_HZ % 1000 == 0) |
| 97 | +#define XOSC_KHZ (XOSC_HZ / 1000) |
57 | 98 | #endif |
58 | 99 |
|
59 | 100 | // For backwards compatibility define XOSC_MHZ if the frequency is indeed an integer number of Mhz. |
60 | 101 | #if defined(XOSC_KHZ) && !defined(XOSC_MHZ) && (XOSC_KHZ % 1000 == 0) |
61 | 102 | #define XOSC_MHZ (XOSC_KHZ / 1000) |
62 | 103 | #endif |
63 | 104 |
|
| 105 | +// For backwards compatibility define SYS_CLK_KHZ if the frequency is indeed an integer number of Khz. |
| 106 | +#if defined(SYS_CLK_HZ) && !defined(SYS_CLK_KHZ) && (SYS_CLK_HZ % 1000 == 0) |
| 107 | +#define SYS_CLK_KHZ (SYS_CLK_HZ / 1000) |
| 108 | +#endif |
| 109 | + |
64 | 110 | // For backwards compatibility define SYS_CLK_MHZ if the frequency is indeed an integer number of Mhz. |
65 | 111 | #if defined(SYS_CLK_KHZ) && !defined(SYS_CLK_MHZ) && (SYS_CLK_KHZ % 1000 == 0) |
66 | 112 | #define SYS_CLK_MHZ (SYS_CLK_KHZ / 1000) |
67 | 113 | #endif |
68 | 114 |
|
| 115 | +// For backwards compatibility define USB_CLK_KHZ if the frequency is indeed an integer number of Khz. |
| 116 | +#if defined(USB_CLK_HZ) && !defined(USB_CLK_KHZ) && (USB_CLK_HZ % 1000 == 0) |
| 117 | +#define USB_CLK_KHZ (USB_CLK_HZ / 1000) |
| 118 | +#endif |
| 119 | + |
69 | 120 | // For backwards compatibility define USB_CLK_MHZ if the frequency is indeed an integer number of Mhz. |
70 | 121 | #if defined(USB_CLK_KHZ) && !defined(USB_CLK_MHZ) && (USB_CLK_KHZ % 1000 == 0) |
71 | 122 | #define USB_CLK_MHZ (USB_CLK_KHZ / 1000) |
|
74 | 125 | #define FIRST_USER_IRQ (NUM_IRQS - NUM_USER_IRQS) |
75 | 126 | #define VTABLE_FIRST_IRQ 16 |
76 | 127 |
|
77 | | -#endif |
| 128 | +#define REG_FIELD_WIDTH(f) (f ## _MSB + 1 - f ## _LSB) |
78 | 129 |
|
| 130 | +#endif |
0 commit comments