Lines Matching refs:interface

92  * Initialize and start the SPI interface.
94 * @interface: The identifier of the packet interface to configure and
95 * use as a SPI interface.
96 * @mode: The operating mode for the SPI interface. The interface
105 int cvmx_spi_start_interface(int interface, cvmx_spi_mode_t mode, int timeout,
114 INVOKE_CB(cvmx_spi_callbacks.reset_cb, interface, mode);
117 INVOKE_CB(cvmx_spi_callbacks.calendar_setup_cb, interface, mode,
121 INVOKE_CB(cvmx_spi_callbacks.clock_detect_cb, interface, mode, timeout);
124 INVOKE_CB(cvmx_spi_callbacks.training_cb, interface, mode, timeout);
127 INVOKE_CB(cvmx_spi_callbacks.calendar_sync_cb, interface, mode,
130 /* Callback to handle interface coming up */
131 INVOKE_CB(cvmx_spi_callbacks.interface_up_cb, interface, mode);
137 * This routine restarts the SPI interface after it has lost synchronization
140 * @interface: The identifier of the packet interface to configure and
141 * use as a SPI interface.
142 * @mode: The operating mode for the SPI interface. The interface
150 int cvmx_spi_restart_interface(int interface, cvmx_spi_mode_t mode, int timeout)
157 cvmx_dprintf("SPI%d: Restart %s\n", interface, modes[mode]);
160 INVOKE_CB(cvmx_spi_callbacks.reset_cb, interface, mode);
166 INVOKE_CB(cvmx_spi_callbacks.clock_detect_cb, interface, mode, timeout);
169 INVOKE_CB(cvmx_spi_callbacks.training_cb, interface, mode, timeout);
172 INVOKE_CB(cvmx_spi_callbacks.calendar_sync_cb, interface, mode,
175 /* Callback to handle interface coming up */
176 INVOKE_CB(cvmx_spi_callbacks.interface_up_cb, interface, mode);
185 * @interface: The identifier of the packet interface to configure and
186 * use as a SPI interface.
187 * @mode: The operating mode for the SPI interface. The interface
195 int cvmx_spi_reset_cb(int interface, cvmx_spi_mode_t mode)
207 spxx_int_msk.u64 = cvmx_read_csr(CVMX_SPXX_INT_MSK(interface));
208 cvmx_write_csr(CVMX_SPXX_INT_MSK(interface), 0);
209 stxx_int_msk.u64 = cvmx_read_csr(CVMX_STXX_INT_MSK(interface));
210 cvmx_write_csr(CVMX_STXX_INT_MSK(interface), 0);
212 /* Run BIST in the SPI interface */
213 cvmx_write_csr(CVMX_SRXX_COM_CTL(interface), 0);
214 cvmx_write_csr(CVMX_STXX_COM_CTL(interface), 0);
217 cvmx_write_csr(CVMX_SPXX_CLK_CTL(interface), spxx_clk_ctl.u64);
219 spxx_bist_stat.u64 = cvmx_read_csr(CVMX_SPXX_BIST_STAT(interface));
223 interface);
226 interface);
229 interface);
238 cvmx_write_csr(CVMX_SRXX_SPI4_CALX(index, interface),
243 cvmx_write_csr(CVMX_STXX_SPI4_CALX(index, interface),
248 cvmx_write_csr(CVMX_SPXX_INT_REG(interface),
249 cvmx_read_csr(CVMX_SPXX_INT_REG(interface)));
250 cvmx_write_csr(CVMX_SPXX_INT_MSK(interface), spxx_int_msk.u64);
251 cvmx_write_csr(CVMX_STXX_INT_REG(interface),
252 cvmx_read_csr(CVMX_STXX_INT_REG(interface)));
253 cvmx_write_csr(CVMX_STXX_INT_MSK(interface), stxx_int_msk.u64);
267 cvmx_write_csr(CVMX_SPXX_CLK_CTL(interface), spxx_clk_ctl.u64);
272 cvmx_write_csr(CVMX_SPXX_CLK_CTL(interface), spxx_clk_ctl.u64);
288 cvmx_write_csr(CVMX_SPXX_TRN4_CTL(interface), spxx_trn4_ctl.u64);
291 cvmx_write_csr(CVMX_SPXX_DBG_DESKEW_CTL(interface),
300 * @interface: The identifier of the packet interface to configure and
301 * use as a SPI interface.
302 * @mode: The operating mode for the SPI interface. The interface
311 int cvmx_spi_calendar_setup_cb(int interface, cvmx_spi_mode_t mode,
325 cvmx_write_csr(CVMX_SRXX_COM_CTL(interface), srxx_com_ctl.u64);
339 cvmx_write_csr(CVMX_SRXX_SPI4_CALX(index, interface),
346 cvmx_write_csr(CVMX_SRXX_SPI4_STAT(interface),
362 cvmx_write_csr(CVMX_STXX_ARB_CTL(interface), stxx_arb_ctl.u64);
368 cvmx_write_csr(CVMX_GMXX_TX_SPI_MAX(interface),
373 cvmx_write_csr(CVMX_GMXX_TX_SPI_THRESH(interface),
379 cvmx_write_csr(CVMX_GMXX_TX_SPI_CTL(interface),
387 cvmx_write_csr(CVMX_STXX_SPI4_DAT(interface),
402 cvmx_write_csr(CVMX_STXX_SPI4_CALX(index, interface),
409 cvmx_write_csr(CVMX_STXX_SPI4_STAT(interface),
419 * @interface: The identifier of the packet interface to configure and
420 * use as a SPI interface.
421 * @mode: The operating mode for the SPI interface. The interface
430 int cvmx_spi_clock_detect_cb(int interface, cvmx_spi_mode_t mode, int timeout)
439 * present for the SPI interface to operate.
441 cvmx_dprintf("SPI%d: Waiting to see TsClk...\n", interface);
449 stat.u64 = cvmx_read_csr(CVMX_SPXX_CLK_STAT(interface));
456 cvmx_write_csr(CVMX_SPXX_CLK_STAT(interface), stat.u64);
461 cvmx_dprintf("SPI%d: Timeout\n", interface);
466 cvmx_dprintf("SPI%d: Waiting to see RsClk...\n", interface);
474 stat.u64 = cvmx_read_csr(CVMX_SPXX_CLK_STAT(interface));
481 cvmx_write_csr(CVMX_SPXX_CLK_STAT(interface), stat.u64);
486 cvmx_dprintf("SPI%d: Timeout\n", interface);
497 * @interface: The identifier of the packet interface to configure and
498 * use as a SPI interface.
499 * @mode: The operating mode for the SPI interface. The interface
508 int cvmx_spi_training_cb(int interface, cvmx_spi_mode_t mode, int timeout)
529 cvmx_write_csr(CVMX_SPXX_CLK_CTL(interface), spxx_clk_ctl.u64);
533 spxx_trn4_ctl.u64 = cvmx_read_csr(CVMX_SPXX_TRN4_CTL(interface));
535 cvmx_write_csr(CVMX_SPXX_TRN4_CTL(interface), spxx_trn4_ctl.u64);
538 cvmx_dprintf("SPI%d: Waiting for training\n", interface);
548 stat.u64 = cvmx_read_csr(CVMX_SPXX_CLK_STAT(interface));
551 cvmx_write_csr(CVMX_SPXX_CLK_STAT(interface), stat.u64);
555 cvmx_dprintf("SPI%d: Timeout\n", interface);
566 * @interface: The identifier of the packet interface to configure and
567 * use as a SPI interface.
568 * @mode: The operating mode for the SPI interface. The interface
577 int cvmx_spi_calendar_sync_cb(int interface, cvmx_spi_mode_t mode, int timeout)
581 /* SRX0 interface should be good, send calendar data */
585 interface);
586 srxx_com_ctl.u64 = cvmx_read_csr(CVMX_SRXX_COM_CTL(interface));
589 cvmx_write_csr(CVMX_SRXX_COM_CTL(interface), srxx_com_ctl.u64);
601 cvmx_write_csr(CVMX_STXX_COM_CTL(interface), stxx_com_ctl.u64);
605 interface, interface);
609 stat.u64 = cvmx_read_csr(CVMX_SPXX_CLK_STAT(interface));
611 cvmx_dprintf("SPI%d: Timeout\n", interface);
621 * Callback to handle interface up
623 * @interface: The identifier of the packet interface to configure and
624 * use as a SPI interface.
625 * @mode: The operating mode for the SPI interface. The interface
633 int cvmx_spi_interface_up_cb(int interface, cvmx_spi_mode_t mode)
641 srxx_com_ctl.u64 = cvmx_read_csr(CVMX_SRXX_COM_CTL(interface));
643 cvmx_write_csr(CVMX_SRXX_COM_CTL(interface), srxx_com_ctl.u64);
644 cvmx_dprintf("SPI%d: Rx is now up\n", interface);
649 stxx_com_ctl.u64 = cvmx_read_csr(CVMX_STXX_COM_CTL(interface));
651 cvmx_write_csr(CVMX_STXX_COM_CTL(interface), stxx_com_ctl.u64);
652 cvmx_dprintf("SPI%d: Tx is now up\n", interface);
657 cvmx_write_csr(CVMX_GMXX_RXX_FRM_MIN(0, interface),
661 cvmx_write_csr(CVMX_GMXX_RXX_FRM_MAX(0, interface),
665 cvmx_write_csr(CVMX_GMXX_RXX_JABBER(0, interface), gmxx_rxx_jabber.u64);