diff options
Diffstat (limited to 'nuttx/arch/mips/src/pic32mz/pic32mz-config.h')
-rw-r--r-- | nuttx/arch/mips/src/pic32mz/pic32mz-config.h | 791 |
1 files changed, 161 insertions, 630 deletions
diff --git a/nuttx/arch/mips/src/pic32mz/pic32mz-config.h b/nuttx/arch/mips/src/pic32mz/pic32mz-config.h index fee820773..c00062a96 100644 --- a/nuttx/arch/mips/src/pic32mz/pic32mz-config.h +++ b/nuttx/arch/mips/src/pic32mz/pic32mz-config.h @@ -41,458 +41,13 @@ ************************************************************************************/ #include <nuttx/config.h> + +#include <arch/chip/chip.h> #include <arch/board/board.h> /************************************************************************************ * Pre-processor Definitions ************************************************************************************/ -/* Interrupt Priorities *************************************************************/ - -#ifndef CONFIG_PIC32MZ_CTPRIO /* Core Timer Interrupt */ -# define CONFIG_PIC32MZ_CTPRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_CTPRIO < 4 -# error "CONFIG_PIC32MZ_CTPRIO is too small" -#endif -#if CONFIG_PIC32MZ_CTPRIO > 31 -# error "CONFIG_PIC32MZ_CTPRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_CS0PRIO /* Core Software Interrupt 0 */ -# define CONFIG_PIC32MZ_CS0PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_CS0PRIO < 4 -# error "CONFIG_PIC32MZ_CS0PRIO is too small" -#endif -#if CONFIG_PIC32MZ_CS0PRIO > 31 -# error "CONFIG_PIC32MZ_CS0PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_CS1PRIO /* Core Software Interrupt 1 */ -# define CONFIG_PIC32MZ_CS1PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_CS1PRIO < 4 -# error "CONFIG_PIC32MZ_CS1PRIO is too small" -#endif -#if CONFIG_PIC32MZ_CS1PRIO > 31 -# error "CONFIG_PIC32MZ_CS1PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_INT0PRIO /* External interrupt 0 */ -# define CONFIG_PIC32MZ_INT0PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_INT0PRIO < 4 -# error "CONFIG_PIC32MZ_INT0PRIO is too small" -#endif -#if CONFIG_PIC32MZ_INT0PRIO > 31 -# error "CONFIG_PIC32MZ_INT0PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_INT1PRIO /* External interrupt 1 */ -# define CONFIG_PIC32MZ_INT1PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_INT1PRIO < 4 -# error "CONFIG_PIC32MZ_INT1PRIO is too small" -#endif -#if CONFIG_PIC32MZ_INT1PRIO > 31 -# error "CONFIG_PIC32MZ_INT1PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_INT2PRIO /* External interrupt 2 */ -# define CONFIG_PIC32MZ_INT2PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_INT2PRIO < 4 -# error "CONFIG_PIC32MZ_INT2PRIO is too small" -#endif -#if CONFIG_PIC32MZ_INT2PRIO > 31 -# error "CONFIG_PIC32MZ_INT2PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_INT3PRIO /* External interrupt 3 */ -# define CONFIG_PIC32MZ_INT3PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_INT3PRIO < 4 -# error "CONFIG_PIC32MZ_INT3PRIO is too small" -#endif -#if CONFIG_PIC32MZ_INT3PRIO > 31 -# error "CONFIG_PIC32MZ_INT3PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_INT4PRIO /* External interrupt 4 */ -# define CONFIG_PIC32MZ_INT4PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_INT4PRIO < 4 -# error "CONFIG_PIC32MZ_INT4PRIO is too small" -#endif -#if CONFIG_PIC32MZ_INT4PRIO > 31 -# error "CONFIG_PIC32MZ_INT4PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_FSCMPRIO /* Fail-Safe Clock Monitor */ -# define CONFIG_PIC32MZ_FSCMPRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_FSCMPRIO < 4 -# error "CONFIG_PIC32MZ_FSCMPRIO is too small" -#endif -#if CONFIG_PIC32MZ_FSCMPRIO > 31 -# error "CONFIG_PIC32MZ_FSCMPRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_T1PRIO /* Timer 1 (System timer) priority */ -# define CONFIG_PIC32MZ_T1PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_T1PRIO < 4 -# error "CONFIG_PIC32MZ_T1PRIO is too small" -#endif -#if CONFIG_PIC32MZ_T1PRIO > 31 -# error "CONFIG_PIC32MZ_T1PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_T2PRIO /* Timer 2 priority */ -# define CONFIG_PIC32MZ_T2PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_T2PRIO < 4 -# error "CONFIG_PIC32MZ_T2PRIO is too small" -#endif -#if CONFIG_PIC32MZ_T2PRIO > 31 -# error "CONFIG_PIC32MZ_T2PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_T3PRIO /* Timer 3 priority */ -# define CONFIG_PIC32MZ_T3PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_T3PRIO < 4 -# error "CONFIG_PIC32MZ_T3PRIO is too small" -#endif -#if CONFIG_PIC32MZ_T3PRIO > 31 -# error "CONFIG_PIC32MZ_T3PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_T4PRIO /* Timer 4 priority */ -# define CONFIG_PIC32MZ_T4PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_T4PRIO < 4 -# error "CONFIG_PIC32MZ_T4PRIO is too small" -#endif -#if CONFIG_PIC32MZ_T4PRIO > 31 -# error "CONFIG_PIC32MZ_T4PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_T5PRIO /* Timer 5 priority */ -# define CONFIG_PIC32MZ_T5PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_T5PRIO < 4 -# error "CONFIG_PIC32MZ_T5PRIO is too small" -#endif -#if CONFIG_PIC32MZ_T5PRIO > 31 -# error "CONFIG_PIC32MZ_T5PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_IC1PRIO /* Input Capture 1 */ -# define CONFIG_PIC32MZ_IC1PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_IC1PRIO < 4 -# error "CONFIG_PIC32MZ_IC1PRIO is too small" -#endif -#if CONFIG_PIC32MZ_IC1PRIO > 31 -# error "CONFIG_PIC32MZ_IC1PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_IC2PRIO /* Input Capture 2 */ -# define CONFIG_PIC32MZ_IC2PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_IC2PRIO < 4 -# error "CONFIG_PIC32MZ_IC2PRIO is too small" -#endif -#if CONFIG_PIC32MZ_IC2PRIO > 31 -# error "CONFIG_PIC32MZ_IC2PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_IC3PRIO /* Input Capture 3 */ -# define CONFIG_PIC32MZ_IC3PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_IC3PRIO < 4 -# error "CONFIG_PIC32MZ_IC3PRIO is too small" -#endif -#if CONFIG_PIC32MZ_IC3PRIO > 31 -# error "CONFIG_PIC32MZ_IC3PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_IC4PRIO /* Input Capture 4 */ -# define CONFIG_PIC32MZ_IC4PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_IC4PRIO < 4 -# error "CONFIG_PIC32MZ_IC4PRIO is too small" -#endif -#if CONFIG_PIC32MZ_IC4PRIO > 31 -# error "CONFIG_PIC32MZ_IC4PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_IC5PRIO /* Input Capture 5 */ -# define CONFIG_PIC32MZ_IC5PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_IC5PRIO < 4 -# error "CONFIG_PIC32MZ_IC5PRIO is too small" -#endif -#if CONFIG_PIC32MZ_IC5PRIO > 31 -# error "CONFIG_PIC32MZ_IC5PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_OC1PRIO /* Output Compare 1 */ -# define CONFIG_PIC32MZ_OC1PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_OC1PRIO < 4 -# error "CONFIG_PIC32MZ_OC1PRIO is too small" -#endif -#if CONFIG_PIC32MZ_OC1PRIO > 31 -# error "CONFIG_PIC32MZ_OC1PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_OC2PRIO /* Output Compare 2 */ -# define CONFIG_PIC32MZ_OC2PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_OC2PRIO < 4 -# error "CONFIG_PIC32MZ_OC2PRIO is too small" -#endif -#if CONFIG_PIC32MZ_OC2PRIO > 31 -# error "CONFIG_PIC32MZ_OC2PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_OC3PRIO /* Output Compare 3 */ -# define CONFIG_PIC32MZ_OC3PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_OC3PRIO < 4 -# error "CONFIG_PIC32MZ_OC3PRIO is too small" -#endif -#if CONFIG_PIC32MZ_OC3PRIO > 31 -# error "CONFIG_PIC32MZ_OC3PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_OC4PRIO /* Output Compare 4 */ -# define CONFIG_PIC32MZ_OC4PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_OC4PRIO < 4 -# error "CONFIG_PIC32MZ_OC4PRIO is too small" -#endif -#if CONFIG_PIC32MZ_OC4PRIO > 31 -# error "CONFIG_PIC32MZ_OC4PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_OC5PRIO /* Output Compare 5 */ -# define CONFIG_PIC32MZ_OC5PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_OC5PRIO < 4 -# error "CONFIG_PIC32MZ_OC5PRIO is too small" -#endif -#if CONFIG_PIC32MZ_OC5PRIO > 31 -# error "CONFIG_PIC32MZ_OC5PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_I2C1PRIO /* I2C 1 */ -# define CONFIG_PIC32MZ_I2C1PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_I2C1PRIO < 4 -# error "CONFIG_PIC32MZ_I2C1PRIO is too small" -#endif -#if CONFIG_PIC32MZ_I2C1PRIO > 31 -# error "CONFIG_PIC32MZ_I2C1PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_I2C2PRIO /* I2C 2 */ -# define CONFIG_PIC32MZ_I2C2PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_I2C2PRIO < 4 -# error "CONFIG_PIC32MZ_I2C2PRIO is too small" -#endif -#if CONFIG_PIC32MZ_I2C2PRIO > 31 -# error "CONFIG_PIC32MZ_I2C2PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_SPI1PRIO /* SPI 1 */ -# define CONFIG_PIC32MZ_SPI1PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_SPI1PRIO < 4 -# error "CONFIG_PIC32MZ_SPI1PRIO is too small" -#endif -#if CONFIG_PIC32MZ_SPI1PRIO > 31 -# error "CONFIG_PIC32MZ_SPI1PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_SPI2PRIO /* SPI 2 */ -# define CONFIG_PIC32MZ_SPI2PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_SPI2PRIO < 4 -# error "CONFIG_PIC32MZ_SPI2PRIO is too small" -#endif -#if CONFIG_PIC32MZ_SPI2PRIO > 31 -# error "CONFIG_PIC32MZ_SPI2PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_UART1PRIO /* UART 1 */ -# define CONFIG_PIC32MZ_UART1PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_UART1PRIO < 4 -# error "CONFIG_PIC32MZ_UART1PRIO is too small" -#endif -#if CONFIG_PIC32MZ_UART1PRIO > 31 -# error "CONFIG_PIC32MZ_UART1PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_UART2PRIO /* UART 2 */ -# define CONFIG_PIC32MZ_UART2PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_UART2PRIO < 4 -# error "CONFIG_PIC32MZ_UART2PRIO is too small" -#endif -#if CONFIG_PIC32MZ_UART2PRIO > 31 -# error "CONFIG_PIC32MZ_UART2PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_CNPRIO /* Input Change Interrupt */ -# define CONFIG_PIC32MZ_CNPRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_CNPRIO < 4 -# error "CONFIG_PIC32MZ_CNPRIO is too small" -#endif -#if CONFIG_PIC32MZ_CNPRIO > 31 -# error "CONFIG_PIC32MZ_CNPRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_ADCPRIO /* ADC1 Convert Done */ -# define CONFIG_PIC32MZ_ADCPRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_ADCPRIO < 4 -# error "CONFIG_PIC32MZ_ADCPRIO is too small" -#endif -#if CONFIG_PIC32MZ_ADCPRIO > 31 -# error "CONFIG_PIC32MZ_ADCPRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_PMPPRIO /* Parallel Master Port */ -# define CONFIG_PIC32MZ_PMPPRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_PMPPRIO < 4 -# error "CONFIG_PIC32MZ_PMPPRIO is too small" -#endif -#if CONFIG_PIC32MZ_PMPPRIO > 31 -# error "CONFIG_PIC32MZ_PMPPRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_CM1PRIO /* Comparator 1 */ -# define CONFIG_PIC32MZ_CM1PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_CM1PRIO < 4 -# error "CONFIG_PIC32MZ_CM1PRIO is too small" -#endif -#if CONFIG_PIC32MZ_CM1PRIO > 31 -# error "CONFIG_PIC32MZ_CM1PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_CM2PRIO /* Comparator 2 */ -# define CONFIG_PIC32MZ_CM2PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_CM2PRIO < 4 -# error "CONFIG_PIC32MZ_CM2PRIO is too small" -#endif -#if CONFIG_PIC32MZ_CM2PRIO > 31 -# error "CONFIG_PIC32MZ_CM2PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_FSCMPRIO /* Fail-Safe Clock Monitor */ -# define CONFIG_PIC32MZ_FSCMPRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_FSCMPRIO < 4 -# error "CONFIG_PIC32MZ_FSCMPRIO is too small" -#endif -#if CONFIG_PIC32MZ_FSCMPRIO > 31 -# error "CONFIG_PIC32MZ_FSCMPRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_RTCCPRIO /* Real-Time Clock and Calendar */ -# define CONFIG_PIC32MZ_RTCCPRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_RTCCPRIO < 4 -# error "CONFIG_PIC32MZ_RTCCPRIO is too small" -#endif -#if CONFIG_PIC32MZ_RTCCPRIO > 31 -# error "CONFIG_PIC32MZ_RTCCPRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_DMA0PRIO /* DMA Channel 0 */ -# define CONFIG_PIC32MZ_DMA0PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_DMA0PRIO < 4 -# error "CONFIG_PIC32MZ_DMA0PRIO is too small" -#endif -#if CONFIG_PIC32MZ_DMA0PRIO > 31 -# error "CONFIG_PIC32MZ_DMA0PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_DMA1PRIO /* DMA Channel 1 */ -# define CONFIG_PIC32MZ_DMA1PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_DMA1PRIO < 4 -# error "CONFIG_PIC32MZ_DMA1PRIO is too small" -#endif -#if CONFIG_PIC32MZ_DMA1PRIO > 31 -# error "CONFIG_PIC32MZ_DMA1PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_DMA2PRIO /* DMA Channel 2 */ -# define CONFIG_PIC32MZ_DMA2PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_DMA2PRIO < 4 -# error "CONFIG_PIC32MZ_DMA2PRIO is too small" -#endif -#if CONFIG_PIC32MZ_DMA2PRIO > 31 -# error "CONFIG_PIC32MZ_DMA2PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_DMA3PRIO /* DMA Channel 3 */ -# define CONFIG_PIC32MZ_DMA3PRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_DMA3PRIO < 4 -# error "CONFIG_PIC32MZ_DMA3PRIO is too small" -#endif -#if CONFIG_PIC32MZ_DMA3PRIO > 31 -# error "CONFIG_PIC32MZ_DMA3PRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_FCEPRIO /* Flash Control Event */ -# define CONFIG_PIC32MZ_FCEPRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_FCEPRIO < 4 -# error "CONFIG_PIC32MZ_FCEPRIO is too small" -#endif -#if CONFIG_PIC32MZ_FCEPRIO > 31 -# error "CONFIG_PIC32MZ_FCEPRIO is too large" -#endif - -#ifndef CONFIG_PIC32MZ_USBPRIO /* USB */ -# define CONFIG_PIC32MZ_USBPRIO (INT_IPC_MID_PRIORITY << 2) -#endif -#if CONFIG_PIC32MZ_USBPRIO < 4 -# error "CONFIG_PIC32MZ_USBPRIO is too small" -#endif -#if CONFIG_PIC32MZ_USBPRIO > 31 -# error "CONFIG_PIC32MZ_USBPRIO is too large" -#endif - -/* SYS calls ************************************************************************/ -/* SYS call 1 and 2 are defined for internal use by the PIC32MZ port (see - * arch/mips/include/mips32/syscall.h). In addition, SYS call 3 is the return from - * a SYS call in kernel mode. The first four syscall values must, therefore, be - * reserved (0 is not used). - */ - -#ifdef CONFIG_BUILD_KERNEL -# if !defined(CONFIG_SYS_RESERVED) || CONFIG_SYS_RESERVED < 4 -# error "CONFIG_SYS_RESERVED must be defined to be 4 for a kernel build" -# elif CONFIG_SYS_RESERVED > 4 -# warning "CONFIG_SYS_RESERVED should be defined to be 4 for a kernel build" -# endif -#endif - /* UARTs ****************************************************************************/ /* Don't enable UARTs not supported by the chip. */ @@ -592,185 +147,154 @@ /* Device Configuration *************************************************************/ /* DEVCFG3 */ +/* Configurable settings */ #ifndef CONFIG_PIC32MZ_USERID /* User ID */ -# define CONFIG_PIC32MZ_USERID 0x584e /* "NutX" */ +# define CONFIG_PIC32MZ_USERID 0x584e /* "NX" */ #endif -#ifndef CONFIG_PIC32MZ_PMDL1WAY /* Peripheral module disable configuration */ -# define CONFIG_PIC32MZ_PMDL1WAY 0 +#ifndef CONFIG_PIC32MZ_FMIIEN /* Ethernet MII enable: 0=RMII 1=MII */ +# define CONFIG_PIC32MZ_FMIIEN 1 /* MII enabled */ #endif -#ifndef CONFIG_PIC32MZ_IOL1WAY /* Peripheral pin select configuration */ -# define CONFIG_PIC32MZ_IOL1WAY 0 +#ifndef CONFIG_PIC32MZ_PGL1WAY /* Permission group lock one way configuration */ +# define CONFIG_PIC32MZ_PGL1WAY 0 /* Allow multiple configurations */ #endif -#ifndef CONFIG_PIC32MZ_SRSSEL /* Shadow register interrupt priority */ -# define CONFIG_PIC32MZ_SRSSEL INT_IPC_MIN_PRIORITY +#ifndef CONFIG_PIC32MZ_PMDL1WAY /* Peripheral module disable configuration */ +# define CONFIG_PIC32MZ_PMDL1WAY 0 /* Allow multiple reconfigurations */ #endif -/* Unless overridden in the .config file, all pins are in the default setting */ - -#ifndef CONFIG_PIC32MZ_FMIIEN /* Ethernet MII enable: 0=RMII 1=MII */ -# define CONFIG_PIC32MZ_FMIIEN 1 /* MII enabled */ +#ifndef CONFIG_PIC32MZ_IOL1WAY /* Peripheral pin select configuration */ +# define CONFIG_PIC32MZ_IOL1WAY 0 /* Allow multiple reconfigurations */ #endif #ifndef CONFIG_PIC32MZ_FETHIO /* Ethernet I/O Pins 0=alternate 1=default */ # define CONFIG_PIC32MZ_FETHIO 1 /* Default Ethernet I/O Pins */ #endif -#ifndef CONFIG_PIC32MZ_FCANIO /* SCM1 pin C selection */ -# define CONFIG_PIC32MZ_FCANIO 1 /* Default CAN I/O Pins */ -#endif - -#ifndef CONFIG_PIC32MZ_FSCM1IO /* SCM1 pin C selection */ -# define CONFIG_PIC32MZ_FSCM1IO 1 /* Default pin for SCM1C */ -#endif - -/* USB or Ports? */ - -#ifdef CONFIG_PIC32MZ_USB -# ifndef CONFIG_PIC32MZ_USBIDO /* USB USBID Selection */ -# define CONFIG_PIC32MZ_USBIDO 1 /* USBID pin is controlled by the USB module */ -# endif -# ifndef CONFIG_PIC32MZ_VBUSIO /* USB VBUSON Selection */ -# define CONFIG_PIC32MZ_VBUSIO 1 /* VBUSON pin is controlled by the USB module */ -# endif -#else -# ifndef CONFIG_PIC32MZ_USBIDO /* USB USBID Selection */ -# define CONFIG_PIC32MZ_USBIDO 0 /* USBID pin is controlled by the Port function */ -# endif -# ifndef CONFIG_PIC32MZ_VBUSIO /* USB VBUSON Selection */ -# define CONFIG_PIC32MZ_VBUSIO 0 /* VBUSON pin is controlled by the Port function */ +#ifndef CONFIG_PIC32MZ_FUSBIDIO /* USB USBID selection: 0=GPIO 1=USB */ +# ifdef CONFIG_PIC32MZ_USB +# define CONFIG_PIC32MZ_FUSBIDIO 0 /* USBID pin is controlled by the IOPORT configuration */ +# else +# define CONFIG_PIC32MZ_FUSBIDIO 1 /* USBID pin is controlled by the USB module */ # endif #endif /* DEVCFG2 */ +/* PLL Input Divider bits */ #undef CONFIG_PIC32MZ_PLLIDIV #if BOARD_PLL_IDIV == 1 -# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_DIV1 +# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_1 #elif BOARD_PLL_IDIV == 2 -# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_DIV2 +# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_2 #elif BOARD_PLL_IDIV == 3 -# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_DIV3 +# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_3 #elif BOARD_PLL_IDIV == 4 -# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_DIV4 +# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_4 #elif BOARD_PLL_IDIV == 5 -# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_DIV5 +# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_5 #elif BOARD_PLL_IDIV == 6 -# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_DIV6 -#elif BOARD_PLL_IDIV == 10 -# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_DIV10 -#elif BOARD_PLL_IDIV == 12 -# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_DIV12 +# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_6 +#elif BOARD_PLL_IDIV == 7 +# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_7 +#elif BOARD_PLL_IDIV == 8 +# define CONFIG_PIC32MZ_PLLIDIV DEVCFG2_FPLLIDIV_8 #else # error "Unsupported BOARD_PLL_IDIV" #endif -#undef CONFIG_PIC32MZ_PLLMULT -#if BOARD_PLL_MULT == 15 -# define CONFIG_PIC32MZ_PLLMULT DEVCFG2_FPLLMULT_MUL15 -#elif BOARD_PLL_MULT == 16 -# define CONFIG_PIC32MZ_PLLMULT DEVCFG2_FPLLMULT_MUL16 -#elif BOARD_PLL_MULT == 17 -# define CONFIG_PIC32MZ_PLLMULT DEVCFG2_FPLLMULT_MUL17 -#elif BOARD_PLL_MULT == 18 -# define CONFIG_PIC32MZ_PLLMULT DEVCFG2_FPLLMULT_MUL18 -#elif BOARD_PLL_MULT == 19 -# define CONFIG_PIC32MZ_PLLMULT DEVCFG2_FPLLMULT_MUL19 -#elif BOARD_PLL_MULT == 20 -# define CONFIG_PIC32MZ_PLLMULT DEVCFG2_FPLLMULT_MUL20 -#elif BOARD_PLL_MULT == 21 -# define CONFIG_PIC32MZ_PLLMULT DEVCFG2_FPLLMULT_MUL21 -#elif BOARD_PLL_MULT == 24 -# define CONFIG_PIC32MZ_PLLMULT DEVCFG2_FPLLMULT_MUL24 +/* System PLL Divided Input Clock Frequency Range bits */ + +#if BOARD_PLL_INPUT < 5000000 +# error BOARD_PLL_INPUT too low +# define CONFIG_PIC32MZ_FPLLRNG DEVCFG2_FPLLRNG_BYPASS /* < 5 MHz */ +#elif BOARD_PLL_INPUT < 9000000 +# define CONFIG_PIC32MZ_FPLLRNG DEVCFG2_FPLLRNG_5_10MHZ /* 5-10 MHz */ +#elif BOARD_PLL_INPUT < 14500000 +# define CONFIG_PIC32MZ_FPLLRNG DEVCFG2_FPLLRNG_8_16MHZ /* 8-16 MHz */ +#elif BOARD_PLL_INPUT < 23500000 +# define CONFIG_PIC32MZ_FPLLRNG DEVCFG2_FPLLRNG_13_26MHZ /* 13-26 MHz */ +#elif BOARD_PLL_INPUT < 39000000 +# define CONFIG_PIC32MZ_FPLLRNG DEVCFG2_FPLLRNG_21_42MHZ /* 21-42 MHz */ +#elif BOARD_PLL_INPUT < 64000000 +# define CONFIG_PIC32MZ_FPLLRNG DEVCFG2_FPLLRNG_34_64MHZ /* 36-64 MHz */ #else -# error "Unsupported BOARD_PLL_MULT" +# error BOARD_PLL_INPUT too high +# define CONFIG_PIC32MZ_FPLLRNG DEVCFG2_FPLLRNG_34_64MHZ /* 36-64 MHz */ #endif -#undef CONFIG_PIC32MZ_UPLLIDIV -#if BOARD_UPLL_IDIV == 1 -# define CONFIG_PIC32MZ_UPLLIDIV DEVCFG2_FUPLLIDIV_DIV1 -#elif BOARD_UPLL_IDIV == 2 -# define CONFIG_PIC32MZ_UPLLIDIV DEVCFG2_FUPLLIDIV_DIV2 -#elif BOARD_UPLL_IDIV == 3 -# define CONFIG_PIC32MZ_UPLLIDIV DEVCFG2_FUPLLIDIV_DIV3 -#elif BOARD_UPLL_IDIV == 4 -# define CONFIG_PIC32MZ_UPLLIDIV DEVCFG2_FUPLLIDIV_DIV4 -#elif BOARD_UPLL_IDIV == 5 -# define CONFIG_PIC32MZ_UPLLIDIV DEVCFG2_FUPLLIDIV_DIV5 -#elif BOARD_UPLL_IDIV == 6 -# define CONFIG_PIC32MZ_UPLLIDIV DEVCFG2_FUPLLIDIV_DIV6 -#elif BOARD_UPLL_IDIV == 10 -# define CONFIG_PIC32MZ_UPLLIDIV DEVCFG2_FUPLLIDIV_DIV10 -#elif BOARD_UPLL_IDIV == 12 -# define CONFIG_PIC32MZ_UPLLIDIV DEVCFG2_FUPLLIDIV_DIV12 +/* PLL multiplier */ + +#undef CONFIG_PIC32MZ_PLLMULT +#if BOARD_PLL_MULT >= 1 && BOARD_PLL_MULT <= 128 +# define CONFIG_PIC32MZ_PLLMULT ((BOARD_PLL_MULT-1) << DEVCFG2_FPLLIDIV_SHIFT) #else -# error "Unsupported BOARD_UPLL_IDIV" +# error "Unsupported BOARD_PLL_MULT" #endif -#ifndef CONFIG_PIC32MZ_FUPLLEN -# if defined(CONFIG_PIC32MZ_USBDEV) || defined(CONFIG_PIC32MZ_USBHOST) -# define CONFIG_PIC32MZ_FUPLLEN 0 /* Enable */ -# else -# define CONFIG_PIC32MZ_FUPLLEN 1 /* Bypass and disable */ -# endif -#endif +/* PLL output divider */ #undef CONFIG_PIC32MZ_PLLODIV -#if BOARD_PLL_ODIV == 1 -# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_DIV1 -#elif BOARD_PLL_ODIV == 2 -# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_DIV2 +#if BOARD_PLL_ODIV == 2 +# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_2 #elif BOARD_PLL_ODIV == 4 -# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_DIV2 +# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_4 #elif BOARD_PLL_ODIV == 8 -# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_DIV2 +# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_8 #elif BOARD_PLL_ODIV == 16 -# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_DIV2 +# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_16 #elif BOARD_PLL_ODIV == 32 -# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_DIV2 -#elif BOARD_PLL_ODIV == 64 -# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_DIV2 -#elif BOARD_PLL_ODIV == 128 -# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_DIV2 +# define CONFIG_PIC32MZ_PLLODIV DEVCFG2_FPLLODIV_32 #else # error "Unsupported BOARD_PLL_ODIV" #endif +/* Not yet configurable settings (REVISIT) */ + + /* System PLL Input Clock Select bit */ +#define CONFIG_PIC32MZ_FPLLICLK 0 /* POSC is selected as input to the System PLL */ + /* USB PLL Input Frequency Select bit */ +#define CONFIG_PIC32MZ_UPLLFSEL DEVCFG2_UPLLFSEL + /* DEVCFG1 */ +/* Configurable settings */ +#undef CONFIG_PIC32MZ_FNOSC +#if defined(BOARD_FNOSC_FRC) +# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_FRC +#elif defined(BOARD_FNOSC_SPLL) +# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_SPLL +#elif defined(BOARD_FNOSC_POSC) +# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_POSC +#elif defined(BOARD_FNOSC_SOSC) +# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_SOSC +#elif defined(BOARD_FNOSC_LPRC) +# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_LPRC +#elif defined(BOARD_FNOSC_FRCDIV) +# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_FRCDIV +#else +# error "Unknown board FNOSC selection" +#endif + +#undef CONFIG_PIC32MZ_FSOSCEN #ifdef BOARD_SOSC_ENABLE # define CONFIG_PIC32MZ_FSOSCEN DEVCFG1_FSOSCEN #else # define CONFIG_PIC32MZ_FSOSCEN 0 #endif +#undef CONFIG_PIC32MZ_IESO #ifdef BOARD_SOSC_IESO -# define CONFIG_PIC32MZ_IESO DEVCFG1_IESO -#else -# define CONFIG_PIC32MZ_IESO 0 -#endif - -#undef CONFIG_PIC32MZ_PBDIV -#if BOARD_PBDIV == 1 -# define CONFIG_PIC32MZ_PBDIV DEVCFG1_FPBDIV_DIV1 -#elif BOARD_PBDIV == 2 -# define CONFIG_PIC32MZ_PBDIV DEVCFG1_FPBDIV_DIV2 -#elif BOARD_PBDIV == 4 -# define CONFIG_PIC32MZ_PBDIV DEVCFG1_FPBDIV_DIV4 -#elif BOARD_PBDIV == 8 -# define CONFIG_PIC32MZ_PBDIV DEVCFG1_FPBDIV_DIV8 +# define CONFIG_PIC32MZ_IESO DEVCFG1_IESO #else -# error "Unsupported BOARD_PBDIV" +# define CONFIG_PIC32MZ_IESO 0 #endif #undef CONFIG_PIC32MZ_POSCMOD #if defined(BOARD_POSC_ECMODE) # define CONFIG_PIC32MZ_POSCMOD DEVCFG1_POSCMOD_EC -#elif defined(BOARD_POSC_XTMODE) -# define CONFIG_PIC32MZ_POSCMOD DEVCFG1_POSCMOD_XT #elif defined(BOARD_POSC_HSMODE) # define CONFIG_PIC32MZ_POSCMOD DEVCFG1_POSCMOD_HS #elif defined(BOARD_POSC_DISABLED) @@ -779,23 +303,12 @@ # error "Unknown board POSC mode" #endif -#undef CONFIG_PIC32MZ_FNOSC -#if defined(BOARD_FNOSC_FRC) -# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_FRC -#elif defined(BOARD_FNOSC_FRCPLL) -# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_FRCPLL -#elif defined(BOARD_FNOSC_POSC) -# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_POSC -#elif defined(BOARD_FNOSC_POSCPLL) -# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_POSCPLL -#elif defined(BOARD_FNOSC_SOSC) -# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_SOSC -#elif defined(BOARD_FNOSC_LPRC) -# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_LPRC -#elif defined(BOARD_FNOSC_FRCDIV) -# define CONFIG_PIC32MZ_FNOSC DEVCFG1_FNOSC_FRCDIV +#ifdef CONFIG_PIC32MZ_OSCIOFNC +# undef CONFIG_PIC32MZ_OSCIOFNC +# define CONFIG_PIC32MZ_OSCIOFNC DEVCFG1_OSCIOFNC #else -# error "Unknown board FNOSC selection" +# undef CONFIG_PIC32MZ_OSCIOFNC +# define CONFIG_PIC32MZ_OSCIOFNC 0 #endif #undef CONFIG_PIC32MZ_FCKSM @@ -803,99 +316,117 @@ # if defined(BOARD_POSC_FSCM) # define CONFIG_PIC32MZ_FCKSM DEVCFG1_FCKSM_BOTH # else -# define CONFIG_PIC32MZ_FCKSM DEVCFG1_FCKSM_CSONLY +# define CONFIG_PIC32MZ_FCKSM DEVCFG1_FCKSM_SWITCH # endif #else -# define CONFIG_PIC32MZ_FCKSM DEVCFG1_FCKSM_NONE -#endif - -#ifndef CONFIG_PIC32MZ_OSCOUT -# define CONFIG_PIC32MZ_OSCOUT 0 +# if defined(BOARD_POSC_FSCM) +# define CONFIG_PIC32MZ_FCKSM DEVCFG1_FCKSM_MONITOR +# else +# define CONFIG_PIC32MZ_FCKSM DEVCFG1_FCKSM_NONE +# endif #endif -#undef CONFIG_PIC32MZ_WDPS +#undef CONFIG_PIC32MZ_WDTPS #if BOARD_WD_PRESCALER == 1 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_1 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_1 #elif BOARD_WD_PRESCALER == 2 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_2 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_2 #elif BOARD_WD_PRESCALER == 4 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_4 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_4 #elif BOARD_WD_PRESCALER == 8 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_8 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_8 #elif BOARD_WD_PRESCALER == 16 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_16 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_16 #elif BOARD_WD_PRESCALER == 32 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_32 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_32 #elif BOARD_WD_PRESCALER == 64 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_64 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_64 #elif BOARD_WD_PRESCALER == 128 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_128 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_128 #elif BOARD_WD_PRESCALER == 256 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_256 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_256 #elif BOARD_WD_PRESCALER == 512 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_512 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_512 #elif BOARD_WD_PRESCALER == 1024 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_1024 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_1024 #elif BOARD_WD_PRESCALER == 2048 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_2048 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_2048 #elif BOARD_WD_PRESCALER == 4096 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_4096 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_4096 #elif BOARD_WD_PRESCALER == 8192 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_8192 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_8192 #elif BOARD_WD_PRESCALER == 16384 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_16384 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_16384 #elif BOARD_WD_PRESCALER == 32768 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_32768 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_32768 #elif BOARD_WD_PRESCALER == 65536 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_65536 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_65536 #elif BOARD_WD_PRESCALER == 131072 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_131072 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_131072 #elif BOARD_WD_PRESCALER == 262144 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_262144 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_262144 #elif BOARD_WD_PRESCALER == 524288 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_524288 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_524288 #elif BOARD_WD_PRESCALER == 1048576 -# define CONFIG_PIC32MZ_WDPS DEVCFG1_WDTPS_1048576 +# define CONFIG_PIC32MZ_WDTPS DEVCFG1_WDTPS_1048576 #else # error "Unsupported BOARD_WD_PRESCALER" #endif -#undef CONFIG_PIC32MZ_WDENABLE -#if BOARD_WD_ENABLE -# define CONFIG_PIC32MZ_WDENABLE DEVCFG1_FWDTEN +#undef CONFIG_PIC32MZ_FWDTEN +#if CONFIG_PIC32MZ_WDTENABLE +# define CONFIG_PIC32MZ_FWDTEN DEVCFG1_FWDTEN #else -# define CONFIG_PIC32MZ_WDENABLE 0 +# define CONFIG_PIC32MZ_FWDTEN 0 #endif +/* Not yet configurable settings */ + +#define CONFIG_PIC32MZ_DMTINV DEVCFG1_FNOSC_FRCDIV +#define CONFIG_PIC32MZ_WDTSPGM DEVCFG1_WDTSPGM +#define CONFIG_PIC32MZ_WINDIS DEVCFG1_WINDIS +#define CONFIG_PIC32MZ_FWDTWINSZ DEVCFG1_FWDTWINSZ_25 +#define CONFIG_PIC32MZ_DMTCNT DEVCFG1_DMTCNT_MASK +#define CONFIG_PIC32MZ_FDMTEN 0 + /* DEVCFG0 */ +/* Configurable settings */ -#ifndef CONFIG_PIC32MZ_DEBUGGER /* Background Debugger Enable */ -# define CONFIG_PIC32MZ_DEBUGGER 3 /* disabled */ +#undef CONFIG_PIC32MZ_DEBUGGER +#ifdef CONFIG_PIC32MZ_DEBUGGER_ENABLE +# define CONFIG_PIC32MZ_DEBUGGER DEVCFG0_DEBUG_ENABLED +#else +# define CONFIG_PIC32MZ_DEBUGGER DEVCFG0_DEBUG_DISABLED #endif -#ifndef CONFIG_PIC32MZ_ICESEL /* In-Circuit Emulator/Debugger Communication Channel Select */ -# if defined(CHIP_PIC32MZ1) || defined(CHIP_PIC32MZ2) -# define CONFIG_PIC32MZ_ICESEL 3 /* Default PGEC1/PGED1 */ -# else -# define CONFIG_PIC32MZ_ICESEL 1 /* Default PGEC1/PGED1 */ -# endif +#undef CONFIG_PIC32MZ_JTAGEN +#ifdef CONFIG_PIC32MZ_JTAG_ENABLE +# define CONFIG_PIC32MZ_JTAGEN DEVCFG0_JTAGEN +#else +# define CONFIG_PIC32MZ_JTAGEN 0 #endif -#ifndef CONFIG_PIC32MZ_PROGFLASHWP /* Program FLASH write protect */ -# if defined(CHIP_PIC32MZ1) || defined(CHIP_PIC32MZ2) -# define CONFIG_PIC32MZ_PROGFLASHWP 0x3ff /* Disabled */ -# else -# define CONFIG_PIC32MZ_PROGFLASHWP 0xff /* Disabled */ -# endif +#undef CONFIG_PIC32MZ_ICESEL +#ifdef CONFIG_PIC32MZ_ICESEL_CH2 +# define CONFIG_PIC32MZ_ICESEL DEVCFG0_ICESEL_2 +#else +# define CONFIG_PIC32MZ_ICESEL DEVCFG0_ICESEL_1 #endif -#ifndef CONFIG_PIC32MZ_BOOTFLASHWP -# define CONFIG_PIC32MZ_BOOTFLASHWP 1 /* Disabled */ +#undef CONFIG_PIC32MZ_TRCEN +#ifdef CONFIG_PIC32MZ_TRACE_ENABLE +# define CONFIG_PIC32MZ_TRCEN DEVCFG0_TRCEN +#else +# define CONFIG_PIC32MZ_TRCEN 0 #endif -#ifndef CONFIG_PIC32MZ_CODEWP -# define CONFIG_PIC32MZ_CODEWP 1 /* Disabled */ -#endif +/* Not yet configurable settings */ + +#define CONFIG_PIC32MZ_BOOTISA 0 /* microMIPS always */ +#define CONFIG_PIC32MZ_FECCCON DEVCFG0_FECCCON_DISWR +#define CONFIG_PIC32MZ_FSLEEP DEVCFG0_FSLEEP +#define CONFIG_PIC32MZ_DBGPER DEVCFG0_DBGPER_MASK +#define CONFIG_PIC32MZ_EJTAGBEN DEVCFG0_EJTAGBEN /************************************************************************************ * Public Types |