Lines Matching refs:wilc

96 	struct wilc *wilc;
103 ret = wilc_cfg80211_init(&wilc, &spi->dev, WILC_HIF_SPI, &wilc_hif_spi);
109 spi_set_drvdata(spi, wilc);
110 wilc->dev = &spi->dev;
111 wilc->bus_data = spi_priv;
112 wilc->dev_irq_num = spi->irq;
114 wilc->rtc_clk = devm_clk_get(&spi->dev, "rtc_clk");
115 if (PTR_ERR_OR_ZERO(wilc->rtc_clk) == -EPROBE_DEFER) {
118 } else if (!IS_ERR(wilc->rtc_clk))
119 clk_prepare_enable(wilc->rtc_clk);
126 struct wilc *wilc = spi_get_drvdata(spi);
128 if (!IS_ERR(wilc->rtc_clk))
129 clk_disable_unprepare(wilc->rtc_clk);
131 wilc_netdev_cleanup(wilc);
152 static int wilc_spi_tx(struct wilc *wilc, u8 *b, u32 len)
154 struct spi_device *spi = to_spi_device(wilc->dev);
196 static int wilc_spi_rx(struct wilc *wilc, u8 *rb, u32 rlen)
198 struct spi_device *spi = to_spi_device(wilc->dev);
239 static int wilc_spi_tx_rx(struct wilc *wilc, u8 *wb, u8 *rb, u32 rlen)
241 struct spi_device *spi = to_spi_device(wilc->dev);
277 static int spi_data_write(struct wilc *wilc, u8 *b, u32 sz)
279 struct spi_device *spi = to_spi_device(wilc->dev);
280 struct wilc_spi *spi_priv = wilc->bus_data;
307 if (wilc_spi_tx(wilc, &cmd, 1)) {
317 if (wilc_spi_tx(wilc, &b[ix], nbytes)) {
328 if (wilc_spi_tx(wilc, crc, 2)) {
355 static int wilc_spi_single_read(struct wilc *wilc, u8 cmd, u32 adr, void *b,
358 struct spi_device *spi = to_spi_device(wilc->dev);
359 struct wilc_spi *spi_priv = wilc->bus_data;
400 if (wilc_spi_tx_rx(wilc, wb, rb, cmd_len + resp_len)) {
434 static int wilc_spi_write_cmd(struct wilc *wilc, u8 cmd, u32 adr, u32 data,
437 struct spi_device *spi = to_spi_device(wilc->dev);
438 struct wilc_spi *spi_priv = wilc->bus_data;
483 if (wilc_spi_tx_rx(wilc, wb, rb, cmd_len + resp_len)) {
505 static int wilc_spi_dma_rw(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz)
507 struct spi_device *spi = to_spi_device(wilc->dev);
508 struct wilc_spi *spi_priv = wilc->bus_data;
555 if (wilc_spi_tx_rx(wilc, wb, rb, cmd_len + resp_len)) {
591 if (wilc_spi_rx(wilc, &rsp, 1)) {
603 if (wilc_spi_rx(wilc, &b[ix], nbytes)) {
612 if (!spi_priv->crc_off && wilc_spi_rx(wilc, crc, 2)) {
624 static int wilc_spi_read_reg(struct wilc *wilc, u32 addr, u32 *data)
626 struct spi_device *spi = to_spi_device(wilc->dev);
637 result = wilc_spi_single_read(wilc, cmd, addr, data, clockless);
648 static int wilc_spi_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
650 struct spi_device *spi = to_spi_device(wilc->dev);
656 result = wilc_spi_dma_rw(wilc, CMD_DMA_EXT_READ, addr, buf, size);
665 static int spi_internal_write(struct wilc *wilc, u32 adr, u32 dat)
667 struct spi_device *spi = to_spi_device(wilc->dev);
670 result = wilc_spi_write_cmd(wilc, CMD_INTERNAL_WRITE, adr, dat, 0);
679 static int spi_internal_read(struct wilc *wilc, u32 adr, u32 *data)
681 struct spi_device *spi = to_spi_device(wilc->dev);
684 result = wilc_spi_single_read(wilc, CMD_INTERNAL_READ, adr, data, 0);
701 static int wilc_spi_write_reg(struct wilc *wilc, u32 addr, u32 data)
703 struct spi_device *spi = to_spi_device(wilc->dev);
714 result = wilc_spi_write_cmd(wilc, cmd, addr, data, clockless);
723 static int wilc_spi_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
725 struct spi_device *spi = to_spi_device(wilc->dev);
734 result = wilc_spi_dma_rw(wilc, CMD_DMA_EXT_WRITE, addr, NULL, size);
744 result = spi_data_write(wilc, buf, size);
759 static int wilc_spi_deinit(struct wilc *wilc)
767 static int wilc_spi_init(struct wilc *wilc, bool resume)
769 struct spi_device *spi = to_spi_device(wilc->dev);
770 struct wilc_spi *spi_priv = wilc->bus_data;
777 ret = wilc_spi_read_reg(wilc, WILC_CHIPID, &chipid);
793 ret = spi_internal_read(wilc, WILC_SPI_PROTOCOL_OFFSET, &reg);
802 ret = spi_internal_read(wilc, WILC_SPI_PROTOCOL_OFFSET, &reg);
816 ret = spi_internal_write(wilc, WILC_SPI_PROTOCOL_OFFSET, reg);
819 "[wilc spi %d]: Failed internal write reg\n",
829 ret = wilc_spi_read_reg(wilc, WILC_CHIPID, &chipid);
840 static int wilc_spi_read_size(struct wilc *wilc, u32 *size)
844 ret = spi_internal_read(wilc,
851 static int wilc_spi_read_int(struct wilc *wilc, u32 *int_status)
853 return spi_internal_read(wilc, WILC_SPI_INT_STATUS - WILC_SPI_REG_BASE,
857 static int wilc_spi_clear_int_ext(struct wilc *wilc, u32 val)
859 return spi_internal_write(wilc, WILC_SPI_INT_CLEAR - WILC_SPI_REG_BASE,
863 static int wilc_spi_sync_ext(struct wilc *wilc, int nint)
865 struct spi_device *spi = to_spi_device(wilc->dev);
877 ret = wilc_spi_read_reg(wilc, WILC_PIN_MUX_0, &reg);
884 ret = wilc_spi_write_reg(wilc, WILC_PIN_MUX_0, reg);
894 ret = wilc_spi_read_reg(wilc, WILC_INTR_ENABLE, &reg);
904 ret = wilc_spi_write_reg(wilc, WILC_INTR_ENABLE, reg);
911 ret = wilc_spi_read_reg(wilc, WILC_INTR2_ENABLE, &reg);
921 ret = wilc_spi_read_reg(wilc, WILC_INTR2_ENABLE, &reg);