Lines Matching full:rs

70 static inline u32 mt7621_spi_read(struct mt7621_spi *rs, u32 reg)  in mt7621_spi_read()  argument
72 return ioread32(rs->base + reg); in mt7621_spi_read()
75 static inline void mt7621_spi_write(struct mt7621_spi *rs, u32 reg, u32 val) in mt7621_spi_write() argument
77 iowrite32(val, rs->base + reg); in mt7621_spi_write()
82 struct mt7621_spi *rs = spidev_to_mt7621_spi(spi); in mt7621_spi_set_native_cs() local
93 host = mt7621_spi_read(rs, MT7621_SPI_MASTER); in mt7621_spi_set_native_cs()
96 mt7621_spi_write(rs, MT7621_SPI_MASTER, host); in mt7621_spi_set_native_cs()
98 rs->pending_write = 0; in mt7621_spi_set_native_cs()
102 mt7621_spi_write(rs, MT7621_SPI_POLAR, polar); in mt7621_spi_set_native_cs()
107 struct mt7621_spi *rs = spidev_to_mt7621_spi(spi); in mt7621_spi_prepare() local
113 rate = DIV_ROUND_UP(rs->sys_freq, speed); in mt7621_spi_prepare()
122 reg = mt7621_spi_read(rs, MT7621_SPI_MASTER); in mt7621_spi_prepare()
125 rs->speed = speed; in mt7621_spi_prepare()
138 mt7621_spi_write(rs, MT7621_SPI_MASTER, reg); in mt7621_spi_prepare()
143 static inline int mt7621_spi_wait_till_ready(struct mt7621_spi *rs) in mt7621_spi_wait_till_ready() argument
150 status = mt7621_spi_read(rs, MT7621_SPI_TRANS); in mt7621_spi_wait_till_ready()
163 struct mt7621_spi *rs = spi_controller_get_devdata(host); in mt7621_spi_prepare_message() local
168 mt7621_spi_wait_till_ready(rs); in mt7621_spi_prepare_message()
177 static void mt7621_spi_read_half_duplex(struct mt7621_spi *rs, in mt7621_spi_read_half_duplex() argument
187 tx_len = rs->pending_write; in mt7621_spi_read_half_duplex()
188 rs->pending_write = 0; in mt7621_spi_read_half_duplex()
198 mt7621_spi_write(rs, MT7621_SPI_MOREBUF, val); in mt7621_spi_read_half_duplex()
202 val = mt7621_spi_read(rs, MT7621_SPI_TRANS); in mt7621_spi_read_half_duplex()
204 mt7621_spi_write(rs, MT7621_SPI_TRANS, val); in mt7621_spi_read_half_duplex()
206 mt7621_spi_wait_till_ready(rs); in mt7621_spi_read_half_duplex()
210 val = mt7621_spi_read(rs, MT7621_SPI_DATA0 + i); in mt7621_spi_read_half_duplex()
219 static inline void mt7621_spi_flush(struct mt7621_spi *rs) in mt7621_spi_flush() argument
221 mt7621_spi_read_half_duplex(rs, 0, NULL); in mt7621_spi_flush()
224 static void mt7621_spi_write_half_duplex(struct mt7621_spi *rs, in mt7621_spi_write_half_duplex() argument
227 int len = rs->pending_write; in mt7621_spi_write_half_duplex()
231 val = mt7621_spi_read(rs, MT7621_SPI_OPCODE + (len & ~3)); in mt7621_spi_write_half_duplex()
240 rs->pending_write = len; in mt7621_spi_write_half_duplex()
241 mt7621_spi_flush(rs); in mt7621_spi_write_half_duplex()
251 mt7621_spi_write(rs, MT7621_SPI_OPCODE + len - 4, val); in mt7621_spi_write_half_duplex()
262 mt7621_spi_write(rs, MT7621_SPI_OPCODE + (len & ~3), val); in mt7621_spi_write_half_duplex()
265 rs->pending_write = len; in mt7621_spi_write_half_duplex()
266 mt7621_spi_flush(rs); in mt7621_spi_write_half_duplex()
273 struct mt7621_spi *rs = spi_controller_get_devdata(host); in mt7621_spi_transfer_one() local
285 mt7621_spi_read_half_duplex(rs, t->len, t->rx_buf); in mt7621_spi_transfer_one()
287 mt7621_spi_write_half_duplex(rs, t->len, t->tx_buf); in mt7621_spi_transfer_one()
295 struct mt7621_spi *rs = spidev_to_mt7621_spi(spi); in mt7621_spi_setup() local
298 (spi->max_speed_hz > (rs->sys_freq / 2))) in mt7621_spi_setup()
299 spi->max_speed_hz = rs->sys_freq / 2; in mt7621_spi_setup()
301 if (spi->max_speed_hz < (rs->sys_freq / 4097)) { in mt7621_spi_setup()
320 struct mt7621_spi *rs; in mt7621_spi_probe() local
338 host = devm_spi_alloc_host(&pdev->dev, sizeof(*rs)); in mt7621_spi_probe()
358 rs = spi_controller_get_devdata(host); in mt7621_spi_probe()
359 rs->base = base; in mt7621_spi_probe()
360 rs->host = host; in mt7621_spi_probe()
361 rs->sys_freq = clk_get_rate(clk); in mt7621_spi_probe()
362 rs->pending_write = 0; in mt7621_spi_probe()
363 dev_info(&pdev->dev, "sys_freq: %u\n", rs->sys_freq); in mt7621_spi_probe()