cregit-Linux how code gets into the kernel

Release 4.14 arch/sh/include/mach-sdk7786/mach/fpga.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __MACH_SDK7786_FPGA_H

#define __MACH_SDK7786_FPGA_H

#include <linux/io.h>
#include <linux/types.h>
#include <linux/bitops.h>


#define SRSTR		0x000

#define  SRSTR_MAGIC	0x1971	
/* Fixed magical read value */


#define INTASR		0x010

#define INTAMR		0x020

#define MODSWR		0x030

#define INTTESTR	0x040

#define SYSSR		0x050

#define NRGPR		0x060


#define NMISR		0x070

#define  NMISR_MAN_NMI	BIT(0)

#define  NMISR_AUX_NMI	BIT(1)

#define  NMISR_MASK	(NMISR_MAN_NMI | NMISR_AUX_NMI)


#define NMIMR		0x080

#define  NMIMR_MAN_NMIM	BIT(0)	
/* Manual NMI mask */

#define  NMIMR_AUX_NMIM	BIT(1)	
/* Auxiliary NMI mask */

#define  NMIMR_MASK	(NMIMR_MAN_NMIM | NMIMR_AUX_NMIM)


#define INTBSR		0x090

#define INTBMR		0x0a0

#define USRLEDR		0x0b0

#define MAPSWR		0x0c0

#define FPGAVR		0x0d0

#define FPGADR		0x0e0

#define PCBRR		0x0f0

#define RSR		0x100

#define EXTASR		0x110

#define SPCAR		0x120

#define INTMSR		0x130


#define PCIECR		0x140

#define  PCIECR_PCIEMUX1	BIT(15)

#define  PCIECR_PCIEMUX0	BIT(14)

#define  PCIECR_PRST4		BIT(12) 
/* slot 4 card present */

#define  PCIECR_PRST3		BIT(11) 
/* slot 3 card present */

#define  PCIECR_PRST2		BIT(10) 
/* slot 2 card present */

#define  PCIECR_PRST1		BIT(9)  
/* slot 1 card present */

#define  PCIECR_CLKEN		BIT(4)	
/* oscillator enable */


#define FAER		0x150

#define USRGPIR		0x160

/* 0x170 reserved */


#define LCLASR			0x180

#define  LCLASR_FRAMEN		BIT(15)


#define  LCLASR_FPGA_SEL_SHIFT	12

#define  LCLASR_NAND_SEL_SHIFT	8

#define  LCLASR_NORB_SEL_SHIFT	4

#define  LCLASR_NORA_SEL_SHIFT	0


#define  LCLASR_AREA_MASK	0x7


#define  LCLASR_FPGA_SEL_MASK	(LCLASR_AREA_MASK << LCLASR_FPGA_SEL_SHIFT)

#define  LCLASR_NAND_SEL_MASK	(LCLASR_AREA_MASK << LCLASR_NAND_SEL_SHIFT)

#define  LCLASR_NORB_SEL_MASK	(LCLASR_AREA_MASK << LCLASR_NORB_SEL_SHIFT)

#define  LCLASR_NORA_SEL_MASK	(LCLASR_AREA_MASK << LCLASR_NORA_SEL_SHIFT)


#define SBCR		0x190

#define  SCBR_I2CMEN	BIT(0)	
/* FPGA I2C master enable */

#define  SCBR_I2CCEN	BIT(1)	
/* CPU I2C master enable */


#define PWRCR		0x1a0

#define  PWRCR_SCISEL0	BIT(0)

#define  PWRCR_SCISEL1	BIT(1)

#define  PWRCR_SCIEN	BIT(2)	
/* Serial port enable */

#define  PWRCR_PDWNACK	BIT(5)	
/* Power down acknowledge */

#define  PWRCR_PDWNREQ	BIT(7)	
/* Power down request */

#define  PWRCR_INT2	BIT(11)	
/* INT2 connection to power manager */

#define  PWRCR_BUPINIT	BIT(13)	
/* DDR backup initialize */

#define  PWRCR_BKPRST	BIT(15) 
/* Backup power reset */


#define SPCBR		0x1b0

#define SPICR		0x1c0

#define SPIDR		0x1d0

#define I2CCR		0x1e0

#define I2CDR		0x1f0

#define FPGACR		0x200

#define IASELR1		0x210

#define IASELR2		0x220

#define IASELR3		0x230

#define IASELR4		0x240

#define IASELR5		0x250

#define IASELR6		0x260

#define IASELR7		0x270

#define IASELR8		0x280

#define IASELR9		0x290

#define IASELR10	0x2a0

#define IASELR11	0x2b0

#define IASELR12	0x2c0

#define IASELR13	0x2d0

#define IASELR14	0x2e0

#define IASELR15	0x2f0
/* 0x300 reserved */

#define IBSELR1		0x310

#define IBSELR2		0x320

#define IBSELR3		0x330

#define IBSELR4		0x340

#define IBSELR5		0x350

#define IBSELR6		0x360

#define IBSELR7		0x370

#define IBSELR8		0x380

#define IBSELR9		0x390

#define IBSELR10	0x3a0

#define IBSELR11	0x3b0

#define IBSELR12	0x3c0

#define IBSELR13	0x3d0

#define IBSELR14	0x3e0

#define IBSELR15	0x3f0

#define USRACR		0x400

#define BEEPR		0x410

#define USRLCDR		0x420

#define SMBCR		0x430

#define SMBDR		0x440

#define USBCR		0x450

#define AMSR		0x460

#define ACCR		0x470

#define SDIFCR		0x480

/* arch/sh/boards/mach-sdk7786/fpga.c */
extern void __iomem *sdk7786_fpga_base;
extern void sdk7786_fpga_init(void);

/* arch/sh/boards/mach-sdk7786/nmi.c */
extern void sdk7786_nmi_init(void);


#define SDK7786_FPGA_REGADDR(reg)	(sdk7786_fpga_base + (reg))

/*
 * A convenience wrapper from register offset to internal I2C address,
 * when the FPGA is in I2C slave mode.
 */

#define SDK7786_FPGA_I2CADDR(reg)	((reg) >> 3)


static inline u16 fpga_read_reg(unsigned int reg) { return ioread16(sdk7786_fpga_base + reg); }

Contributors

PersonTokensPropCommitsCommitProp
Paul Mundt19100.00%1100.00%
Total19100.00%1100.00%


static inline void fpga_write_reg(u16 val, unsigned int reg) { iowrite16(val, sdk7786_fpga_base + reg); }

Contributors

PersonTokensPropCommitsCommitProp
Paul Mundt23100.00%1100.00%
Total23100.00%1100.00%

#endif /* __MACH_SDK7786_FPGA_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Paul Mundt53599.81%787.50%
Greg Kroah-Hartman10.19%112.50%
Total536100.00%8100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.