/* SPDX-License-Identifier: GPL-2.0 */
/*
* PEF2256 registers definition
*
* Copyright 2023 CS GROUP France
*
* Author: Herve Codina <herve.codina@bootlin.com>
*/
#ifndef __PEF2256_REGS_H__
#define __PEF2256_REGS_H__
#include "linux/bitfield.h"
/* Command Register */
#define PEF2256_CMDR 0 x02
#define PEF2256_CMDR_RRES BIT(6 )
#define PEF2256_CMDR_XRES BIT(4 )
#define PEF2256_CMDR_SRES BIT(0 )
/* Interrupt Mask Register 0..5 */
#define PEF2256_IMR0 0 x14
#define PEF2256_IMR1 0 x15
#define PEF2256_IMR2 0 x16
#define PEF2256_IMR3 0 x17
#define PEF2256_IMR4 0 x18
#define PEF2256_IMR5 0 x19
/* Framer Mode Register 0 */
#define PEF2256_FMR0 0 x1C
#define PEF2256_FMR0_XC_MASK GENMASK(7 , 6 )
#define PEF2256_FMR0_XC_NRZ FIELD_PREP_CONST(PEF2256_FMR0_XC_MASK, 0 x0)
#define PEF2256_FMR0_XC_CMI FIELD_PREP_CONST(PEF2256_FMR0_XC_MASK, 0 x1)
#define PEF2256_FMR0_XC_AMI FIELD_PREP_CONST(PEF2256_FMR0_XC_MASK, 0 x2)
#define PEF2256_FMR0_XC_HDB3 FIELD_PREP_CONST(PEF2256_FMR0_XC_MASK, 0 x3)
#define PEF2256_FMR0_RC_MASK GENMASK(5 , 4 )
#define PEF2256_FMR0_RC_NRZ FIELD_PREP_CONST(PEF2256_FMR0_RC_MASK, 0 x0)
#define PEF2256_FMR0_RC_CMI FIELD_PREP_CONST(PEF2256_FMR0_RC_MASK, 0 x1)
#define PEF2256_FMR0_RC_AMI FIELD_PREP_CONST(PEF2256_FMR0_RC_MASK, 0 x2)
#define PEF2256_FMR0_RC_HDB3 FIELD_PREP_CONST(PEF2256_FMR0_RC_MASK, 0 x3)
/* Framer Mode Register 1 */
#define PEF2256_FMR1 0 x1D
#define PEF2256_FMR1_XFS BIT(3 )
#define PEF2256_FMR1_ECM BIT(2 )
/* SSD is defined on 2 bits. The other bit is on SIC1 register */
#define PEF2256_FMR1_SSD_MASK GENMASK(1 , 1 )
#define PEF2256_FMR1_SSD_2048 FIELD_PREP_CONST(PEF2256_FMR1_SSD_MASK, 0 x0)
#define PEF2256_FMR1_SSD_4096 FIELD_PREP_CONST(PEF2256_FMR1_SSD_MASK, 0 x1)
#define PEF2256_FMR1_SSD_8192 FIELD_PREP_CONST(PEF2256_FMR1_SSD_MASK, 0 x0)
#define PEF2256_FMR1_SSD_16384 FIELD_PREP_CONST(PEF2256_FMR1_SSD_MASK, 0 x1)
/* Framer Mode Register 2 */
#define PEF2256_FMR2 0 x1E
#define PEF2256_FMR2_RFS_MASK GENMASK(7 , 6 )
#define PEF2256_FMR2_RFS_DOUBLEFRAME FIELD_PREP_CONST(PEF2256_FMR2_RFS_MASK, 0 x0)
#define PEF2256_FMR2_RFS_CRC4_MULTIFRAME FIELD_PREP_CONST(PEF2256_FMR2_RFS_MASK, 0 x2)
#define PEF2256_FMR2_RFS_AUTO_MULTIFRAME FIELD_PREP_CONST(PEF2256_FMR2_RFS_MASK, 0 x3)
#define PEF2256_FMR2_AXRA BIT(1 )
/* Transmit Service Word */
#define PEF2256_XSW 0 x20
#define PEF2256_XSW_XSIS BIT(7 )
#define PEF2256_XSW_XTM BIT(6 )
#define PEF2256_XSW_XY_MASK GENMASK(5 , 0 )
#define PEF2256_XSW_XY(_v) FIELD_PREP(PEF2256_XSW_XY_MASK, _v)
/* Transmit Spare Bits */
#define PEF2256_XSP 0 x21
#define PEF2256_XSP_XSIF BIT(2 )
/* Transmit Control 0..1 */
#define PEF2256_XC0 0 x22
#define PEF2256_XC1 0 x23
/* Receive Control 0 */
#define PEF2256_RC0 0 x24
#define PEF2256_RC0_SWD BIT(7 )
#define PEF2256_RC0_ASY4 BIT(6 )
/* Receive Control 1 */
#define PEF2256_RC1 0 x25
/* Transmit Pulse Mask 0..1 */
#define PEF2256_XPM0 0 x26
#define PEF2256_XPM1 0 x27
/* Transmit Pulse Mask 2 */
#define PEF2256_XPM2 0 x28
#define PEF2256_XPM2_XLT BIT(6 )
/* Transparent Service Word Mask */
#define PEF2256_TSWM 0 x29
/* Line Interface Mode 0 */
#define PEF2256_LIM0 0 x36
#define PEF2256_2X_LIM0_BIT3 BIT(3 ) /* v2.x, described as a forced '1' bit */
#define PEF2256_LIM0_MAS BIT(0 )
/* Line Interface Mode 1 */
#define PEF2256_LIM1 0 x37
#define PEF2256_12_LIM1_RIL_MASK GENMASK(6 , 4 )
#define PEF2256_12_LIM1_RIL_910 FIELD_PREP_CONST(PEF2256_12_LIM1_RIL_MASK, 0 x0)
#define PEF2256_12_LIM1_RIL_740 FIELD_PREP_CONST(PEF2256_12_LIM1_RIL_MASK, 0 x1)
#define PEF2256_12_LIM1_RIL_590 FIELD_PREP_CONST(PEF2256_12_LIM1_RIL_MASK, 0 x2)
#define PEF2256_12_LIM1_RIL_420 FIELD_PREP_CONST(PEF2256_12_LIM1_RIL_MASK, 0 x3)
#define PEF2256_12_LIM1_RIL_320 FIELD_PREP_CONST(PEF2256_12_LIM1_RIL_MASK, 0 x4)
#define PEF2256_12_LIM1_RIL_210 FIELD_PREP_CONST(PEF2256_12_LIM1_RIL_MASK, 0 x5)
#define PEF2256_12_LIM1_RIL_160 FIELD_PREP_CONST(PEF2256_12_LIM1_RIL_MASK, 0 x6)
#define PEF2256_12_LIM1_RIL_100 FIELD_PREP_CONST(PEF2256_12_LIM1_RIL_MASK, 0 x7)
#define PEF2256_2X_LIM1_RIL_MASK GENMASK(6 , 4 )
#define PEF2256_2X_LIM1_RIL_2250 FIELD_PREP_CONST(PEF2256_2X_LIM1_RIL_MASK, 0 x0)
#define PEF2256_2X_LIM1_RIL_1100 FIELD_PREP_CONST(PEF2256_2X_LIM1_RIL_MASK, 0 x1)
#define PEF2256_2X_LIM1_RIL_600 FIELD_PREP_CONST(PEF2256_2X_LIM1_RIL_MASK, 0 x2)
#define PEF2256_2X_LIM1_RIL_350 FIELD_PREP_CONST(PEF2256_2X_LIM1_RIL_MASK, 0 x3)
#define PEF2256_2X_LIM1_RIL_210 FIELD_PREP_CONST(PEF2256_2X_LIM1_RIL_MASK, 0 x4)
#define PEF2256_2X_LIM1_RIL_140 FIELD_PREP_CONST(PEF2256_2X_LIM1_RIL_MASK, 0 x5)
#define PEF2256_2X_LIM1_RIL_100 FIELD_PREP_CONST(PEF2256_2X_LIM1_RIL_MASK, 0 x6)
#define PEF2256_2X_LIM1_RIL_50 FIELD_PREP_CONST(PEF2256_2X_LIM1_RIL_MASK, 0 x7)
/* Pulse Count Detection */
#define PEF2256_PCD 0 x38
/* Pulse Count Recovery */
#define PEF2256_PCR 0 x39
/* Line Interface Mode 2 */
#define PEF2256_LIM2 0 x3A
#define PEF2256_LIM2_SLT_MASK GENMASK(5 , 4 )
#define PEF2256_LIM2_SLT_THR55 FIELD_PREP_CONST(PEF2256_LIM2_SLT_MASK, 0 x0)
#define PEF2256_LIM2_SLT_THR67 FIELD_PREP_CONST(PEF2256_LIM2_SLT_MASK, 0 x1)
#define PEF2256_LIM2_SLT_THR50 FIELD_PREP_CONST(PEF2256_LIM2_SLT_MASK, 0 x2)
#define PEF2256_LIM2_SLT_THR45 FIELD_PREP_CONST(PEF2256_LIM2_SLT_MASK, 0 x3)
#define PEF2256_LIM2_ELT BIT(2 )
/* System Interface Control 1 */
#define PEF2256_SIC1 0 x3E
#define PEF2256_SIC1_SSC_MASK (BIT(7 ) | BIT(3 ))
#define PEF2256_SIC1_SSC_2048 (0 )
#define PEF2256_SIC1_SSC_4096 BIT(3 )
#define PEF2256_SIC1_SSC_8192 BIT(7 )
#define PEF2256_SIC1_SSC_16384 (BIT(7 ) | BIT(3 ))
/* SSD is defined on 2 bits. The other bit is on FMR1 register */
#define PEF2256_SIC1_SSD_MASK GENMASK(6 , 6 )
#define PEF2256_SIC1_SSD_2048 FIELD_PREP_CONST(PEF2256_SIC1_SSD_MASK, 0 x0)
#define PEF2256_SIC1_SSD_4096 FIELD_PREP_CONST(PEF2256_SIC1_SSD_MASK, 0 x0)
#define PEF2256_SIC1_SSD_8192 FIELD_PREP_CONST(PEF2256_SIC1_SSD_MASK, 0 x1)
#define PEF2256_SIC1_SSD_16384 FIELD_PREP_CONST(PEF2256_SIC1_SSD_MASK, 0 x1)
#define PEF2256_SIC1_RBS_MASK GENMASK(5 , 4 )
#define PEF2256_SIC1_RBS_2FRAMES FIELD_PREP_CONST(PEF2256_SIC1_RBS_MASK, 0 x0)
#define PEF2256_SIC1_RBS_1FRAME FIELD_PREP_CONST(PEF2256_SIC1_RBS_MASK, 0 x1)
#define PEF2256_SIC1_RBS_96BITS FIELD_PREP_CONST(PEF2256_SIC1_RBS_MASK, 0 x2)
#define PEF2256_SIC1_RBS_BYPASS FIELD_PREP_CONST(PEF2256_SIC1_RBS_MASK, 0 x3)
#define PEF2256_SIC1_XBS_MASK GENMASK(1 , 0 )
#define PEF2256_SIC1_XBS_BYPASS FIELD_PREP_CONST(PEF2256_SIC1_XBS_MASK, 0 x0)
#define PEF2256_SIC1_XBS_1FRAME FIELD_PREP_CONST(PEF2256_SIC1_XBS_MASK, 0 x1)
#define PEF2256_SIC1_XBS_2FRAMES FIELD_PREP_CONST(PEF2256_SIC1_XBS_MASK, 0 x2)
#define PEF2256_SIC1_XBS_96BITS FIELD_PREP_CONST(PEF2256_SIC1_XBS_MASK, 0 x3)
/* System Interface Control 2 */
#define PEF2256_SIC2 0 x3F
#define PEF2256_SIC2_SICS_MASK GENMASK(3 , 1 )
#define PEF2256_SIC2_SICS(_v) FIELD_PREP(PEF2256_SIC2_SICS_MASK, _v)
/* System Interface Control 3 */
#define PEF2256_SIC3 0 x40
#define PEF2256_SIC3_RTRI BIT(5 )
#define PEF2256_SIC3_RESX BIT(3 )
#define PEF2256_SIC3_RESR BIT(2 )
/* Clock Mode Register 1 */
#define PEF2256_CMR1 0 x44
#define PEF2256_CMR1_RS_MASK GENMASK(5 , 4 )
#define PEF2256_CMR1_RS_DPLL FIELD_PREP_CONST(PEF2256_CMR1_RS_MASK, 0 x0)
#define PEF2256_CMR1_RS_DPLL_LOS_HIGH FIELD_PREP_CONST(PEF2256_CMR1_RS_MASK, 0 x1)
#define PEF2256_CMR1_RS_DCOR_2048 FIELD_PREP_CONST(PEF2256_CMR1_RS_MASK, 0 x2)
#define PEF2256_CMR1_RS_DCOR_8192 FIELD_PREP_CONST(PEF2256_CMR1_RS_MASK, 0 x3)
#define PEF2256_CMR1_DCS BIT(3 )
/* Clock Mode Register 2 */
#define PEF2256_CMR2 0 x45
#define PEF2256_CMR2_DCOXC BIT(5 )
/* Global Configuration Register */
#define PEF2256_GCR 0 x46
#define PEF2256_GCR_SCI BIT(6 )
#define PEF2256_GCR_ECMC BIT(4 )
/* Port Configuration 5 */
#define PEF2256_PC5 0 x84
#define PEF2256_PC5_CRP BIT(0 )
/* Global Port Configuration 1 */
#define PEF2256_GPC1 0 x85
#define PEF2256_GPC1_CSFP_MASK GENMASK(7 , 5 )
#define PEF2256_GPC1_CSFP_SEC_IN_HIGH FIELD_PREP_CONST(PEF2256_GPC1_CSFP_MASK, 0 x0)
#define PEF2256_GPC1_CSFP_SEC_OUT_HIGH FIELD_PREP_CONST(PEF2256_GPC1_CSFP_MASK, 0 x1)
#define PEF2256_GPC1_CSFP_FSC_OUT_HIGH FIELD_PREP_CONST(PEF2256_GPC1_CSFP_MASK, 0 x2)
#define PEF2256_GPC1_CSFP_FSC_OUT_LOW FIELD_PREP_CONST(PEF2256_GPC1_CSFP_MASK, 0 x3)
/* Port Configuration 6 */
#define PEF2256_PC6 0 x86
/* Global Counter Mode n=1..8 */
#define PEF2256_GCM(_n) (0 x92 + (_n) - 1 )
#define PEF2256_GCM1 0 x92
#define PEF2256_GCM2 0 x93
#define PEF2256_GCM3 0 x94
#define PEF2256_GCM4 0 x95
#define PEF2256_GCM5 0 x96
#define PEF2256_GCM6 0 x97
#define PEF2256_GCM7 0 x98
#define PEF2256_GCM8 0 x99
/* Version Status Register */
#define PEF2256_VSTR 0 x4A
#define PEF2256_VSTR_VERSION_12 0 x00
#define PEF2256_VSTR_VERSION_21 0 x10
#define PEF2256_VSTR_VERSION_2x 0 x05
/* Framer Receive Status 0 */
#define PEF2256_FRS0 0 x4C
#define PEF2256_FRS0_LOS BIT(7 )
#define PEF2256_FRS0_AIS BIT(6 )
/* Interrupt Status Register 0..5 */
#define PEF2256_ISR(_n) (0 x68 + (_n))
#define PEF2256_ISR0 0 x68
#define PEF2256_ISR1 0 x69
#define PEF2256_ISR2 0 x6A
#define PEF2256_ISR3 0 x6B
#define PEF2256_ISR4 0 x6C
#define PEF2256_ISR5 0 x6D
/* Global Interrupt Status */
#define PEF2256_GIS 0 x6E
#define PEF2256_GIS_ISR(_n) BIT(_n)
/* Wafer Identification Register */
#define PEF2256_WID 0 xEC
#define PEF2256_12_WID_MASK GENMASK(1 , 0 )
#define PEF2256_12_WID_VERSION_12 FIELD_PREP_CONST(PEF2256_12_WID_MASK, 0 x3)
#define PEF2256_2X_WID_MASK GENMASK(7 , 6 )
#define PEF2256_2X_WID_VERSION_21 FIELD_PREP_CONST(PEF2256_2X_WID_MASK, 0 x0)
#define PEF2256_2X_WID_VERSION_22 FIELD_PREP_CONST(PEF2256_2X_WID_MASK, 0 x1)
/* IMR2/ISR2 Interrupts common bits */
#define PEF2256_INT2_AIS BIT(3 )
#define PEF2256_INT2_LOS BIT(2 )
#endif /* __PEF2256_REGS_H__ */
Messung V0.5 in Prozent C=94 H=90 G=91
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland