blob: 01fe499411ff6c2bd812e15f249dac03ef004d89 [file] [log] [blame]
/*
* dim2_reg.h - Definitions for registers of DIM2
* (MediaLB, Device Interface Macro IP, OS62420)
*
* Copyright (C) 2015, Microchip Technology Germany II GmbH & Co. KG
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This file is licensed under GPLv2.
*/
#ifndef DIM2_OS62420_H
#define DIM2_OS62420_H
#include <linux/types.h>
struct dim2_regs {
/* 0x00 */ u32 MLBC0;
/* 0x01 */ u32 rsvd0[1];
/* 0x02 */ u32 MLBPC0;
/* 0x03 */ u32 MS0;
/* 0x04 */ u32 rsvd1[1];
/* 0x05 */ u32 MS1;
/* 0x06 */ u32 rsvd2[2];
/* 0x08 */ u32 MSS;
/* 0x09 */ u32 MSD;
/* 0x0A */ u32 rsvd3[1];
/* 0x0B */ u32 MIEN;
/* 0x0C */ u32 rsvd4[1];
/* 0x0D */ u32 MLBPC2;
/* 0x0E */ u32 MLBPC1;
/* 0x0F */ u32 MLBC1;
/* 0x10 */ u32 rsvd5[0x10];
/* 0x20 */ u32 HCTL;
/* 0x21 */ u32 rsvd6[1];
/* 0x22 */ u32 HCMR0;
/* 0x23 */ u32 HCMR1;
/* 0x24 */ u32 HCER0;
/* 0x25 */ u32 HCER1;
/* 0x26 */ u32 HCBR0;
/* 0x27 */ u32 HCBR1;
/* 0x28 */ u32 rsvd7[8];
/* 0x30 */ u32 MDAT0;
/* 0x31 */ u32 MDAT1;
/* 0x32 */ u32 MDAT2;
/* 0x33 */ u32 MDAT3;
/* 0x34 */ u32 MDWE0;
/* 0x35 */ u32 MDWE1;
/* 0x36 */ u32 MDWE2;
/* 0x37 */ u32 MDWE3;
/* 0x38 */ u32 MCTL;
/* 0x39 */ u32 MADR;
/* 0x3A */ u32 rsvd8[0xB6];
/* 0xF0 */ u32 ACTL;
/* 0xF1 */ u32 rsvd9[3];
/* 0xF4 */ u32 ACSR0;
/* 0xF5 */ u32 ACSR1;
/* 0xF6 */ u32 ACMR0;
/* 0xF7 */ u32 ACMR1;
};
#define DIM2_MASK(n) (~((~(u32)0) << (n)))
enum {
MLBC0_MLBLK_BIT = 7,
MLBC0_MLBPEN_BIT = 5,
MLBC0_MLBCLK_SHIFT = 2,
MLBC0_MLBCLK_VAL_256FS = 0,
MLBC0_MLBCLK_VAL_512FS = 1,
MLBC0_MLBCLK_VAL_1024FS = 2,
MLBC0_MLBCLK_VAL_2048FS = 3,
MLBC0_FCNT_SHIFT = 15,
MLBC0_FCNT_MASK = 7,
MLBC0_FCNT_MAX_VAL = 6,
MLBC0_MLBEN_BIT = 0,
MIEN_CTX_BREAK_BIT = 29,
MIEN_CTX_PE_BIT = 28,
MIEN_CTX_DONE_BIT = 27,
MIEN_CRX_BREAK_BIT = 26,
MIEN_CRX_PE_BIT = 25,
MIEN_CRX_DONE_BIT = 24,
MIEN_ATX_BREAK_BIT = 22,
MIEN_ATX_PE_BIT = 21,
MIEN_ATX_DONE_BIT = 20,
MIEN_ARX_BREAK_BIT = 19,
MIEN_ARX_PE_BIT = 18,
MIEN_ARX_DONE_BIT = 17,
MIEN_SYNC_PE_BIT = 16,
MIEN_ISOC_BUFO_BIT = 1,
MIEN_ISOC_PE_BIT = 0,
MLBC1_NDA_SHIFT = 8,
MLBC1_NDA_MASK = 0xFF,
MLBC1_CLKMERR_BIT = 7,
MLBC1_LOCKERR_BIT = 6,
ACTL_DMA_MODE_BIT = 2,
ACTL_DMA_MODE_VAL_DMA_MODE_0 = 0,
ACTL_DMA_MODE_VAL_DMA_MODE_1 = 1,
ACTL_SCE_BIT = 0,
HCTL_EN_BIT = 15
};
enum {
CDT0_RPC_SHIFT = 16 + 11,
CDT0_RPC_MASK = DIM2_MASK(5),
CDT1_BS_ISOC_SHIFT = 0,
CDT1_BS_ISOC_MASK = DIM2_MASK(9),
CDT3_BD_SHIFT = 0,
CDT3_BD_MASK = DIM2_MASK(12),
CDT3_BD_ISOC_MASK = DIM2_MASK(13),
CDT3_BA_SHIFT = 16,
ADT0_CE_BIT = 15,
ADT0_LE_BIT = 14,
ADT0_PG_BIT = 13,
ADT1_RDY_BIT = 15,
ADT1_DNE_BIT = 14,
ADT1_ERR_BIT = 13,
ADT1_PS_BIT = 12,
ADT1_MEP_BIT = 11,
ADT1_BD_SHIFT = 0,
ADT1_CTRL_ASYNC_BD_MASK = DIM2_MASK(11),
ADT1_ISOC_SYNC_BD_MASK = DIM2_MASK(13),
CAT_MFE_BIT = 14,
CAT_MT_BIT = 13,
CAT_RNW_BIT = 12,
CAT_CE_BIT = 11,
CAT_CT_SHIFT = 8,
CAT_CT_VAL_SYNC = 0,
CAT_CT_VAL_CONTROL = 1,
CAT_CT_VAL_ASYNC = 2,
CAT_CT_VAL_ISOC = 3,
CAT_CL_SHIFT = 0,
CAT_CL_MASK = DIM2_MASK(6)
};
#endif /* DIM2_OS62420_H */