• Home
  • Raw
  • Download

Lines Matching refs:priv

119 static void zynq_qspi_init_hw(struct zynq_qspi_priv *priv)  in zynq_qspi_init_hw()  argument
121 struct zynq_qspi_regs *regs = priv->regs; in zynq_qspi_init_hw()
161 struct zynq_qspi_priv *priv = dev_get_priv(bus); in zynq_qspi_probe() local
163 priv->regs = plat->regs; in zynq_qspi_probe()
164 priv->fifo_depth = ZYNQ_QSPI_FIFO_DEPTH; in zynq_qspi_probe()
167 zynq_qspi_init_hw(priv); in zynq_qspi_probe()
178 static void zynq_qspi_read_data(struct zynq_qspi_priv *priv, u32 data, u8 size) in zynq_qspi_read_data() argument
183 data, (unsigned)(priv->rx_buf), size); in zynq_qspi_read_data()
185 if (priv->rx_buf) { in zynq_qspi_read_data()
188 *((u8 *)priv->rx_buf) = data; in zynq_qspi_read_data()
189 priv->rx_buf += 1; in zynq_qspi_read_data()
192 *((u16 *)priv->rx_buf) = data; in zynq_qspi_read_data()
193 priv->rx_buf += 2; in zynq_qspi_read_data()
196 *((u16 *)priv->rx_buf) = data; in zynq_qspi_read_data()
197 priv->rx_buf += 2; in zynq_qspi_read_data()
199 *((u8 *)priv->rx_buf) = byte3; in zynq_qspi_read_data()
200 priv->rx_buf += 1; in zynq_qspi_read_data()
204 memcpy(priv->rx_buf, &data, size); in zynq_qspi_read_data()
205 priv->rx_buf += 4; in zynq_qspi_read_data()
212 priv->bytes_to_receive -= size; in zynq_qspi_read_data()
213 if (priv->bytes_to_receive < 0) in zynq_qspi_read_data()
214 priv->bytes_to_receive = 0; in zynq_qspi_read_data()
223 static void zynq_qspi_write_data(struct zynq_qspi_priv *priv, in zynq_qspi_write_data() argument
226 if (priv->tx_buf) { in zynq_qspi_write_data()
229 *data = *((u8 *)priv->tx_buf); in zynq_qspi_write_data()
230 priv->tx_buf += 1; in zynq_qspi_write_data()
234 *data = *((u16 *)priv->tx_buf); in zynq_qspi_write_data()
235 priv->tx_buf += 2; in zynq_qspi_write_data()
239 *data = *((u16 *)priv->tx_buf); in zynq_qspi_write_data()
240 priv->tx_buf += 2; in zynq_qspi_write_data()
241 *data |= (*((u8 *)priv->tx_buf) << 16); in zynq_qspi_write_data()
242 priv->tx_buf += 1; in zynq_qspi_write_data()
247 memcpy(data, priv->tx_buf, size); in zynq_qspi_write_data()
248 priv->tx_buf += 4; in zynq_qspi_write_data()
259 *data, (u32)priv->tx_buf, size); in zynq_qspi_write_data()
261 priv->bytes_to_transfer -= size; in zynq_qspi_write_data()
262 if (priv->bytes_to_transfer < 0) in zynq_qspi_write_data()
263 priv->bytes_to_transfer = 0; in zynq_qspi_write_data()
266 static void zynq_qspi_chipselect(struct zynq_qspi_priv *priv, int is_on) in zynq_qspi_chipselect() argument
269 struct zynq_qspi_regs *regs = priv->regs; in zynq_qspi_chipselect()
276 confr |= (~(1 << priv->cs) << ZYNQ_QSPI_CR_SS_SHIFT) & in zynq_qspi_chipselect()
289 static void zynq_qspi_fill_tx_fifo(struct zynq_qspi_priv *priv, u32 size) in zynq_qspi_fill_tx_fifo() argument
294 struct zynq_qspi_regs *regs = priv->regs; in zynq_qspi_fill_tx_fifo()
300 (priv->bytes_to_transfer > 0)) { in zynq_qspi_fill_tx_fifo()
301 if (priv->bytes_to_transfer >= 4) { in zynq_qspi_fill_tx_fifo()
302 if (priv->tx_buf) { in zynq_qspi_fill_tx_fifo()
303 memcpy(&data, priv->tx_buf, 4); in zynq_qspi_fill_tx_fifo()
304 priv->tx_buf += 4; in zynq_qspi_fill_tx_fifo()
309 priv->bytes_to_transfer -= 4; in zynq_qspi_fill_tx_fifo()
315 !priv->rx_buf) in zynq_qspi_fill_tx_fifo()
317 len = priv->bytes_to_transfer; in zynq_qspi_fill_tx_fifo()
318 zynq_qspi_write_data(priv, &data, len); in zynq_qspi_fill_tx_fifo()
319 offset = (priv->rx_buf) ? offsets[0] : offsets[len]; in zynq_qspi_fill_tx_fifo()
339 static int zynq_qspi_irq_poll(struct zynq_qspi_priv *priv) in zynq_qspi_irq_poll() argument
341 struct zynq_qspi_regs *regs = priv->regs; in zynq_qspi_irq_poll()
369 rxcount = priv->bytes_to_receive - priv->bytes_to_transfer; in zynq_qspi_irq_poll()
377 if (priv->bytes_to_receive >= 4) { in zynq_qspi_irq_poll()
378 if (priv->rx_buf) { in zynq_qspi_irq_poll()
379 memcpy(priv->rx_buf, &data, 4); in zynq_qspi_irq_poll()
380 priv->rx_buf += 4; in zynq_qspi_irq_poll()
382 priv->bytes_to_receive -= 4; in zynq_qspi_irq_poll()
384 zynq_qspi_read_data(priv, data, in zynq_qspi_irq_poll()
385 priv->bytes_to_receive); in zynq_qspi_irq_poll()
390 if (priv->bytes_to_transfer) { in zynq_qspi_irq_poll()
392 zynq_qspi_fill_tx_fifo(priv, in zynq_qspi_irq_poll()
401 if (!priv->bytes_to_receive) { in zynq_qspi_irq_poll()
424 static int zynq_qspi_start_transfer(struct zynq_qspi_priv *priv) in zynq_qspi_start_transfer() argument
427 struct zynq_qspi_regs *regs = priv->regs; in zynq_qspi_start_transfer()
430 (u32)priv, (u32)priv, priv->len); in zynq_qspi_start_transfer()
432 priv->bytes_to_transfer = priv->len; in zynq_qspi_start_transfer()
433 priv->bytes_to_receive = priv->len; in zynq_qspi_start_transfer()
435 if (priv->len < 4) in zynq_qspi_start_transfer()
436 zynq_qspi_fill_tx_fifo(priv, priv->len); in zynq_qspi_start_transfer()
438 zynq_qspi_fill_tx_fifo(priv, priv->fifo_depth); in zynq_qspi_start_transfer()
444 data = zynq_qspi_irq_poll(priv); in zynq_qspi_start_transfer()
447 return (priv->len) - (priv->bytes_to_transfer); in zynq_qspi_start_transfer()
450 static int zynq_qspi_transfer(struct zynq_qspi_priv *priv) in zynq_qspi_transfer() argument
458 zynq_qspi_chipselect(priv, 1); in zynq_qspi_transfer()
460 cs_change = priv->cs_change; in zynq_qspi_transfer()
462 if (!priv->tx_buf && !priv->rx_buf && priv->len) { in zynq_qspi_transfer()
468 if (priv->len) { in zynq_qspi_transfer()
469 status = zynq_qspi_start_transfer(priv); in zynq_qspi_transfer()
470 priv->is_inst = 0; in zynq_qspi_transfer()
473 if (status != priv->len) { in zynq_qspi_transfer()
477 status, priv->len); in zynq_qspi_transfer()
484 zynq_qspi_chipselect(priv, 0); in zynq_qspi_transfer()
495 struct zynq_qspi_priv *priv = dev_get_priv(bus); in zynq_qspi_claim_bus() local
496 struct zynq_qspi_regs *regs = priv->regs; in zynq_qspi_claim_bus()
506 struct zynq_qspi_priv *priv = dev_get_priv(bus); in zynq_qspi_release_bus() local
507 struct zynq_qspi_regs *regs = priv->regs; in zynq_qspi_release_bus()
518 struct zynq_qspi_priv *priv = dev_get_priv(bus); in zynq_qspi_xfer() local
521 priv->cs = slave_plat->cs; in zynq_qspi_xfer()
522 priv->tx_buf = dout; in zynq_qspi_xfer()
523 priv->rx_buf = din; in zynq_qspi_xfer()
524 priv->len = bitlen / 8; in zynq_qspi_xfer()
527 bus->seq, slave_plat->cs, bitlen, priv->len, flags); in zynq_qspi_xfer()
535 priv->is_inst = 1; in zynq_qspi_xfer()
537 priv->is_inst = 0; in zynq_qspi_xfer()
540 priv->cs_change = 1; in zynq_qspi_xfer()
542 priv->cs_change = 0; in zynq_qspi_xfer()
544 zynq_qspi_transfer(priv); in zynq_qspi_xfer()
552 struct zynq_qspi_priv *priv = dev_get_priv(bus); in zynq_qspi_set_speed() local
553 struct zynq_qspi_regs *regs = priv->regs; in zynq_qspi_set_speed()
577 priv->freq = speed; in zynq_qspi_set_speed()
579 debug("%s: regs=%p, speed=%d\n", __func__, priv->regs, priv->freq); in zynq_qspi_set_speed()
586 struct zynq_qspi_priv *priv = dev_get_priv(bus); in zynq_qspi_set_mode() local
587 struct zynq_qspi_regs *regs = priv->regs; in zynq_qspi_set_mode()
600 priv->mode = mode; in zynq_qspi_set_mode()
602 debug("%s: regs=%p, mode=%d\n", __func__, priv->regs, priv->mode); in zynq_qspi_set_mode()