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