void exar7250_init(struct channel *sc) { exar7250_write(sc, SBE_2T3E3_FRAMER_REG_OPERATING_MODE, SBE_2T3E3_FRAMER_VAL_T3_CBIT | SBE_2T3E3_FRAMER_VAL_INTERRUPT_ENABLE_RESET | SBE_2T3E3_FRAMER_VAL_TIMING_ASYNCH_TXINCLK); exar7250_write(sc, SBE_2T3E3_FRAMER_REG_IO_CONTROL, SBE_2T3E3_FRAMER_VAL_DISABLE_TX_LOSS_OF_CLOCK | SBE_2T3E3_FRAMER_VAL_DISABLE_RX_LOSS_OF_CLOCK | SBE_2T3E3_FRAMER_VAL_AMI_LINE_CODE | SBE_2T3E3_FRAMER_VAL_RX_LINE_CLOCK_INVERT); exar7250_set_frame_type(sc, SBE_2T3E3_FRAME_TYPE_T3_CBIT); }
void t3e3_set_frame_type(struct channel *sc, u32 mode) { if (sc->p.frame_type == mode) return; if (sc->r.flags & SBE_2T3E3_FLAG_NETWORK_UP) { dev_err(&sc->pdev->dev, "SBE 2T3E3: changing frame type during active connection\n"); return; } exar7300_set_frame_type(sc, mode); exar7250_set_frame_type(sc, mode); cpld_set_frame_type(sc, mode); sc->p.frame_type = mode; }