79 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
| /* SPDX-License-Identifier: GPL-2.0+ */
 | |
| /*
 | |
|  * (c) 2015 Paul Thacker <paul.thacker@microchip.com>
 | |
|  *
 | |
|  */
 | |
| 
 | |
| #ifndef __PIC32_REGS_H__
 | |
| #define __PIC32_REGS_H__
 | |
| 
 | |
| #include <asm/io.h>
 | |
| 
 | |
| /* System Configuration */
 | |
| #define PIC32_CFG_BASE		0x1f800000
 | |
| 
 | |
| /* System config register offsets */
 | |
| #define CFGCON		0x0000
 | |
| #define DEVID		0x0020
 | |
| #define SYSKEY		0x0030
 | |
| #define PMD1		0x0040
 | |
| #define PMD7		0x00a0
 | |
| #define CFGEBIA		0x00c0
 | |
| #define CFGEBIC		0x00d0
 | |
| #define CFGPG		0x00e0
 | |
| #define CFGMPLL		0x0100
 | |
| 
 | |
| /* Non Volatile Memory (NOR flash) */
 | |
| #define PIC32_NVM_BASE		(PIC32_CFG_BASE + 0x0600)
 | |
| /* Oscillator Configuration */
 | |
| #define PIC32_OSC_BASE		(PIC32_CFG_BASE + 0x1200)
 | |
| /* Peripheral Pin Select Input */
 | |
| #define PPS_IN_BASE		0x1f801400
 | |
| /* Peripheral Pin Select Output */
 | |
| #define PPS_OUT_BASE		0x1f801500
 | |
| /* Pin Config */
 | |
| #define PINCTRL_BASE		0x1f860000
 | |
| 
 | |
| /* USB Core */
 | |
| #define PIC32_USB_CORE_BASE	0x1f8e3000
 | |
| #define PIC32_USB_CTRL_BASE	0x1f884000
 | |
| 
 | |
| /* SPI1-SPI6 */
 | |
| #define PIC32_SPI1_BASE		0x1f821000
 | |
| 
 | |
| /* Prefetch Module */
 | |
| #define PREFETCH_BASE		0x1f8e0000
 | |
| 
 | |
| /* DDR2 Controller */
 | |
| #define PIC32_DDR2C_BASE	0x1f8e8000
 | |
| 
 | |
| /* DDR2 PHY */
 | |
| #define PIC32_DDR2P_BASE	0x1f8e9100
 | |
| 
 | |
| /* EBI */
 | |
| #define PIC32_EBI_BASE		0x1f8e1000
 | |
| 
 | |
| /* SQI */
 | |
| #define PIC32_SQI_BASE		0x1f8e2000
 | |
| 
 | |
| struct pic32_reg_atomic {
 | |
| 	u32 raw;
 | |
| 	u32 clr;
 | |
| 	u32 set;
 | |
| 	u32 inv;
 | |
| };
 | |
| 
 | |
| #define _CLR_OFFSET	0x04
 | |
| #define _SET_OFFSET	0x08
 | |
| #define _INV_OFFSET	0x0c
 | |
| 
 | |
| static inline void __iomem *pic32_get_syscfg_base(void)
 | |
| {
 | |
| 	return (void __iomem *)CKSEG1ADDR(PIC32_CFG_BASE);
 | |
| }
 | |
| 
 | |
| /* Core */
 | |
| const char *get_core_name(void);
 | |
| 
 | |
| #endif	/* __PIC32_REGS_H__ */
 |