1/* 2 * Copyright 2013-2014 Freescale Semiconductor, Inc. 3 * 4 * Register definitions for Freescale QSPI 5 * 6 * SPDX-License-Identifier: GPL-2.0+ 7 */ 8 9#ifndef _FSL_QSPI_H_ 10#define _FSL_QSPI_H_ 11 12struct fsl_qspi_regs { 13 u32 mcr; 14 u32 rsvd0[1]; 15 u32 ipcr; 16 u32 flshcr; 17 u32 buf0cr; 18 u32 buf1cr; 19 u32 buf2cr; 20 u32 buf3cr; 21 u32 bfgencr; 22 u32 soccr; 23 u32 rsvd1[2]; 24 u32 buf0ind; 25 u32 buf1ind; 26 u32 buf2ind; 27 u32 rsvd2[49]; 28 u32 sfar; 29 u32 rsvd3[1]; 30 u32 smpr; 31 u32 rbsr; 32 u32 rbct; 33 u32 rsvd4[15]; 34 u32 tbsr; 35 u32 tbdr; 36 u32 rsvd5[1]; 37 u32 sr; 38 u32 fr; 39 u32 rser; 40 u32 spndst; 41 u32 sptrclr; 42 u32 rsvd6[4]; 43 u32 sfa1ad; 44 u32 sfa2ad; 45 u32 sfb1ad; 46 u32 sfb2ad; 47 u32 rsvd7[28]; 48 u32 rbdr[32]; 49 u32 rsvd8[32]; 50 u32 lutkey; 51 u32 lckcr; 52 u32 rsvd9[2]; 53 u32 lut[64]; 54}; 55 56#define QSPI_IPCR_SEQID_SHIFT 24 57#define QSPI_IPCR_SEQID_MASK (0xf << QSPI_IPCR_SEQID_SHIFT) 58 59#define QSPI_MCR_END_CFD_SHIFT 2 60#define QSPI_MCR_END_CFD_MASK (3 << QSPI_MCR_END_CFD_SHIFT) 61#ifdef CONFIG_SYS_FSL_QSPI_AHB 62/* AHB needs 64bit operation */ 63#define QSPI_MCR_END_CFD_LE (3 << QSPI_MCR_END_CFD_SHIFT) 64#else 65#define QSPI_MCR_END_CFD_LE (1 << QSPI_MCR_END_CFD_SHIFT) 66#endif 67#define QSPI_MCR_DDR_EN_SHIFT 7 68#define QSPI_MCR_DDR_EN_MASK (1 << QSPI_MCR_DDR_EN_SHIFT) 69#define QSPI_MCR_CLR_RXF_SHIFT 10 70#define QSPI_MCR_CLR_RXF_MASK (1 << QSPI_MCR_CLR_RXF_SHIFT) 71#define QSPI_MCR_CLR_TXF_SHIFT 11 72#define QSPI_MCR_CLR_TXF_MASK (1 << QSPI_MCR_CLR_TXF_SHIFT) 73#define QSPI_MCR_MDIS_SHIFT 14 74#define QSPI_MCR_MDIS_MASK (1 << QSPI_MCR_MDIS_SHIFT) 75#define QSPI_MCR_RESERVED_SHIFT 16 76#define QSPI_MCR_RESERVED_MASK (0xf << QSPI_MCR_RESERVED_SHIFT) 77#define QSPI_MCR_SWRSTHD_SHIFT 1 78#define QSPI_MCR_SWRSTHD_MASK (1 << QSPI_MCR_SWRSTHD_SHIFT) 79#define QSPI_MCR_SWRSTSD_SHIFT 0 80#define QSPI_MCR_SWRSTSD_MASK (1 << QSPI_MCR_SWRSTSD_SHIFT) 81 82#define QSPI_SMPR_HSENA_SHIFT 0 83#define QSPI_SMPR_HSENA_MASK (1 << QSPI_SMPR_HSENA_SHIFT) 84#define QSPI_SMPR_FSPHS_SHIFT 5 85#define QSPI_SMPR_FSPHS_MASK (1 << QSPI_SMPR_FSPHS_SHIFT) 86#define QSPI_SMPR_FSDLY_SHIFT 6 87#define QSPI_SMPR_FSDLY_MASK (1 << QSPI_SMPR_FSDLY_SHIFT) 88#define QSPI_SMPR_DDRSMP_SHIFT 16 89#define QSPI_SMPR_DDRSMP_MASK (7 << QSPI_SMPR_DDRSMP_SHIFT) 90 91#define QSPI_BUFXCR_INVALID_MSTRID 0xe 92#define QSPI_BUF3CR_ALLMST_SHIFT 31 93#define QSPI_BUF3CR_ALLMST_MASK (1 << QSPI_BUF3CR_ALLMST_SHIFT) 94#define QSPI_BUF3CR_ADATSZ_SHIFT 8 95#define QSPI_BUF3CR_ADATSZ_MASK (0xFF << QSPI_BUF3CR_ADATSZ_SHIFT) 96 97#define QSPI_BFGENCR_SEQID_SHIFT 12 98#define QSPI_BFGENCR_SEQID_MASK (0xf << QSPI_BFGENCR_SEQID_SHIFT) 99#define QSPI_BFGENCR_PAR_EN_SHIFT 16 100#define QSPI_BFGENCR_PAR_EN_MASK (1 << QSPI_BFGENCR_PAR_EN_SHIFT) 101 102#define QSPI_RBSR_RDBFL_SHIFT 8 103#define QSPI_RBSR_RDBFL_MASK (0x3f << QSPI_RBSR_RDBFL_SHIFT) 104 105#define QSPI_RBCT_RXBRD_SHIFT 8 106#define QSPI_RBCT_RXBRD_USEIPS (1 << QSPI_RBCT_RXBRD_SHIFT) 107 108#define QSPI_SR_BUSY_SHIFT 0 109#define QSPI_SR_BUSY_MASK (1 << QSPI_SR_BUSY_SHIFT) 110 111#define QSPI_LCKCR_LOCK 0x1 112#define QSPI_LCKCR_UNLOCK 0x2 113 114#define LUT_KEY_VALUE 0x5af05af0 115 116#define OPRND0_SHIFT 0 117#define OPRND0(x) ((x) << OPRND0_SHIFT) 118#define PAD0_SHIFT 8 119#define PAD0(x) ((x) << PAD0_SHIFT) 120#define INSTR0_SHIFT 10 121#define INSTR0(x) ((x) << INSTR0_SHIFT) 122#define OPRND1_SHIFT 16 123#define OPRND1(x) ((x) << OPRND1_SHIFT) 124#define PAD1_SHIFT 24 125#define PAD1(x) ((x) << PAD1_SHIFT) 126#define INSTR1_SHIFT 26 127#define INSTR1(x) ((x) << INSTR1_SHIFT) 128 129#define LUT_CMD 1 130#define LUT_ADDR 2 131#define LUT_DUMMY 3 132#define LUT_READ 7 133#define LUT_WRITE 8 134 135#define LUT_PAD1 0 136#define LUT_PAD2 1 137#define LUT_PAD4 2 138 139#define ADDR24BIT 0x18 140#define ADDR32BIT 0x20 141 142#endif /* _FSL_QSPI_H_ */ 143