Lines Matching full:cs
92 struct spi_mpc8xxx_cs *cs = spi->controller_state; in fsl_spi_change_mode() local
97 if (cs->hw_mode == mpc8xxx_spi_read_reg(mode)) in fsl_spi_change_mode()
104 mpc8xxx_spi_write_reg(mode, cs->hw_mode & ~SPMODE_ENABLE); in fsl_spi_change_mode()
110 mpc8xxx_spi_write_reg(mode, cs->hw_mode); in fsl_spi_change_mode()
118 struct spi_mpc8xxx_cs *cs = spi->controller_state; in fsl_spi_chipselect() local
128 mpc8xxx_spi->rx_shift = cs->rx_shift; in fsl_spi_chipselect()
129 mpc8xxx_spi->tx_shift = cs->tx_shift; in fsl_spi_chipselect()
130 mpc8xxx_spi->get_rx = cs->get_rx; in fsl_spi_chipselect()
131 mpc8xxx_spi->get_tx = cs->get_tx; in fsl_spi_chipselect()
174 static int mspi_apply_cpu_mode_quirks(struct spi_mpc8xxx_cs *cs, in mspi_apply_cpu_mode_quirks() argument
179 cs->rx_shift = 0; in mspi_apply_cpu_mode_quirks()
180 cs->tx_shift = 0; in mspi_apply_cpu_mode_quirks()
182 cs->get_rx = mpc8xxx_spi_rx_buf_u8; in mspi_apply_cpu_mode_quirks()
183 cs->get_tx = mpc8xxx_spi_tx_buf_u8; in mspi_apply_cpu_mode_quirks()
185 cs->get_rx = mpc8xxx_spi_rx_buf_u16; in mspi_apply_cpu_mode_quirks()
186 cs->get_tx = mpc8xxx_spi_tx_buf_u16; in mspi_apply_cpu_mode_quirks()
188 cs->get_rx = mpc8xxx_spi_rx_buf_u32; in mspi_apply_cpu_mode_quirks()
189 cs->get_tx = mpc8xxx_spi_tx_buf_u32; in mspi_apply_cpu_mode_quirks()
194 mpc8xxx_spi->set_shifts(&cs->rx_shift, &cs->tx_shift, in mspi_apply_cpu_mode_quirks()
198 mpc8xxx_spi->rx_shift = cs->rx_shift; in mspi_apply_cpu_mode_quirks()
199 mpc8xxx_spi->tx_shift = cs->tx_shift; in mspi_apply_cpu_mode_quirks()
200 mpc8xxx_spi->get_rx = cs->get_rx; in mspi_apply_cpu_mode_quirks()
201 mpc8xxx_spi->get_tx = cs->get_tx; in mspi_apply_cpu_mode_quirks()
206 static int mspi_apply_qe_mode_quirks(struct spi_mpc8xxx_cs *cs, in mspi_apply_qe_mode_quirks() argument
231 struct spi_mpc8xxx_cs *cs = spi->controller_state; in fsl_spi_setup_transfer() local
248 bits_per_word = mspi_apply_cpu_mode_quirks(cs, spi, in fsl_spi_setup_transfer()
252 bits_per_word = mspi_apply_qe_mode_quirks(cs, spi, in fsl_spi_setup_transfer()
264 cs->hw_mode &= ~(SPMODE_LEN(0xF) | SPMODE_DIV16 in fsl_spi_setup_transfer()
267 cs->hw_mode |= SPMODE_LEN(bits_per_word); in fsl_spi_setup_transfer()
270 cs->hw_mode |= SPMODE_DIV16; in fsl_spi_setup_transfer()
283 cs->hw_mode |= SPMODE_PM(pm); in fsl_spi_setup_transfer()
382 /* Don't allow changes if CS is active */ in fsl_spi_do_one_msg()
390 "speed_hz cannot change while CS is active\n"); in fsl_spi_do_one_msg()
446 struct spi_mpc8xxx_cs *cs = spi_get_ctldata(spi); in fsl_spi_setup() local
451 if (!cs) { in fsl_spi_setup()
452 cs = kzalloc(sizeof(*cs), GFP_KERNEL); in fsl_spi_setup()
453 if (!cs) in fsl_spi_setup()
455 spi_set_ctldata(spi, cs); in fsl_spi_setup()
462 hw_mode = cs->hw_mode; /* Save original settings */ in fsl_spi_setup()
463 cs->hw_mode = mpc8xxx_spi_read_reg(®_base->mode); in fsl_spi_setup()
465 cs->hw_mode &= ~(SPMODE_CP_BEGIN_EDGECLK | SPMODE_CI_INACTIVEHIGH in fsl_spi_setup()
469 cs->hw_mode |= SPMODE_CP_BEGIN_EDGECLK; in fsl_spi_setup()
471 cs->hw_mode |= SPMODE_CI_INACTIVEHIGH; in fsl_spi_setup()
473 cs->hw_mode |= SPMODE_REV; in fsl_spi_setup()
475 cs->hw_mode |= SPMODE_LOOP; in fsl_spi_setup()
479 cs->hw_mode = hw_mode; /* Restore settings */ in fsl_spi_setup()
481 kfree(cs); in fsl_spi_setup()
493 struct spi_mpc8xxx_cs *cs = spi_get_ctldata(spi); in fsl_spi_cleanup() local
495 kfree(cs); in fsl_spi_cleanup()
558 u16 cs = spi->chip_select; in fsl_spi_grlib_cs_control() local
562 } else if (cs < mpc8xxx_spi->native_chipselects) { in fsl_spi_grlib_cs_control()
564 slvsel = on ? (slvsel | (1 << cs)) : (slvsel & ~(1 << cs)); in fsl_spi_grlib_cs_control()
741 * appropriate callback for dealing with the CS lines. This isn't in of_fsl_spi_probe()
744 ret = gpiod_count(dev, "cs"); in of_fsl_spi_probe()