Lines Matching refs:master
170 struct spi_master *master; member
230 static inline void pch_spi_writereg(struct spi_master *master, int idx, u32 val) in pch_spi_writereg() argument
232 struct pch_spi_data *data = spi_master_get_devdata(master); in pch_spi_writereg()
241 static inline u32 pch_spi_readreg(struct spi_master *master, int idx) in pch_spi_readreg() argument
243 struct pch_spi_data *data = spi_master_get_devdata(master); in pch_spi_readreg()
247 static inline void pch_spi_setclr_reg(struct spi_master *master, int idx, in pch_spi_setclr_reg() argument
250 u32 tmp = pch_spi_readreg(master, idx); in pch_spi_setclr_reg()
252 pch_spi_writereg(master, idx, tmp); in pch_spi_setclr_reg()
255 static void pch_spi_set_master_mode(struct spi_master *master) in pch_spi_set_master_mode() argument
257 pch_spi_setclr_reg(master, PCH_SPCR, SPCR_MSTR_BIT, 0); in pch_spi_set_master_mode()
264 static void pch_spi_clear_fifo(struct spi_master *master) in pch_spi_clear_fifo() argument
266 pch_spi_setclr_reg(master, PCH_SPCR, SPCR_FICLR_BIT, 0); in pch_spi_clear_fifo()
267 pch_spi_setclr_reg(master, PCH_SPCR, 0, SPCR_FICLR_BIT); in pch_spi_clear_fifo()
322 pch_spi_setclr_reg(data->master, PCH_SPCR, 0, in pch_spi_handler_sub()
331 dev_vdbg(&data->master->dev, in pch_spi_handler_sub()
396 static void pch_spi_set_baud_rate(struct spi_master *master, u32 speed_hz) in pch_spi_set_baud_rate() argument
404 pch_spi_setclr_reg(master, PCH_SPBRR, n_spbr, MASK_SPBRR_SPBR_BITS); in pch_spi_set_baud_rate()
412 static void pch_spi_set_bits_per_word(struct spi_master *master, in pch_spi_set_bits_per_word() argument
416 pch_spi_setclr_reg(master, PCH_SPBRR, 0, SPBRR_SIZE_BIT); in pch_spi_set_bits_per_word()
418 pch_spi_setclr_reg(master, PCH_SPBRR, SPBRR_SIZE_BIT, 0); in pch_spi_set_bits_per_word()
430 __func__, pch_spi_readreg(spi->master, PCH_SPBRR), in pch_spi_setup_transfer()
432 pch_spi_set_baud_rate(spi->master, spi->max_speed_hz); in pch_spi_setup_transfer()
435 pch_spi_set_bits_per_word(spi->master, spi->bits_per_word); in pch_spi_setup_transfer()
443 pch_spi_setclr_reg(spi->master, PCH_SPCR, flags, in pch_spi_setup_transfer()
447 pch_spi_clear_fifo(spi->master); in pch_spi_setup_transfer()
454 static void pch_spi_reset(struct spi_master *master) in pch_spi_reset() argument
457 pch_spi_writereg(master, PCH_SRST, 0x1); in pch_spi_reset()
460 pch_spi_writereg(master, PCH_SRST, 0x0); in pch_spi_reset()
467 struct pch_spi_data *data = spi_master_get_devdata(pspi->master); in pch_spi_transfer()
564 dev_dbg(&data->master->dev, "%s:setting baud rate\n", __func__); in pch_spi_set_tx()
565 pch_spi_set_baud_rate(data->master, data->cur_trans->speed_hz); in pch_spi_set_tx()
571 dev_dbg(&data->master->dev, "%s:set bits per word\n", __func__); in pch_spi_set_tx()
572 pch_spi_set_bits_per_word(data->master, in pch_spi_set_tx()
598 dev_err(&data->master->dev, "%s :kzalloc failed\n", __func__); in pch_spi_set_tx()
629 dev_dbg(&data->master->dev, "\n%s:Pulling down SSN low - writing " in pch_spi_set_tx()
631 pch_spi_writereg(data->master, PCH_SSNXCR, SSN_LOW); in pch_spi_set_tx()
634 pch_spi_writereg(data->master, PCH_SPDWR, data->pkt_tx_buff[j]); in pch_spi_set_tx()
647 dev_dbg(&data->master->dev, "%s called\n", __func__); in pch_spi_nomore_transfer()
653 dev_dbg(&data->master->dev, in pch_spi_nomore_transfer()
661 dev_dbg(&data->master->dev, in pch_spi_nomore_transfer()
676 dev_dbg(&data->master->dev, "%s:Invoke queue_work\n", __func__); in pch_spi_nomore_transfer()
680 dev_dbg(&data->master->dev, in pch_spi_nomore_transfer()
700 pch_spi_setclr_reg(data->master, PCH_SPCR, in pch_spi_set_ir()
707 pch_spi_setclr_reg(data->master, PCH_SPCR, in pch_spi_set_ir()
715 dev_dbg(&data->master->dev, in pch_spi_set_ir()
721 pch_spi_writereg(data->master, PCH_SPSR, in pch_spi_set_ir()
722 pch_spi_readreg(data->master, PCH_SPSR)); in pch_spi_set_ir()
724 pch_spi_setclr_reg(data->master, PCH_SPCR, 0, PCH_ALL | SPCR_SPE_BIT); in pch_spi_set_ir()
726 pch_spi_clear_fifo(data->master); in pch_spi_set_ir()
788 pch_spi_setclr_reg(data->master, PCH_SPCR, SPCR_SPE_BIT, PCH_ALL); in pch_spi_start_transfer()
794 dev_dbg(&data->master->dev, in pch_spi_start_transfer()
800 dev_err(&data->master->dev, in pch_spi_start_transfer()
803 dma_sync_sg_for_cpu(&data->master->dev, dma->sg_rx_p, dma->nent, in pch_spi_start_transfer()
806 dma_sync_sg_for_cpu(&data->master->dev, dma->sg_tx_p, dma->nent, in pch_spi_start_transfer()
818 pch_spi_setclr_reg(data->master, PCH_SPCR, 0, in pch_spi_start_transfer()
822 pch_spi_writereg(data->master, PCH_SPSR, in pch_spi_start_transfer()
823 pch_spi_readreg(data->master, PCH_SPSR)); in pch_spi_start_transfer()
825 pch_spi_clear_fifo(data->master); in pch_spi_start_transfer()
884 dev_err(&data->master->dev, in pch_spi_request_dma()
899 dev_err(&data->master->dev, in pch_spi_request_dma()
946 dev_dbg(&data->master->dev, "%s:setting baud rate\n", __func__); in pch_spi_handle_dma()
948 pch_spi_set_baud_rate(data->master, data->cur_trans->speed_hz); in pch_spi_handle_dma()
956 dev_dbg(&data->master->dev, "%s:set bits per word\n", __func__); in pch_spi_handle_dma()
958 pch_spi_set_bits_per_word(data->master, in pch_spi_handle_dma()
1002 dev_dbg(&data->master->dev, "%s num=%d size=%d rem=%d\n", in pch_spi_handle_dma()
1007 pch_spi_setclr_reg(data->master, PCH_SPCR, in pch_spi_handle_dma()
1046 dev_err(&data->master->dev, in pch_spi_handle_dma()
1050 dma_sync_sg_for_device(&data->master->dev, sg, num, DMA_FROM_DEVICE); in pch_spi_handle_dma()
1105 dev_err(&data->master->dev, in pch_spi_handle_dma()
1109 dma_sync_sg_for_device(&data->master->dev, sg, num, DMA_TO_DEVICE); in pch_spi_handle_dma()
1115 dev_dbg(&data->master->dev, "%s:Pulling down SSN low - writing 0x2 to SSNXCR\n", __func__); in pch_spi_handle_dma()
1118 pch_spi_writereg(data->master, PCH_SSNXCR, SSN_LOW); in pch_spi_handle_dma()
1134 dev_dbg(&data->master->dev, "%s data initialized\n", __func__); in pch_spi_process_messages()
1139 dev_dbg(&data->master->dev, in pch_spi_process_messages()
1159 dev_dbg(&data->master->dev, in pch_spi_process_messages()
1177 pch_spi_writereg(data->master, PCH_SSNXCR, SSN_NO_CONTROL); in pch_spi_process_messages()
1188 dev_dbg(&data->master->dev, "%s " in pch_spi_process_messages()
1194 dev_dbg(&data->master->dev, "%s " in pch_spi_process_messages()
1234 dev_dbg(&data->master->dev, in pch_spi_process_messages()
1240 dev_dbg(&data->master->dev, "%s:" in pch_spi_process_messages()
1259 pch_spi_writereg(data->master, PCH_SSNXCR, SSN_HIGH); in pch_spi_process_messages()
1296 pch_spi_reset(data->master); in pch_spi_get_resources()
1346 struct spi_master *master; in pch_spi_pd_probe() local
1352 master = spi_alloc_master(&board_dat->pdev->dev, in pch_spi_pd_probe()
1354 if (!master) { in pch_spi_pd_probe()
1360 data = spi_master_get_devdata(master); in pch_spi_pd_probe()
1361 data->master = master; in pch_spi_pd_probe()
1380 master->num_chipselect = PCH_MAX_CS; in pch_spi_pd_probe()
1381 master->transfer = pch_spi_transfer; in pch_spi_pd_probe()
1382 master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST; in pch_spi_pd_probe()
1383 master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16); in pch_spi_pd_probe()
1384 master->max_speed_hz = PCH_MAX_BAUDRATE; in pch_spi_pd_probe()
1413 pch_spi_set_master_mode(master); in pch_spi_pd_probe()
1420 ret = spi_register_master(master); in pch_spi_pd_probe()
1437 spi_master_put(master); in pch_spi_pd_probe()
1473 pch_spi_setclr_reg(data->master, PCH_SPCR, 0, PCH_ALL); in pch_spi_pd_remove()
1479 spi_unregister_master(data->master); in pch_spi_pd_remove()
1511 pch_spi_setclr_reg(data->master, PCH_SPCR, 0, PCH_ALL); in pch_spi_pd_suspend()
1512 pch_spi_reset(data->master); in pch_spi_pd_suspend()
1546 pch_spi_reset(data->master); in pch_spi_pd_resume()
1547 pch_spi_set_master_mode(data->master); in pch_spi_pd_resume()