Lines Matching refs:ss

76 static void sh_qspi_init(struct sh_qspi_slave *ss)  in sh_qspi_init()  argument
80 writeb(SPCR_MSTR, &ss->regs->spcr); in sh_qspi_init()
83 writeb(0x00, &ss->regs->sslp); in sh_qspi_init()
86 writeb(SPPCR_IO3FV|SPPCR_IO2FV, &ss->regs->sppcr); in sh_qspi_init()
89 writeb(0x01, &ss->regs->spbr); in sh_qspi_init()
92 writeb(0x00, &ss->regs->spdcr); in sh_qspi_init()
95 writeb(0x00, &ss->regs->spckd); in sh_qspi_init()
98 writeb(0x00, &ss->regs->sslnd); in sh_qspi_init()
101 writeb(0x00, &ss->regs->spnd); in sh_qspi_init()
104 writew(SPCMD_INIT2, &ss->regs->spcmd0); in sh_qspi_init()
107 setbits_8(&ss->regs->spbfcr, SPBFCR_TXRST|SPBFCR_RXRST); in sh_qspi_init()
110 clrbits_8(&ss->regs->spbfcr, SPBFCR_TXRST|SPBFCR_RXRST); in sh_qspi_init()
113 writeb(0x00, &ss->regs->spscr); in sh_qspi_init()
116 setbits_8(&ss->regs->spcr, SPCR_SPE); in sh_qspi_init()
119 static void sh_qspi_cs_activate(struct sh_qspi_slave *ss) in sh_qspi_cs_activate() argument
122 writeb(SPCR_MSTR, &ss->regs->spcr); in sh_qspi_cs_activate()
125 writew(SPCMD_INIT1, &ss->regs->spcmd0); in sh_qspi_cs_activate()
128 setbits_8(&ss->regs->spbfcr, SPBFCR_TXRST|SPBFCR_RXRST); in sh_qspi_cs_activate()
131 clrbits_8(&ss->regs->spbfcr, SPBFCR_TXRST|SPBFCR_RXRST); in sh_qspi_cs_activate()
134 writeb(0x00, &ss->regs->spscr); in sh_qspi_cs_activate()
137 setbits_8(&ss->regs->spcr, SPCR_SPE); in sh_qspi_cs_activate()
140 static void sh_qspi_cs_deactivate(struct sh_qspi_slave *ss) in sh_qspi_cs_deactivate() argument
143 clrbits_8(&ss->regs->spcr, SPCR_SPE); in sh_qspi_cs_deactivate()
146 static int sh_qspi_xfer_common(struct sh_qspi_slave *ss, unsigned int bitlen, in sh_qspi_xfer_common() argument
153 u32 *spbmul0 = &ss->regs->spbmul0; in sh_qspi_xfer_common()
157 sh_qspi_cs_deactivate(ss); in sh_qspi_xfer_common()
169 sh_qspi_cs_activate(ss); in sh_qspi_xfer_common()
191 clrsetbits_8(&ss->regs->spbfcr, SPBFCR_TXTRG | SPBFCR_RXTRG, in sh_qspi_xfer_common()
194 ret = wait_for_bit_8(&ss->regs->spsr, SPSR_SPTEF, in sh_qspi_xfer_common()
200 writeb(*tdata, &ss->regs->spdr); in sh_qspi_xfer_common()
205 ret = wait_for_bit_8(&ss->regs->spsr, SPSR_SPRFF, in sh_qspi_xfer_common()
211 *rdata = readb(&ss->regs->spdr); in sh_qspi_xfer_common()
220 sh_qspi_cs_deactivate(ss); in sh_qspi_xfer_common()
238 struct sh_qspi_slave *ss = to_sh_qspi(slave); in spi_cs_activate() local
240 sh_qspi_cs_activate(ss); in spi_cs_activate()
245 struct sh_qspi_slave *ss = to_sh_qspi(slave); in spi_cs_deactivate() local
247 sh_qspi_cs_deactivate(ss); in spi_cs_deactivate()
253 struct sh_qspi_slave *ss; in spi_setup_slave() local
258 ss = spi_alloc_slave(struct sh_qspi_slave, bus, cs); in spi_setup_slave()
259 if (!ss) { in spi_setup_slave()
264 ss->regs = (struct sh_qspi_regs *)SH_QSPI_BASE; in spi_setup_slave()
267 sh_qspi_init(ss); in spi_setup_slave()
269 return &ss->slave; in spi_setup_slave()
291 struct sh_qspi_slave *ss = to_sh_qspi(slave); in spi_xfer() local
293 return sh_qspi_xfer_common(ss, bitlen, dout, din, flags); in spi_xfer()
304 struct sh_qspi_slave *ss = dev_get_platdata(bus); in sh_qspi_xfer() local
306 return sh_qspi_xfer_common(ss, bitlen, dout, din, flags); in sh_qspi_xfer()
323 struct sh_qspi_slave *ss = dev_get_platdata(dev); in sh_qspi_probe() local
325 sh_qspi_init(ss); in sh_qspi_probe()