Symbol: spi_st
drivers/spi/spi-st-ssc4.c
101
count = spi_st->words_remaining;
drivers/spi/spi-st-ssc4.c
104
word = readl_relaxed(spi_st->base + SSC_RBUF);
drivers/spi/spi-st-ssc4.c
106
if (spi_st->rx_ptr) {
drivers/spi/spi-st-ssc4.c
107
if (spi_st->bytes_per_word == 1) {
drivers/spi/spi-st-ssc4.c
108
*spi_st->rx_ptr++ = (uint8_t)word;
drivers/spi/spi-st-ssc4.c
110
*spi_st->rx_ptr++ = (word >> 8);
drivers/spi/spi-st-ssc4.c
111
*spi_st->rx_ptr++ = word & 0xff;
drivers/spi/spi-st-ssc4.c
115
spi_st->words_remaining -= count;
drivers/spi/spi-st-ssc4.c
121
struct spi_st *spi_st = spi_controller_get_devdata(host);
drivers/spi/spi-st-ssc4.c
125
spi_st->tx_ptr = t->tx_buf;
drivers/spi/spi-st-ssc4.c
126
spi_st->rx_ptr = t->rx_buf;
drivers/spi/spi-st-ssc4.c
133
spi_st->bytes_per_word = 2;
drivers/spi/spi-st-ssc4.c
134
spi_st->words_remaining = t->len / 2;
drivers/spi/spi-st-ssc4.c
141
spi_st->bytes_per_word = 2;
drivers/spi/spi-st-ssc4.c
142
spi_st->words_remaining = t->len / 2;
drivers/spi/spi-st-ssc4.c
145
ctl = readl_relaxed(spi_st->base + SSC_CTL);
drivers/spi/spi-st-ssc4.c
146
writel_relaxed((ctl | 0xf), spi_st->base + SSC_CTL);
drivers/spi/spi-st-ssc4.c
148
readl_relaxed(spi_st->base + SSC_RBUF);
drivers/spi/spi-st-ssc4.c
151
spi_st->bytes_per_word = 1;
drivers/spi/spi-st-ssc4.c
152
spi_st->words_remaining = t->len;
drivers/spi/spi-st-ssc4.c
155
reinit_completion(&spi_st->done);
drivers/spi/spi-st-ssc4.c
158
ssc_write_tx_fifo(spi_st);
drivers/spi/spi-st-ssc4.c
159
writel_relaxed(SSC_IEN_TEEN, spi_st->base + SSC_IEN);
drivers/spi/spi-st-ssc4.c
162
wait_for_completion(&spi_st->done);
drivers/spi/spi-st-ssc4.c
166
writel_relaxed(ctl, spi_st->base + SSC_CTL);
drivers/spi/spi-st-ssc4.c
177
struct spi_st *spi_st = spi_controller_get_devdata(spi->controller);
drivers/spi/spi-st-ssc4.c
191
spi_st_clk = clk_get_rate(spi_st->clk);
drivers/spi/spi-st-ssc4.c
201
spi_st->baud = spi_st_clk / (2 * sscbrg);
drivers/spi/spi-st-ssc4.c
205
writel_relaxed(sscbrg, spi_st->base + SSC_BRG);
drivers/spi/spi-st-ssc4.c
209
hz, spi_st->baud, sscbrg);
drivers/spi/spi-st-ssc4.c
212
var = readl_relaxed(spi_st->base + SSC_CTL);
drivers/spi/spi-st-ssc4.c
241
writel_relaxed(var, spi_st->base + SSC_CTL);
drivers/spi/spi-st-ssc4.c
244
readl_relaxed(spi_st->base + SSC_RBUF);
drivers/spi/spi-st-ssc4.c
252
struct spi_st *spi_st = (struct spi_st *)dev_id;
drivers/spi/spi-st-ssc4.c
255
ssc_read_rx_fifo(spi_st);
drivers/spi/spi-st-ssc4.c
258
if (spi_st->words_remaining) {
drivers/spi/spi-st-ssc4.c
259
ssc_write_tx_fifo(spi_st);
drivers/spi/spi-st-ssc4.c
262
writel_relaxed(0x0, spi_st->base + SSC_IEN);
drivers/spi/spi-st-ssc4.c
267
readl(spi_st->base + SSC_IEN);
drivers/spi/spi-st-ssc4.c
268
complete(&spi_st->done);
drivers/spi/spi-st-ssc4.c
278
struct spi_st *spi_st;
drivers/spi/spi-st-ssc4.c
282
host = spi_alloc_host(&pdev->dev, sizeof(*spi_st));
drivers/spi/spi-st-ssc4.c
294
spi_st = spi_controller_get_devdata(host);
drivers/spi/spi-st-ssc4.c
296
spi_st->clk = devm_clk_get(&pdev->dev, "ssc");
drivers/spi/spi-st-ssc4.c
297
if (IS_ERR(spi_st->clk)) {
drivers/spi/spi-st-ssc4.c
299
ret = PTR_ERR(spi_st->clk);
drivers/spi/spi-st-ssc4.c
303
ret = clk_prepare_enable(spi_st->clk);
drivers/spi/spi-st-ssc4.c
307
init_completion(&spi_st->done);
drivers/spi/spi-st-ssc4.c
310
spi_st->base = devm_platform_ioremap_resource(pdev, 0);
drivers/spi/spi-st-ssc4.c
311
if (IS_ERR(spi_st->base)) {
drivers/spi/spi-st-ssc4.c
312
ret = PTR_ERR(spi_st->base);
drivers/spi/spi-st-ssc4.c
317
writel_relaxed(0x0, spi_st->base + SSC_I2C);
drivers/spi/spi-st-ssc4.c
318
var = readw_relaxed(spi_st->base + SSC_CTL);
drivers/spi/spi-st-ssc4.c
320
writel_relaxed(var, spi_st->base + SSC_CTL);
drivers/spi/spi-st-ssc4.c
323
var = readl_relaxed(spi_st->base + SSC_CTL);
drivers/spi/spi-st-ssc4.c
325
writel_relaxed(var, spi_st->base + SSC_CTL);
drivers/spi/spi-st-ssc4.c
328
var = readl_relaxed(spi_st->base + SSC_CTL);
drivers/spi/spi-st-ssc4.c
330
writel_relaxed(var, spi_st->base + SSC_CTL);
drivers/spi/spi-st-ssc4.c
340
pdev->name, spi_st);
drivers/spi/spi-st-ssc4.c
363
clk_disable_unprepare(spi_st->clk);
drivers/spi/spi-st-ssc4.c
372
struct spi_st *spi_st = spi_controller_get_devdata(host);
drivers/spi/spi-st-ssc4.c
376
clk_disable_unprepare(spi_st->clk);
drivers/spi/spi-st-ssc4.c
384
struct spi_st *spi_st = spi_controller_get_devdata(host);
drivers/spi/spi-st-ssc4.c
386
writel_relaxed(0, spi_st->base + SSC_IEN);
drivers/spi/spi-st-ssc4.c
389
clk_disable_unprepare(spi_st->clk);
drivers/spi/spi-st-ssc4.c
397
struct spi_st *spi_st = spi_controller_get_devdata(host);
drivers/spi/spi-st-ssc4.c
400
ret = clk_prepare_enable(spi_st->clk);
drivers/spi/spi-st-ssc4.c
69
static void ssc_write_tx_fifo(struct spi_st *spi_st)
drivers/spi/spi-st-ssc4.c
74
if (spi_st->words_remaining > FIFO_SIZE)
drivers/spi/spi-st-ssc4.c
77
count = spi_st->words_remaining;
drivers/spi/spi-st-ssc4.c
80
if (spi_st->tx_ptr) {
drivers/spi/spi-st-ssc4.c
81
if (spi_st->bytes_per_word == 1) {
drivers/spi/spi-st-ssc4.c
82
word = *spi_st->tx_ptr++;
drivers/spi/spi-st-ssc4.c
84
word = *spi_st->tx_ptr++;
drivers/spi/spi-st-ssc4.c
85
word = *spi_st->tx_ptr++ | (word << 8);
drivers/spi/spi-st-ssc4.c
88
writel_relaxed(word, spi_st->base + SSC_TBUF);
drivers/spi/spi-st-ssc4.c
93
static void ssc_read_rx_fifo(struct spi_st *spi_st)
drivers/spi/spi-st-ssc4.c
98
if (spi_st->words_remaining > FIFO_SIZE)