提交 ac1da162 编写于 作者: G Glen Lee 提交者: Greg Kroah-Hartman

staging: wilc1000: sdio/spi: use device print api instead of custom one

This patch use device print api instead of driver defined print. Remove
varialbe dPrint as well. String "[wilc sdio]" and "[wilc spi]" are also removed
from all the print statment if exist because it shows which device the message
is related to.
Signed-off-by: NGlen Lee <glen.lee@atmel.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 67e2a07e
...@@ -52,7 +52,7 @@ int wilc_sdio_cmd52(struct wilc *wilc, sdio_cmd52_t *cmd) ...@@ -52,7 +52,7 @@ int wilc_sdio_cmd52(struct wilc *wilc, sdio_cmd52_t *cmd)
sdio_release_host(func); sdio_release_host(func);
if (ret < 0) { if (ret < 0) {
PRINT_ER("wilc_sdio_cmd52..failed, err(%d)\n", ret); dev_err(&func->dev, "wilc_sdio_cmd52..failed, err(%d)\n", ret);
return 0; return 0;
} }
return 1; return 1;
...@@ -83,7 +83,7 @@ int wilc_sdio_cmd53(struct wilc *wilc, sdio_cmd53_t *cmd) ...@@ -83,7 +83,7 @@ int wilc_sdio_cmd53(struct wilc *wilc, sdio_cmd53_t *cmd)
if (ret < 0) { if (ret < 0) {
PRINT_ER("wilc_sdio_cmd53..failed, err(%d)\n", ret); dev_err(&func->dev, "wilc_sdio_cmd53..failed, err(%d)\n", ret);
return 0; return 0;
} }
...@@ -102,16 +102,16 @@ static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id ...@@ -102,16 +102,16 @@ static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id
gpio = GPIO_NUM; gpio = GPIO_NUM;
} }
PRINT_D(INIT_DBG, "Initializing netdev\n"); dev_dbg(&func->dev, "Initializing netdev\n");
if (wilc_netdev_init(&wilc, &func->dev, HIF_SDIO, gpio, if (wilc_netdev_init(&wilc, &func->dev, HIF_SDIO, gpio,
&wilc_hif_sdio)) { &wilc_hif_sdio)) {
PRINT_ER("Couldn't initialize netdev\n"); dev_err(&func->dev, "Couldn't initialize netdev\n");
return -1; return -1;
} }
sdio_set_drvdata(func, wilc); sdio_set_drvdata(func, wilc);
wilc->dev = &func->dev; wilc->dev = &func->dev;
printk("Driver Initializing success\n"); dev_info(&func->dev, "Driver Initializing success\n");
return 0; return 0;
} }
...@@ -139,7 +139,7 @@ int wilc_sdio_enable_interrupt(struct wilc *dev) ...@@ -139,7 +139,7 @@ int wilc_sdio_enable_interrupt(struct wilc *dev)
sdio_release_host(func); sdio_release_host(func);
if (ret < 0) { if (ret < 0) {
PRINT_ER("can't claim sdio_irq, err(%d)\n", ret); dev_err(&func->dev, "can't claim sdio_irq, err(%d)\n", ret);
ret = -EIO; ret = -EIO;
} }
return ret; return ret;
...@@ -150,16 +150,16 @@ void wilc_sdio_disable_interrupt(struct wilc *dev) ...@@ -150,16 +150,16 @@ void wilc_sdio_disable_interrupt(struct wilc *dev)
struct sdio_func *func = container_of(dev->dev, struct sdio_func, dev); struct sdio_func *func = container_of(dev->dev, struct sdio_func, dev);
int ret; int ret;
PRINT_D(INIT_DBG, "wilc_sdio_disable_interrupt IN\n"); dev_dbg(&func->dev, "wilc_sdio_disable_interrupt IN\n");
sdio_claim_host(func); sdio_claim_host(func);
ret = sdio_release_irq(func); ret = sdio_release_irq(func);
if (ret < 0) { if (ret < 0) {
PRINT_ER("can't release sdio_irq, err(%d)\n", ret); dev_err(&func->dev, "can't release sdio_irq, err(%d)\n", ret);
} }
sdio_release_host(func); sdio_release_host(func);
PRINT_D(INIT_DBG, "wilc_sdio_disable_interrupt OUT\n"); dev_info(&func->dev, "wilc_sdio_disable_interrupt OUT\n");
} }
int wilc_sdio_init(void) int wilc_sdio_init(void)
......
...@@ -83,7 +83,7 @@ int wilc_spi_write(struct wilc *wilc, u8 *b, u32 len) ...@@ -83,7 +83,7 @@ int wilc_spi_write(struct wilc *wilc, u8 *b, u32 len)
return -ENOMEM; return -ENOMEM;
tr.rx_buf = r_buffer; tr.rx_buf = r_buffer;
PRINT_D(BUS_DBG, "Request writing %d bytes\n", len); dev_dbg(&spi->dev, "Request writing %d bytes\n", len);
memset(&msg, 0, sizeof(msg)); memset(&msg, 0, sizeof(msg));
spi_message_init(&msg); spi_message_init(&msg);
...@@ -95,13 +95,17 @@ int wilc_spi_write(struct wilc *wilc, u8 *b, u32 len) ...@@ -95,13 +95,17 @@ int wilc_spi_write(struct wilc *wilc, u8 *b, u32 len)
ret = spi_sync(spi, &msg); ret = spi_sync(spi, &msg);
if (ret < 0) { if (ret < 0) {
PRINT_ER("SPI transaction failed\n"); dev_err(&spi->dev, "SPI transaction failed\n");
} }
kfree(r_buffer); kfree(r_buffer);
} else { } else {
PRINT_ER("can't write data with the following length: %d\n", len); dev_err(&spi->dev,
PRINT_ER("FAILED due to NULL buffer or ZERO length check the following length: %d\n", len); "can't write data with the following length: %d\n",
len);
dev_err(&spi->dev,
"FAILED due to NULL buffer or ZERO length check the following length: %d\n",
len);
ret = -1; ret = -1;
} }
...@@ -141,11 +145,13 @@ int wilc_spi_read(struct wilc *wilc, u8 *rb, u32 rlen) ...@@ -141,11 +145,13 @@ int wilc_spi_read(struct wilc *wilc, u8 *rb, u32 rlen)
ret = spi_sync(spi, &msg); ret = spi_sync(spi, &msg);
if (ret < 0) { if (ret < 0) {
PRINT_ER("SPI transaction failed\n"); dev_err(&spi->dev, "SPI transaction failed\n");
} }
kfree(t_buffer); kfree(t_buffer);
} else { } else {
PRINT_ER("can't read data with the following length: %u\n", rlen); dev_err(&spi->dev,
"can't read data with the following length: %u\n",
rlen);
ret = -1; ret = -1;
} }
/* change return value to match WILC interface */ /* change return value to match WILC interface */
...@@ -178,10 +184,12 @@ int wilc_spi_write_read(struct wilc *wilc, u8 *wb, u8 *rb, u32 rlen) ...@@ -178,10 +184,12 @@ int wilc_spi_write_read(struct wilc *wilc, u8 *wb, u8 *rb, u32 rlen)
spi_message_add_tail(&tr, &msg); spi_message_add_tail(&tr, &msg);
ret = spi_sync(spi, &msg); ret = spi_sync(spi, &msg);
if (ret < 0) { if (ret < 0) {
PRINT_ER("SPI transaction failed\n"); dev_err(&spi->dev, "SPI transaction failed\n");
} }
} else { } else {
PRINT_ER("can't read data with the following length: %u\n", rlen); dev_err(&spi->dev,
"can't read data with the following length: %u\n",
rlen);
ret = -1; ret = -1;
} }
/* change return value to match WILC interface */ /* change return value to match WILC interface */
......
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
typedef struct { typedef struct {
bool irq_gpio; bool irq_gpio;
u32 block_size; u32 block_size;
wilc_debug_func dPrint;
int nint; int nint;
#define MAX_NUN_INT_THRPT_ENH2 (5) /* Max num interrupts allowed in registers 0xf7, 0xf8 */ #define MAX_NUN_INT_THRPT_ENH2 (5) /* Max num interrupts allowed in registers 0xf7, 0xf8 */
int has_thrpt_enh3; int has_thrpt_enh3;
...@@ -37,6 +36,7 @@ static int sdio_read_reg(struct wilc *wilc, u32 addr, u32 *data); ...@@ -37,6 +36,7 @@ static int sdio_read_reg(struct wilc *wilc, u32 addr, u32 *data);
static int sdio_set_func0_csa_address(struct wilc *wilc, u32 adr) static int sdio_set_func0_csa_address(struct wilc *wilc, u32 adr)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
sdio_cmd52_t cmd; sdio_cmd52_t cmd;
/** /**
...@@ -48,21 +48,21 @@ static int sdio_set_func0_csa_address(struct wilc *wilc, u32 adr) ...@@ -48,21 +48,21 @@ static int sdio_set_func0_csa_address(struct wilc *wilc, u32 adr)
cmd.address = 0x10c; cmd.address = 0x10c;
cmd.data = (u8)adr; cmd.data = (u8)adr;
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10c data...\n"); dev_err(&func->dev, "Failed cmd52, set 0x10c data...\n");
goto _fail_; goto _fail_;
} }
cmd.address = 0x10d; cmd.address = 0x10d;
cmd.data = (u8)(adr >> 8); cmd.data = (u8)(adr >> 8);
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10d data...\n"); dev_err(&func->dev, "Failed cmd52, set 0x10d data...\n");
goto _fail_; goto _fail_;
} }
cmd.address = 0x10e; cmd.address = 0x10e;
cmd.data = (u8)(adr >> 16); cmd.data = (u8)(adr >> 16);
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10e data...\n"); dev_err(&func->dev, "Failed cmd52, set 0x10e data...\n");
goto _fail_; goto _fail_;
} }
...@@ -73,6 +73,7 @@ static int sdio_set_func0_csa_address(struct wilc *wilc, u32 adr) ...@@ -73,6 +73,7 @@ static int sdio_set_func0_csa_address(struct wilc *wilc, u32 adr)
static int sdio_set_func0_block_size(struct wilc *wilc, u32 block_size) static int sdio_set_func0_block_size(struct wilc *wilc, u32 block_size)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
sdio_cmd52_t cmd; sdio_cmd52_t cmd;
cmd.read_write = 1; cmd.read_write = 1;
...@@ -81,14 +82,14 @@ static int sdio_set_func0_block_size(struct wilc *wilc, u32 block_size) ...@@ -81,14 +82,14 @@ static int sdio_set_func0_block_size(struct wilc *wilc, u32 block_size)
cmd.address = 0x10; cmd.address = 0x10;
cmd.data = (u8)block_size; cmd.data = (u8)block_size;
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x10 data...\n"); dev_err(&func->dev, "Failed cmd52, set 0x10 data...\n");
goto _fail_; goto _fail_;
} }
cmd.address = 0x11; cmd.address = 0x11;
cmd.data = (u8)(block_size >> 8); cmd.data = (u8)(block_size >> 8);
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x11 data...\n"); dev_err(&func->dev, "Failed cmd52, set 0x11 data...\n");
goto _fail_; goto _fail_;
} }
...@@ -105,6 +106,7 @@ static int sdio_set_func0_block_size(struct wilc *wilc, u32 block_size) ...@@ -105,6 +106,7 @@ static int sdio_set_func0_block_size(struct wilc *wilc, u32 block_size)
static int sdio_set_func1_block_size(struct wilc *wilc, u32 block_size) static int sdio_set_func1_block_size(struct wilc *wilc, u32 block_size)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
sdio_cmd52_t cmd; sdio_cmd52_t cmd;
cmd.read_write = 1; cmd.read_write = 1;
...@@ -113,13 +115,13 @@ static int sdio_set_func1_block_size(struct wilc *wilc, u32 block_size) ...@@ -113,13 +115,13 @@ static int sdio_set_func1_block_size(struct wilc *wilc, u32 block_size)
cmd.address = 0x110; cmd.address = 0x110;
cmd.data = (u8)block_size; cmd.data = (u8)block_size;
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x110 data...\n"); dev_err(&func->dev, "Failed cmd52, set 0x110 data...\n");
goto _fail_; goto _fail_;
} }
cmd.address = 0x111; cmd.address = 0x111;
cmd.data = (u8)(block_size >> 8); cmd.data = (u8)(block_size >> 8);
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0x111 data...\n"); dev_err(&func->dev, "Failed cmd52, set 0x111 data...\n");
goto _fail_; goto _fail_;
} }
...@@ -130,6 +132,8 @@ static int sdio_set_func1_block_size(struct wilc *wilc, u32 block_size) ...@@ -130,6 +132,8 @@ static int sdio_set_func1_block_size(struct wilc *wilc, u32 block_size)
static int sdio_clear_int(struct wilc *wilc) static int sdio_clear_int(struct wilc *wilc)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
if (!g_sdio.irq_gpio) { if (!g_sdio.irq_gpio) {
/* u32 sts; */ /* u32 sts; */
sdio_cmd52_t cmd; sdio_cmd52_t cmd;
...@@ -146,7 +150,8 @@ static int sdio_clear_int(struct wilc *wilc) ...@@ -146,7 +150,8 @@ static int sdio_clear_int(struct wilc *wilc)
u32 reg; u32 reg;
if (!sdio_read_reg(wilc, WILC_HOST_RX_CTRL_0, &reg)) { if (!sdio_read_reg(wilc, WILC_HOST_RX_CTRL_0, &reg)) {
g_sdio.dPrint(N_ERR, "[wilc spi]: Failed read reg (%08x)...\n", WILC_HOST_RX_CTRL_0); dev_err(&func->dev, "Failed read reg (%08x)...\n",
WILC_HOST_RX_CTRL_0);
return 0; return 0;
} }
reg &= ~0x1; reg &= ~0x1;
...@@ -163,6 +168,8 @@ static int sdio_clear_int(struct wilc *wilc) ...@@ -163,6 +168,8 @@ static int sdio_clear_int(struct wilc *wilc)
********************************************/ ********************************************/
static int sdio_write_reg(struct wilc *wilc, u32 addr, u32 data) static int sdio_write_reg(struct wilc *wilc, u32 addr, u32 data)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
data = cpu_to_le32(data); data = cpu_to_le32(data);
if ((addr >= 0xf0) && (addr <= 0xff)) { if ((addr >= 0xf0) && (addr <= 0xff)) {
...@@ -174,7 +181,8 @@ static int sdio_write_reg(struct wilc *wilc, u32 addr, u32 data) ...@@ -174,7 +181,8 @@ static int sdio_write_reg(struct wilc *wilc, u32 addr, u32 data)
cmd.address = addr; cmd.address = addr;
cmd.data = data; cmd.data = data;
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd 52, read reg (%08x) ...\n", addr); dev_err(&func->dev,
"Failed cmd 52, read reg (%08x) ...\n", addr);
goto _fail_; goto _fail_;
} }
} else { } else {
...@@ -196,7 +204,8 @@ static int sdio_write_reg(struct wilc *wilc, u32 addr, u32 data) ...@@ -196,7 +204,8 @@ static int sdio_write_reg(struct wilc *wilc, u32 addr, u32 data)
cmd.block_size = g_sdio.block_size; /* johnny : prevent it from setting unexpected value */ cmd.block_size = g_sdio.block_size; /* johnny : prevent it from setting unexpected value */
if (!wilc_sdio_cmd53(wilc, &cmd)) { if (!wilc_sdio_cmd53(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53, write reg (%08x)...\n", addr); dev_err(&func->dev,
"Failed cmd53, write reg (%08x)...\n", addr);
goto _fail_; goto _fail_;
} }
} }
...@@ -210,6 +219,7 @@ static int sdio_write_reg(struct wilc *wilc, u32 addr, u32 data) ...@@ -210,6 +219,7 @@ static int sdio_write_reg(struct wilc *wilc, u32 addr, u32 data)
static int sdio_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size) static int sdio_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
u32 block_size = g_sdio.block_size; u32 block_size = g_sdio.block_size;
sdio_cmd53_t cmd; sdio_cmd53_t cmd;
int nblk, nleft; int nblk, nleft;
...@@ -259,7 +269,8 @@ static int sdio_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size) ...@@ -259,7 +269,8 @@ static int sdio_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
goto _fail_; goto _fail_;
} }
if (!wilc_sdio_cmd53(wilc, &cmd)) { if (!wilc_sdio_cmd53(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53 [%x], block send...\n", addr); dev_err(&func->dev,
"Failed cmd53 [%x], block send...\n", addr);
goto _fail_; goto _fail_;
} }
if (addr > 0) if (addr > 0)
...@@ -280,7 +291,8 @@ static int sdio_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size) ...@@ -280,7 +291,8 @@ static int sdio_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
goto _fail_; goto _fail_;
} }
if (!wilc_sdio_cmd53(wilc, &cmd)) { if (!wilc_sdio_cmd53(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53 [%x], bytes send...\n", addr); dev_err(&func->dev,
"Failed cmd53 [%x], bytes send...\n", addr);
goto _fail_; goto _fail_;
} }
} }
...@@ -294,6 +306,8 @@ static int sdio_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size) ...@@ -294,6 +306,8 @@ static int sdio_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
static int sdio_read_reg(struct wilc *wilc, u32 addr, u32 *data) static int sdio_read_reg(struct wilc *wilc, u32 addr, u32 *data)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
if ((addr >= 0xf0) && (addr <= 0xff)) { if ((addr >= 0xf0) && (addr <= 0xff)) {
sdio_cmd52_t cmd; sdio_cmd52_t cmd;
...@@ -302,7 +316,8 @@ static int sdio_read_reg(struct wilc *wilc, u32 addr, u32 *data) ...@@ -302,7 +316,8 @@ static int sdio_read_reg(struct wilc *wilc, u32 addr, u32 *data)
cmd.raw = 0; cmd.raw = 0;
cmd.address = addr; cmd.address = addr;
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd 52, read reg (%08x) ...\n", addr); dev_err(&func->dev,
"Failed cmd 52, read reg (%08x) ...\n", addr);
goto _fail_; goto _fail_;
} }
*data = cmd.data; *data = cmd.data;
...@@ -323,7 +338,8 @@ static int sdio_read_reg(struct wilc *wilc, u32 addr, u32 *data) ...@@ -323,7 +338,8 @@ static int sdio_read_reg(struct wilc *wilc, u32 addr, u32 *data)
cmd.block_size = g_sdio.block_size; /* johnny : prevent it from setting unexpected value */ cmd.block_size = g_sdio.block_size; /* johnny : prevent it from setting unexpected value */
if (!wilc_sdio_cmd53(wilc, &cmd)) { if (!wilc_sdio_cmd53(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53, read reg (%08x)...\n", addr); dev_err(&func->dev,
"Failed cmd53, read reg (%08x)...\n", addr);
goto _fail_; goto _fail_;
} }
} }
...@@ -339,6 +355,7 @@ static int sdio_read_reg(struct wilc *wilc, u32 addr, u32 *data) ...@@ -339,6 +355,7 @@ static int sdio_read_reg(struct wilc *wilc, u32 addr, u32 *data)
static int sdio_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size) static int sdio_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
u32 block_size = g_sdio.block_size; u32 block_size = g_sdio.block_size;
sdio_cmd53_t cmd; sdio_cmd53_t cmd;
int nblk, nleft; int nblk, nleft;
...@@ -388,7 +405,8 @@ static int sdio_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size) ...@@ -388,7 +405,8 @@ static int sdio_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
goto _fail_; goto _fail_;
} }
if (!wilc_sdio_cmd53(wilc, &cmd)) { if (!wilc_sdio_cmd53(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53 [%x], block read...\n", addr); dev_err(&func->dev,
"Failed cmd53 [%x], block read...\n", addr);
goto _fail_; goto _fail_;
} }
if (addr > 0) if (addr > 0)
...@@ -409,7 +427,8 @@ static int sdio_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size) ...@@ -409,7 +427,8 @@ static int sdio_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
goto _fail_; goto _fail_;
} }
if (!wilc_sdio_cmd53(wilc, &cmd)) { if (!wilc_sdio_cmd53(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd53 [%x], bytes read...\n", addr); dev_err(&func->dev,
"Failed cmd53 [%x], bytes read...\n", addr);
goto _fail_; goto _fail_;
} }
} }
...@@ -434,19 +453,20 @@ static int sdio_deinit(struct wilc *wilc) ...@@ -434,19 +453,20 @@ static int sdio_deinit(struct wilc *wilc)
static int sdio_sync(struct wilc *wilc) static int sdio_sync(struct wilc *wilc)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
u32 reg; u32 reg;
/** /**
* Disable power sequencer * Disable power sequencer
**/ **/
if (!sdio_read_reg(wilc, WILC_MISC, &reg)) { if (!sdio_read_reg(wilc, WILC_MISC, &reg)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed read misc reg...\n"); dev_err(&func->dev, "Failed read misc reg...\n");
return 0; return 0;
} }
reg &= ~BIT(8); reg &= ~BIT(8);
if (!sdio_write_reg(wilc, WILC_MISC, reg)) { if (!sdio_write_reg(wilc, WILC_MISC, reg)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write misc reg...\n"); dev_err(&func->dev, "Failed write misc reg...\n");
return 0; return 0;
} }
...@@ -459,13 +479,15 @@ static int sdio_sync(struct wilc *wilc) ...@@ -459,13 +479,15 @@ static int sdio_sync(struct wilc *wilc)
**/ **/
ret = sdio_read_reg(wilc, WILC_PIN_MUX_0, &reg); ret = sdio_read_reg(wilc, WILC_PIN_MUX_0, &reg);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc spi]: Failed read reg (%08x)...\n", WILC_PIN_MUX_0); dev_err(&func->dev, "Failed read reg (%08x)...\n",
WILC_PIN_MUX_0);
return 0; return 0;
} }
reg |= BIT(8); reg |= BIT(8);
ret = sdio_write_reg(wilc, WILC_PIN_MUX_0, reg); ret = sdio_write_reg(wilc, WILC_PIN_MUX_0, reg);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc spi]: Failed write reg (%08x)...\n", WILC_PIN_MUX_0); dev_err(&func->dev, "Failed write reg (%08x)...\n",
WILC_PIN_MUX_0);
return 0; return 0;
} }
...@@ -474,13 +496,15 @@ static int sdio_sync(struct wilc *wilc) ...@@ -474,13 +496,15 @@ static int sdio_sync(struct wilc *wilc)
**/ **/
ret = sdio_read_reg(wilc, WILC_INTR_ENABLE, &reg); ret = sdio_read_reg(wilc, WILC_INTR_ENABLE, &reg);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc spi]: Failed read reg (%08x)...\n", WILC_INTR_ENABLE); dev_err(&func->dev, "Failed read reg (%08x)...\n",
WILC_INTR_ENABLE);
return 0; return 0;
} }
reg |= BIT(16); reg |= BIT(16);
ret = sdio_write_reg(wilc, WILC_INTR_ENABLE, reg); ret = sdio_write_reg(wilc, WILC_INTR_ENABLE, reg);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc spi]: Failed write reg (%08x)...\n", WILC_INTR_ENABLE); dev_err(&func->dev, "Failed write reg (%08x)...\n",
WILC_INTR_ENABLE);
return 0; return 0;
} }
} }
...@@ -488,19 +512,19 @@ static int sdio_sync(struct wilc *wilc) ...@@ -488,19 +512,19 @@ static int sdio_sync(struct wilc *wilc)
return 1; return 1;
} }
static int sdio_init(struct wilc *wilc, wilc_debug_func func) static int sdio_init(struct wilc *wilc, wilc_debug_func debug_func)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
sdio_cmd52_t cmd; sdio_cmd52_t cmd;
int loop; int loop;
u32 chipid; u32 chipid;
memset(&g_sdio, 0, sizeof(wilc_sdio_t)); memset(&g_sdio, 0, sizeof(wilc_sdio_t));
g_sdio.dPrint = func;
g_sdio.irq_gpio = (wilc->dev_irq_num); g_sdio.irq_gpio = (wilc->dev_irq_num);
if (!wilc_sdio_init()) { if (!wilc_sdio_init()) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed io init bus...\n"); dev_err(&func->dev, "Failed io init bus...\n");
return 0; return 0;
} else { } else {
return 0; return 0;
...@@ -515,7 +539,7 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func) ...@@ -515,7 +539,7 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func)
cmd.address = 0x100; cmd.address = 0x100;
cmd.data = 0x80; cmd.data = 0x80;
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail cmd 52, enable csa...\n"); dev_err(&func->dev, "Fail cmd 52, enable csa...\n");
goto _fail_; goto _fail_;
} }
...@@ -523,7 +547,7 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func) ...@@ -523,7 +547,7 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func)
* function 0 block size * function 0 block size
**/ **/
if (!sdio_set_func0_block_size(wilc, WILC_SDIO_BLOCK_SIZE)) { if (!sdio_set_func0_block_size(wilc, WILC_SDIO_BLOCK_SIZE)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail cmd 52, set func 0 block size...\n"); dev_err(&func->dev, "Fail cmd 52, set func 0 block size...\n");
goto _fail_; goto _fail_;
} }
g_sdio.block_size = WILC_SDIO_BLOCK_SIZE; g_sdio.block_size = WILC_SDIO_BLOCK_SIZE;
...@@ -537,7 +561,8 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func) ...@@ -537,7 +561,8 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func)
cmd.address = 0x2; cmd.address = 0x2;
cmd.data = 0x2; cmd.data = 0x2;
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio] Fail cmd 52, set IOE register...\n"); dev_err(&func->dev,
"Fail cmd 52, set IOE register...\n");
goto _fail_; goto _fail_;
} }
...@@ -552,7 +577,8 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func) ...@@ -552,7 +577,8 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func)
do { do {
cmd.data = 0; cmd.data = 0;
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail cmd 52, get IOR register...\n"); dev_err(&func->dev,
"Fail cmd 52, get IOR register...\n");
goto _fail_; goto _fail_;
} }
if (cmd.data == 0x2) if (cmd.data == 0x2)
...@@ -560,7 +586,7 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func) ...@@ -560,7 +586,7 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func)
} while (loop--); } while (loop--);
if (loop <= 0) { if (loop <= 0) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail func 1 is not ready...\n"); dev_err(&func->dev, "Fail func 1 is not ready...\n");
goto _fail_; goto _fail_;
} }
...@@ -568,7 +594,7 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func) ...@@ -568,7 +594,7 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func)
* func 1 is ready, set func 1 block size * func 1 is ready, set func 1 block size
**/ **/
if (!sdio_set_func1_block_size(wilc, WILC_SDIO_BLOCK_SIZE)) { if (!sdio_set_func1_block_size(wilc, WILC_SDIO_BLOCK_SIZE)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail set func 1 block size...\n"); dev_err(&func->dev, "Fail set func 1 block size...\n");
goto _fail_; goto _fail_;
} }
...@@ -581,7 +607,7 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func) ...@@ -581,7 +607,7 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func)
cmd.address = 0x4; cmd.address = 0x4;
cmd.data = 0x3; cmd.data = 0x3;
if (!wilc_sdio_cmd52(wilc, &cmd)) { if (!wilc_sdio_cmd52(wilc, &cmd)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail cmd 52, set IEN register...\n"); dev_err(&func->dev, "Fail cmd 52, set IEN register...\n");
goto _fail_; goto _fail_;
} }
...@@ -589,15 +615,15 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func) ...@@ -589,15 +615,15 @@ static int sdio_init(struct wilc *wilc, wilc_debug_func func)
* make sure can read back chip id correctly * make sure can read back chip id correctly
**/ **/
if (!sdio_read_reg(wilc, 0x1000, &chipid)) { if (!sdio_read_reg(wilc, 0x1000, &chipid)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Fail cmd read chip id...\n"); dev_err(&func->dev, "Fail cmd read chip id...\n");
goto _fail_; goto _fail_;
} }
g_sdio.dPrint(N_ERR, "[wilc sdio]: chipid (%08x)\n", chipid); dev_err(&func->dev, "chipid (%08x)\n", chipid);
if ((chipid & 0xfff) > 0x2a0) if ((chipid & 0xfff) > 0x2a0)
g_sdio.has_thrpt_enh3 = 1; g_sdio.has_thrpt_enh3 = 1;
else else
g_sdio.has_thrpt_enh3 = 0; g_sdio.has_thrpt_enh3 = 0;
g_sdio.dPrint(N_ERR, "[wilc sdio]: has_thrpt_enh3 = %d...\n", g_sdio.has_thrpt_enh3); dev_info(&func->dev, "has_thrpt_enh3 = %d...\n", g_sdio.has_thrpt_enh3);
return 1; return 1;
...@@ -637,7 +663,7 @@ static int sdio_read_size(struct wilc *wilc, u32 *size) ...@@ -637,7 +663,7 @@ static int sdio_read_size(struct wilc *wilc, u32 *size)
static int sdio_read_int(struct wilc *wilc, u32 *int_status) static int sdio_read_int(struct wilc *wilc, u32 *int_status)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
u32 tmp; u32 tmp;
sdio_cmd52_t cmd; sdio_cmd52_t cmd;
...@@ -668,7 +694,9 @@ static int sdio_read_int(struct wilc *wilc, u32 *int_status) ...@@ -668,7 +694,9 @@ static int sdio_read_int(struct wilc *wilc, u32 *int_status)
tmp |= INT_5; tmp |= INT_5;
for (i = g_sdio.nint; i < MAX_NUM_INT; i++) { for (i = g_sdio.nint; i < MAX_NUM_INT; i++) {
if ((tmp >> (IRG_FLAGS_OFFSET + i)) & 0x1) { if ((tmp >> (IRG_FLAGS_OFFSET + i)) & 0x1) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Unexpected interrupt (1) : tmp=%x, data=%x\n", tmp, cmd.data); dev_err(&func->dev,
"Unexpected interrupt (1) : tmp=%x, data=%x\n",
tmp, cmd.data);
break; break;
} }
} }
...@@ -692,6 +720,7 @@ static int sdio_read_int(struct wilc *wilc, u32 *int_status) ...@@ -692,6 +720,7 @@ static int sdio_read_int(struct wilc *wilc, u32 *int_status)
static int sdio_clear_int_ext(struct wilc *wilc, u32 val) static int sdio_clear_int_ext(struct wilc *wilc, u32 val)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
int ret; int ret;
if (g_sdio.has_thrpt_enh3) { if (g_sdio.has_thrpt_enh3) {
...@@ -725,7 +754,9 @@ static int sdio_clear_int_ext(struct wilc *wilc, u32 val) ...@@ -725,7 +754,9 @@ static int sdio_clear_int_ext(struct wilc *wilc, u32 val)
ret = wilc_sdio_cmd52(wilc, &cmd); ret = wilc_sdio_cmd52(wilc, &cmd);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0xf8 data (%d) ...\n", __LINE__); dev_err(&func->dev,
"Failed cmd52, set 0xf8 data (%d) ...\n",
__LINE__);
goto _fail_; goto _fail_;
} }
...@@ -753,7 +784,9 @@ static int sdio_clear_int_ext(struct wilc *wilc, u32 val) ...@@ -753,7 +784,9 @@ static int sdio_clear_int_ext(struct wilc *wilc, u32 val)
ret = wilc_sdio_cmd52(wilc, &cmd); ret = wilc_sdio_cmd52(wilc, &cmd);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0xf8 data (%d) ...\n", __LINE__); dev_err(&func->dev,
"Failed cmd52, set 0xf8 data (%d) ...\n",
__LINE__);
goto _fail_; goto _fail_;
} }
...@@ -766,7 +799,9 @@ static int sdio_clear_int_ext(struct wilc *wilc, u32 val) ...@@ -766,7 +799,9 @@ static int sdio_clear_int_ext(struct wilc *wilc, u32 val)
goto _fail_; goto _fail_;
for (i = g_sdio.nint; i < MAX_NUM_INT; i++) { for (i = g_sdio.nint; i < MAX_NUM_INT; i++) {
if (flags & 1) if (flags & 1)
g_sdio.dPrint(N_ERR, "[wilc sdio]: Unexpected interrupt cleared %d...\n", i); dev_err(&func->dev,
"Unexpected interrupt cleared %d...\n",
i);
flags >>= 1; flags >>= 1;
} }
} }
...@@ -796,7 +831,9 @@ static int sdio_clear_int_ext(struct wilc *wilc, u32 val) ...@@ -796,7 +831,9 @@ static int sdio_clear_int_ext(struct wilc *wilc, u32 val)
cmd.data = vmm_ctl; cmd.data = vmm_ctl;
ret = wilc_sdio_cmd52(wilc, &cmd); ret = wilc_sdio_cmd52(wilc, &cmd);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed cmd52, set 0xf6 data (%d) ...\n", __LINE__); dev_err(&func->dev,
"Failed cmd52, set 0xf6 data (%d) ...\n",
__LINE__);
goto _fail_; goto _fail_;
} }
} }
...@@ -810,14 +847,16 @@ static int sdio_clear_int_ext(struct wilc *wilc, u32 val) ...@@ -810,14 +847,16 @@ static int sdio_clear_int_ext(struct wilc *wilc, u32 val)
static int sdio_sync_ext(struct wilc *wilc, int nint) static int sdio_sync_ext(struct wilc *wilc, int nint)
{ {
struct sdio_func *func = dev_to_sdio_func(wilc->dev);
u32 reg; u32 reg;
if (nint > MAX_NUM_INT) { if (nint > MAX_NUM_INT) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Too many interupts (%d)...\n", nint); dev_err(&func->dev, "Too many interupts (%d)...\n", nint);
return 0; return 0;
} }
if (nint > MAX_NUN_INT_THRPT_ENH2) { if (nint > MAX_NUN_INT_THRPT_ENH2) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Error: Cannot support more than 5 interrupts when has_thrpt_enh2=1.\n"); dev_err(&func->dev,
"Cannot support more than 5 interrupts when has_thrpt_enh2=1.\n");
return 0; return 0;
} }
...@@ -827,13 +866,13 @@ static int sdio_sync_ext(struct wilc *wilc, int nint) ...@@ -827,13 +866,13 @@ static int sdio_sync_ext(struct wilc *wilc, int nint)
* Disable power sequencer * Disable power sequencer
**/ **/
if (!sdio_read_reg(wilc, WILC_MISC, &reg)) { if (!sdio_read_reg(wilc, WILC_MISC, &reg)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed read misc reg...\n"); dev_err(&func->dev, "Failed read misc reg...\n");
return 0; return 0;
} }
reg &= ~BIT(8); reg &= ~BIT(8);
if (!sdio_write_reg(wilc, WILC_MISC, reg)) { if (!sdio_write_reg(wilc, WILC_MISC, reg)) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write misc reg...\n"); dev_err(&func->dev, "Failed write misc reg...\n");
return 0; return 0;
} }
...@@ -846,13 +885,15 @@ static int sdio_sync_ext(struct wilc *wilc, int nint) ...@@ -846,13 +885,15 @@ static int sdio_sync_ext(struct wilc *wilc, int nint)
**/ **/
ret = sdio_read_reg(wilc, WILC_PIN_MUX_0, &reg); ret = sdio_read_reg(wilc, WILC_PIN_MUX_0, &reg);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed read reg (%08x)...\n", WILC_PIN_MUX_0); dev_err(&func->dev, "Failed read reg (%08x)...\n",
WILC_PIN_MUX_0);
return 0; return 0;
} }
reg |= BIT(8); reg |= BIT(8);
ret = sdio_write_reg(wilc, WILC_PIN_MUX_0, reg); ret = sdio_write_reg(wilc, WILC_PIN_MUX_0, reg);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write reg (%08x)...\n", WILC_PIN_MUX_0); dev_err(&func->dev, "Failed write reg (%08x)...\n",
WILC_PIN_MUX_0);
return 0; return 0;
} }
...@@ -861,7 +902,8 @@ static int sdio_sync_ext(struct wilc *wilc, int nint) ...@@ -861,7 +902,8 @@ static int sdio_sync_ext(struct wilc *wilc, int nint)
**/ **/
ret = sdio_read_reg(wilc, WILC_INTR_ENABLE, &reg); ret = sdio_read_reg(wilc, WILC_INTR_ENABLE, &reg);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed read reg (%08x)...\n", WILC_INTR_ENABLE); dev_err(&func->dev, "Failed read reg (%08x)...\n",
WILC_INTR_ENABLE);
return 0; return 0;
} }
...@@ -869,13 +911,16 @@ static int sdio_sync_ext(struct wilc *wilc, int nint) ...@@ -869,13 +911,16 @@ static int sdio_sync_ext(struct wilc *wilc, int nint)
reg |= BIT((27 + i)); reg |= BIT((27 + i));
ret = sdio_write_reg(wilc, WILC_INTR_ENABLE, reg); ret = sdio_write_reg(wilc, WILC_INTR_ENABLE, reg);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write reg (%08x)...\n", WILC_INTR_ENABLE); dev_err(&func->dev, "Failed write reg (%08x)...\n",
WILC_INTR_ENABLE);
return 0; return 0;
} }
if (nint) { if (nint) {
ret = sdio_read_reg(wilc, WILC_INTR2_ENABLE, &reg); ret = sdio_read_reg(wilc, WILC_INTR2_ENABLE, &reg);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed read reg (%08x)...\n", WILC_INTR2_ENABLE); dev_err(&func->dev,
"Failed read reg (%08x)...\n",
WILC_INTR2_ENABLE);
return 0; return 0;
} }
...@@ -884,7 +929,9 @@ static int sdio_sync_ext(struct wilc *wilc, int nint) ...@@ -884,7 +929,9 @@ static int sdio_sync_ext(struct wilc *wilc, int nint)
ret = sdio_read_reg(wilc, WILC_INTR2_ENABLE, &reg); ret = sdio_read_reg(wilc, WILC_INTR2_ENABLE, &reg);
if (!ret) { if (!ret) {
g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed write reg (%08x)...\n", WILC_INTR2_ENABLE); dev_err(&func->dev,
"Failed write reg (%08x)...\n",
WILC_INTR2_ENABLE);
return 0; return 0;
} }
} }
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include "wilc_wfi_netdevice.h" #include "wilc_wfi_netdevice.h"
typedef struct { typedef struct {
wilc_debug_func dPrint;
int crc_off; int crc_off;
int nint; int nint;
int has_thrpt_enh; int has_thrpt_enh;
...@@ -111,6 +110,7 @@ static u8 crc7(u8 crc, const u8 *buffer, u32 len) ...@@ -111,6 +110,7 @@ static u8 crc7(u8 crc, const u8 *buffer, u32 len)
static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
u8 clockless) u8 clockless)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
u8 wb[32], rb[32]; u8 wb[32], rb[32];
u8 wix, rix; u8 wix, rix;
u32 len2; u32 len2;
...@@ -239,7 +239,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -239,7 +239,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
#undef NUM_DUMMY_BYTES #undef NUM_DUMMY_BYTES
if (len2 > ARRAY_SIZE(wb)) { if (len2 > ARRAY_SIZE(wb)) {
PRINT_ER("[wilc spi]: spi buffer size too small (%d) (%zu)\n", dev_err(&spi->dev, "spi buffer size too small (%d) (%zu)\n",
len2, ARRAY_SIZE(wb)); len2, ARRAY_SIZE(wb));
result = N_FAIL; result = N_FAIL;
return result; return result;
...@@ -251,7 +251,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -251,7 +251,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
rix = len; rix = len;
if (!wilc_spi_write_read(wilc, wb, rb, len2)) { if (!wilc_spi_write_read(wilc, wb, rb, len2)) {
PRINT_ER("[wilc spi]: Failed cmd write, bus error...\n"); dev_err(&spi->dev, "Failed cmd write, bus error...\n");
result = N_FAIL; result = N_FAIL;
return result; return result;
} }
...@@ -271,7 +271,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -271,7 +271,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
/* } while(&rptr[1] <= &rb[len2]); */ /* } while(&rptr[1] <= &rb[len2]); */
if (rsp != cmd) { if (rsp != cmd) {
PRINT_ER("[wilc spi]: Failed cmd response, cmd (%02x)" dev_err(&spi->dev, "Failed cmd response, cmd (%02x)"
", resp (%02x)\n", cmd, rsp); ", resp (%02x)\n", cmd, rsp);
result = N_FAIL; result = N_FAIL;
return result; return result;
...@@ -282,8 +282,8 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -282,8 +282,8 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
**/ **/
rsp = rb[rix++]; rsp = rb[rix++];
if (rsp != 0x00) { if (rsp != 0x00) {
PRINT_ER("[wilc spi]: Failed cmd state response " dev_err(&spi->dev, "Failed cmd state response state (%02x)\n",
"state (%02x)\n", rsp); rsp);
result = N_FAIL; result = N_FAIL;
return result; return result;
} }
...@@ -310,8 +310,8 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -310,8 +310,8 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
} while (retry--); } while (retry--);
if (retry <= 0) { if (retry <= 0) {
PRINT_ER("[wilc spi]: Error, data read " dev_err(&spi->dev,
"response (%02x)\n", rsp); "Error, data read response (%02x)\n", rsp);
result = N_RESET; result = N_RESET;
return result; return result;
} }
...@@ -326,7 +326,8 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -326,7 +326,8 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
b[2] = rb[rix++]; b[2] = rb[rix++];
b[3] = rb[rix++]; b[3] = rb[rix++];
} else { } else {
PRINT_ER("[wilc spi]: buffer overrun when reading data.\n"); dev_err(&spi->dev,
"buffer overrun when reading data.\n");
result = N_FAIL; result = N_FAIL;
return result; return result;
} }
...@@ -339,7 +340,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -339,7 +340,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
crc[0] = rb[rix++]; crc[0] = rb[rix++];
crc[1] = rb[rix++]; crc[1] = rb[rix++];
} else { } else {
PRINT_ER("[wilc spi]: buffer overrun when reading crc.\n"); dev_err(&spi->dev,"buffer overrun when reading crc.\n");
result = N_FAIL; result = N_FAIL;
return result; return result;
} }
...@@ -366,7 +367,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -366,7 +367,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
* Read bytes * Read bytes
**/ **/
if (!wilc_spi_read(wilc, &b[ix], nbytes)) { if (!wilc_spi_read(wilc, &b[ix], nbytes)) {
PRINT_ER("[wilc spi]: Failed data block read, bus error...\n"); dev_err(&spi->dev, "Failed data block read, bus error...\n");
result = N_FAIL; result = N_FAIL;
goto _error_; goto _error_;
} }
...@@ -376,7 +377,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -376,7 +377,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
**/ **/
if (!g_spi.crc_off) { if (!g_spi.crc_off) {
if (!wilc_spi_read(wilc, crc, 2)) { if (!wilc_spi_read(wilc, crc, 2)) {
PRINT_ER("[wilc spi]: Failed data block crc read, bus error...\n"); dev_err(&spi->dev, "Failed data block crc read, bus error...\n");
result = N_FAIL; result = N_FAIL;
goto _error_; goto _error_;
} }
...@@ -407,7 +408,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -407,7 +408,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
retry = 10; retry = 10;
do { do {
if (!wilc_spi_read(wilc, &rsp, 1)) { if (!wilc_spi_read(wilc, &rsp, 1)) {
PRINT_ER("[wilc spi]: Failed data response read, bus error...\n"); dev_err(&spi->dev, "Failed data response read, bus error...\n");
result = N_FAIL; result = N_FAIL;
break; break;
} }
...@@ -423,7 +424,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -423,7 +424,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
* Read bytes * Read bytes
**/ **/
if (!wilc_spi_read(wilc, &b[ix], nbytes)) { if (!wilc_spi_read(wilc, &b[ix], nbytes)) {
PRINT_ER("[wilc spi]: Failed data block read, bus error...\n"); dev_err(&spi->dev, "Failed data block read, bus error...\n");
result = N_FAIL; result = N_FAIL;
break; break;
} }
...@@ -433,7 +434,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -433,7 +434,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
**/ **/
if (!g_spi.crc_off) { if (!g_spi.crc_off) {
if (!wilc_spi_read(wilc, crc, 2)) { if (!wilc_spi_read(wilc, crc, 2)) {
PRINT_ER("[wilc spi]: Failed data block crc read, bus error...\n"); dev_err(&spi->dev, "Failed data block crc read, bus error...\n");
result = N_FAIL; result = N_FAIL;
break; break;
} }
...@@ -450,6 +451,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz, ...@@ -450,6 +451,7 @@ static int spi_cmd_complete(struct wilc *wilc, u8 cmd, u32 adr, u8 *b, u32 sz,
static int spi_data_write(struct wilc *wilc, u8 *b, u32 sz) static int spi_data_write(struct wilc *wilc, u8 *b, u32 sz)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
int ix, nbytes; int ix, nbytes;
int result = 1; int result = 1;
u8 cmd, order, crc[2] = {0}; u8 cmd, order, crc[2] = {0};
...@@ -483,7 +485,8 @@ static int spi_data_write(struct wilc *wilc, u8 *b, u32 sz) ...@@ -483,7 +485,8 @@ static int spi_data_write(struct wilc *wilc, u8 *b, u32 sz)
} }
cmd |= order; cmd |= order;
if (!wilc_spi_write(wilc, &cmd, 1)) { if (!wilc_spi_write(wilc, &cmd, 1)) {
PRINT_ER("[wilc spi]: Failed data block cmd write, bus error...\n"); dev_err(&spi->dev,
"Failed data block cmd write, bus error...\n");
result = N_FAIL; result = N_FAIL;
break; break;
} }
...@@ -492,7 +495,8 @@ static int spi_data_write(struct wilc *wilc, u8 *b, u32 sz) ...@@ -492,7 +495,8 @@ static int spi_data_write(struct wilc *wilc, u8 *b, u32 sz)
* Write data * Write data
**/ **/
if (!wilc_spi_write(wilc, &b[ix], nbytes)) { if (!wilc_spi_write(wilc, &b[ix], nbytes)) {
PRINT_ER("[wilc spi]: Failed data block write, bus error...\n"); dev_err(&spi->dev,
"Failed data block write, bus error...\n");
result = N_FAIL; result = N_FAIL;
break; break;
} }
...@@ -502,7 +506,7 @@ static int spi_data_write(struct wilc *wilc, u8 *b, u32 sz) ...@@ -502,7 +506,7 @@ static int spi_data_write(struct wilc *wilc, u8 *b, u32 sz)
**/ **/
if (!g_spi.crc_off) { if (!g_spi.crc_off) {
if (!wilc_spi_write(wilc, crc, 2)) { if (!wilc_spi_write(wilc, crc, 2)) {
PRINT_ER("[wilc spi]: Failed data block crc write, bus error...\n"); dev_err(&spi->dev,"Failed data block crc write, bus error...\n");
result = N_FAIL; result = N_FAIL;
break; break;
} }
...@@ -527,13 +531,14 @@ static int spi_data_write(struct wilc *wilc, u8 *b, u32 sz) ...@@ -527,13 +531,14 @@ static int spi_data_write(struct wilc *wilc, u8 *b, u32 sz)
static int spi_internal_write(struct wilc *wilc, u32 adr, u32 dat) static int spi_internal_write(struct wilc *wilc, u32 adr, u32 dat)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
int result; int result;
dat = cpu_to_le32(dat); dat = cpu_to_le32(dat);
result = spi_cmd_complete(wilc, CMD_INTERNAL_WRITE, adr, (u8 *)&dat, 4, result = spi_cmd_complete(wilc, CMD_INTERNAL_WRITE, adr, (u8 *)&dat, 4,
0); 0);
if (result != N_OK) { if (result != N_OK) {
PRINT_ER("[wilc spi]: Failed internal write cmd...\n"); dev_err(&spi->dev, "Failed internal write cmd...\n");
} }
return result; return result;
...@@ -541,12 +546,13 @@ static int spi_internal_write(struct wilc *wilc, u32 adr, u32 dat) ...@@ -541,12 +546,13 @@ static int spi_internal_write(struct wilc *wilc, u32 adr, u32 dat)
static int spi_internal_read(struct wilc *wilc, u32 adr, u32 *data) static int spi_internal_read(struct wilc *wilc, u32 adr, u32 *data)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
int result; int result;
result = spi_cmd_complete(wilc, CMD_INTERNAL_READ, adr, (u8 *)data, 4, result = spi_cmd_complete(wilc, CMD_INTERNAL_READ, adr, (u8 *)data, 4,
0); 0);
if (result != N_OK) { if (result != N_OK) {
PRINT_ER("[wilc spi]: Failed internal read cmd...\n"); dev_err(&spi->dev, "Failed internal read cmd...\n");
return 0; return 0;
} }
...@@ -563,6 +569,7 @@ static int spi_internal_read(struct wilc *wilc, u32 adr, u32 *data) ...@@ -563,6 +569,7 @@ static int spi_internal_read(struct wilc *wilc, u32 adr, u32 *data)
static int wilc_spi_write_reg(struct wilc *wilc, u32 addr, u32 data) static int wilc_spi_write_reg(struct wilc *wilc, u32 addr, u32 data)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
int result = N_OK; int result = N_OK;
u8 cmd = CMD_SINGLE_WRITE; u8 cmd = CMD_SINGLE_WRITE;
u8 clockless = 0; u8 clockless = 0;
...@@ -576,7 +583,7 @@ static int wilc_spi_write_reg(struct wilc *wilc, u32 addr, u32 data) ...@@ -576,7 +583,7 @@ static int wilc_spi_write_reg(struct wilc *wilc, u32 addr, u32 data)
result = spi_cmd_complete(wilc, cmd, addr, (u8 *)&data, 4, clockless); result = spi_cmd_complete(wilc, cmd, addr, (u8 *)&data, 4, clockless);
if (result != N_OK) { if (result != N_OK) {
PRINT_ER("[wilc spi]: Failed cmd, write reg (%08x)...\n", addr); dev_err(&spi->dev, "Failed cmd, write reg (%08x)...\n", addr);
} }
return result; return result;
...@@ -584,6 +591,7 @@ static int wilc_spi_write_reg(struct wilc *wilc, u32 addr, u32 data) ...@@ -584,6 +591,7 @@ static int wilc_spi_write_reg(struct wilc *wilc, u32 addr, u32 data)
static int _wilc_spi_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size) static int _wilc_spi_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
int result; int result;
u8 cmd = CMD_DMA_EXT_WRITE; u8 cmd = CMD_DMA_EXT_WRITE;
...@@ -595,7 +603,8 @@ static int _wilc_spi_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size) ...@@ -595,7 +603,8 @@ static int _wilc_spi_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
result = spi_cmd_complete(wilc, cmd, addr, NULL, size, 0); result = spi_cmd_complete(wilc, cmd, addr, NULL, size, 0);
if (result != N_OK) { if (result != N_OK) {
PRINT_ER("[wilc spi]: Failed cmd, write block (%08x)...\n", addr); dev_err(&spi->dev,
"Failed cmd, write block (%08x)...\n", addr);
return 0; return 0;
} }
...@@ -604,7 +613,7 @@ static int _wilc_spi_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size) ...@@ -604,7 +613,7 @@ static int _wilc_spi_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
**/ **/
result = spi_data_write(wilc, buf, size); result = spi_data_write(wilc, buf, size);
if (result != N_OK) { if (result != N_OK) {
PRINT_ER("[wilc spi]: Failed block data write...\n"); dev_err(&spi->dev, "Failed block data write...\n");
} }
return 1; return 1;
...@@ -612,12 +621,13 @@ static int _wilc_spi_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size) ...@@ -612,12 +621,13 @@ static int _wilc_spi_write(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
static int wilc_spi_read_reg(struct wilc *wilc, u32 addr, u32 *data) static int wilc_spi_read_reg(struct wilc *wilc, u32 addr, u32 *data)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
int result = N_OK; int result = N_OK;
u8 cmd = CMD_SINGLE_READ; u8 cmd = CMD_SINGLE_READ;
u8 clockless = 0; u8 clockless = 0;
if (addr < 0x30) { if (addr < 0x30) {
/* PRINT_ER("***** read addr %d\n\n", addr); */ /* dev_err(&spi->dev, "***** read addr %d\n\n", addr); */
/* Clockless register*/ /* Clockless register*/
cmd = CMD_INTERNAL_READ; cmd = CMD_INTERNAL_READ;
clockless = 1; clockless = 1;
...@@ -625,7 +635,7 @@ static int wilc_spi_read_reg(struct wilc *wilc, u32 addr, u32 *data) ...@@ -625,7 +635,7 @@ static int wilc_spi_read_reg(struct wilc *wilc, u32 addr, u32 *data)
result = spi_cmd_complete(wilc, cmd, addr, (u8 *)data, 4, clockless); result = spi_cmd_complete(wilc, cmd, addr, (u8 *)data, 4, clockless);
if (result != N_OK) { if (result != N_OK) {
PRINT_ER("[wilc spi]: Failed cmd, read reg (%08x)...\n", addr); dev_err(&spi->dev, "Failed cmd, read reg (%08x)...\n", addr);
return 0; return 0;
} }
...@@ -636,6 +646,7 @@ static int wilc_spi_read_reg(struct wilc *wilc, u32 addr, u32 *data) ...@@ -636,6 +646,7 @@ static int wilc_spi_read_reg(struct wilc *wilc, u32 addr, u32 *data)
static int _wilc_spi_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size) static int _wilc_spi_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
u8 cmd = CMD_DMA_EXT_READ; u8 cmd = CMD_DMA_EXT_READ;
int result; int result;
...@@ -644,7 +655,7 @@ static int _wilc_spi_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size) ...@@ -644,7 +655,7 @@ static int _wilc_spi_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
result = spi_cmd_complete(wilc, cmd, addr, buf, size, 0); result = spi_cmd_complete(wilc, cmd, addr, buf, size, 0);
if (result != N_OK) { if (result != N_OK) {
PRINT_ER("[wilc spi]: Failed cmd, read block (%08x)...\n", addr); dev_err(&spi->dev, "Failed cmd, read block (%08x)...\n", addr);
return 0; return 0;
} }
...@@ -659,10 +670,12 @@ static int _wilc_spi_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size) ...@@ -659,10 +670,12 @@ static int _wilc_spi_read(struct wilc *wilc, u32 addr, u8 *buf, u32 size)
static int wilc_spi_clear_int(struct wilc *wilc) static int wilc_spi_clear_int(struct wilc *wilc)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
u32 reg; u32 reg;
if (!wilc_spi_read_reg(wilc, WILC_HOST_RX_CTRL_0, &reg)) { if (!wilc_spi_read_reg(wilc, WILC_HOST_RX_CTRL_0, &reg)) {
PRINT_ER("[wilc spi]: Failed read reg (%08x)...\n", WILC_HOST_RX_CTRL_0); dev_err(&spi->dev, "Failed read reg (%08x)...\n",
WILC_HOST_RX_CTRL_0);
return 0; return 0;
} }
reg &= ~0x1; reg &= ~0x1;
...@@ -680,6 +693,7 @@ static int _wilc_spi_deinit(struct wilc *wilc) ...@@ -680,6 +693,7 @@ static int _wilc_spi_deinit(struct wilc *wilc)
static int wilc_spi_sync(struct wilc *wilc) static int wilc_spi_sync(struct wilc *wilc)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
u32 reg; u32 reg;
int ret; int ret;
...@@ -688,13 +702,15 @@ static int wilc_spi_sync(struct wilc *wilc) ...@@ -688,13 +702,15 @@ static int wilc_spi_sync(struct wilc *wilc)
**/ **/
ret = wilc_spi_read_reg(wilc, WILC_PIN_MUX_0, &reg); ret = wilc_spi_read_reg(wilc, WILC_PIN_MUX_0, &reg);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed read reg (%08x)...\n", WILC_PIN_MUX_0); dev_err(&spi->dev,"Failed read reg (%08x)...\n",
WILC_PIN_MUX_0);
return 0; return 0;
} }
reg |= BIT(8); reg |= BIT(8);
ret = wilc_spi_write_reg(wilc, WILC_PIN_MUX_0, reg); ret = wilc_spi_write_reg(wilc, WILC_PIN_MUX_0, reg);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed write reg (%08x)...\n", WILC_PIN_MUX_0); dev_err(&spi->dev, "Failed write reg (%08x)...\n",
WILC_PIN_MUX_0);
return 0; return 0;
} }
...@@ -703,13 +719,15 @@ static int wilc_spi_sync(struct wilc *wilc) ...@@ -703,13 +719,15 @@ static int wilc_spi_sync(struct wilc *wilc)
**/ **/
ret = wilc_spi_read_reg(wilc, WILC_INTR_ENABLE, &reg); ret = wilc_spi_read_reg(wilc, WILC_INTR_ENABLE, &reg);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed read reg (%08x)...\n", WILC_INTR_ENABLE); dev_err(&spi->dev, "Failed read reg (%08x)...\n",
WILC_INTR_ENABLE);
return 0; return 0;
} }
reg |= BIT(16); reg |= BIT(16);
ret = wilc_spi_write_reg(wilc, WILC_INTR_ENABLE, reg); ret = wilc_spi_write_reg(wilc, WILC_INTR_ENABLE, reg);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed write reg (%08x)...\n", WILC_INTR_ENABLE); dev_err(&spi->dev, "Failed write reg (%08x)...\n",
WILC_INTR_ENABLE);
return 0; return 0;
} }
...@@ -718,6 +736,7 @@ static int wilc_spi_sync(struct wilc *wilc) ...@@ -718,6 +736,7 @@ static int wilc_spi_sync(struct wilc *wilc)
static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func) static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
u32 reg; u32 reg;
u32 chipid; u32 chipid;
...@@ -726,7 +745,7 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func) ...@@ -726,7 +745,7 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func)
if (isinit) { if (isinit) {
if (!wilc_spi_read_reg(wilc, 0x1000, &chipid)) { if (!wilc_spi_read_reg(wilc, 0x1000, &chipid)) {
PRINT_ER("[wilc spi]: Fail cmd read chip id...\n"); dev_err(&spi->dev, "Fail cmd read chip id...\n");
return 0; return 0;
} }
return 1; return 1;
...@@ -734,9 +753,8 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func) ...@@ -734,9 +753,8 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func)
memset(&g_spi, 0, sizeof(wilc_spi_t)); memset(&g_spi, 0, sizeof(wilc_spi_t));
g_spi.dPrint = func;
if (!wilc_spi_init()) { if (!wilc_spi_init()) {
PRINT_ER("[wilc spi]: Failed io init bus...\n"); dev_err(&spi->dev, "Failed io init bus...\n");
return 0; return 0;
} else { } else {
return 0; return 0;
...@@ -753,10 +771,11 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func) ...@@ -753,10 +771,11 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func)
/* Read failed. Try with CRC off. This might happen when module /* Read failed. Try with CRC off. This might happen when module
* is removed but chip isn't reset*/ * is removed but chip isn't reset*/
g_spi.crc_off = 1; g_spi.crc_off = 1;
PRINT_ER("[wilc spi]: Failed internal read protocol with CRC on, retyring with CRC off...\n"); dev_err(&spi->dev, "Failed internal read protocol with CRC on, retyring with CRC off...\n");
if (!spi_internal_read(wilc, WILC_SPI_PROTOCOL_OFFSET, &reg)) { if (!spi_internal_read(wilc, WILC_SPI_PROTOCOL_OFFSET, &reg)) {
/* Reaad failed with both CRC on and off, something went bad */ /* Reaad failed with both CRC on and off, something went bad */
PRINT_ER("[wilc spi]: Failed internal read protocol...\n"); dev_err(&spi->dev,
"Failed internal read protocol...\n");
return 0; return 0;
} }
} }
...@@ -765,7 +784,7 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func) ...@@ -765,7 +784,7 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func)
reg &= ~0x70; reg &= ~0x70;
reg |= (0x5 << 4); reg |= (0x5 << 4);
if (!spi_internal_write(wilc, WILC_SPI_PROTOCOL_OFFSET, reg)) { if (!spi_internal_write(wilc, WILC_SPI_PROTOCOL_OFFSET, reg)) {
PRINT_ER("[wilc spi %d]: Failed internal write protocol reg...\n", __LINE__); dev_err(&spi->dev, "[wilc spi %d]: Failed internal write protocol reg...\n", __LINE__);
return 0; return 0;
} }
g_spi.crc_off = 1; g_spi.crc_off = 1;
...@@ -776,10 +795,10 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func) ...@@ -776,10 +795,10 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func)
* make sure can read back chip id correctly * make sure can read back chip id correctly
**/ **/
if (!wilc_spi_read_reg(wilc, 0x1000, &chipid)) { if (!wilc_spi_read_reg(wilc, 0x1000, &chipid)) {
PRINT_ER("[wilc spi]: Fail cmd read chip id...\n"); dev_err(&spi->dev, "Fail cmd read chip id...\n");
return 0; return 0;
} }
/* PRINT_ER("[wilc spi]: chipid (%08x)\n", chipid); */ /* dev_err(&spi->dev, "chipid (%08x)\n", chipid); */
g_spi.has_thrpt_enh = 1; g_spi.has_thrpt_enh = 1;
...@@ -790,6 +809,7 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func) ...@@ -790,6 +809,7 @@ static int _wilc_spi_init(struct wilc *wilc, wilc_debug_func func)
static int wilc_spi_read_size(struct wilc *wilc, u32 *size) static int wilc_spi_read_size(struct wilc *wilc, u32 *size)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
int ret; int ret;
if (g_spi.has_thrpt_enh) { if (g_spi.has_thrpt_enh) {
...@@ -803,7 +823,8 @@ static int wilc_spi_read_size(struct wilc *wilc, u32 *size) ...@@ -803,7 +823,8 @@ static int wilc_spi_read_size(struct wilc *wilc, u32 *size)
ret = wilc_spi_read_reg(wilc, WILC_VMM_TO_HOST_SIZE, ret = wilc_spi_read_reg(wilc, WILC_VMM_TO_HOST_SIZE,
&byte_cnt); &byte_cnt);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed read WILC_VMM_TO_HOST_SIZE ...\n"); dev_err(&spi->dev,
"Failed read WILC_VMM_TO_HOST_SIZE ...\n");
goto _fail_; goto _fail_;
} }
tmp = (byte_cnt >> 2) & IRQ_DMA_WD_CNT_MASK; tmp = (byte_cnt >> 2) & IRQ_DMA_WD_CNT_MASK;
...@@ -820,6 +841,7 @@ static int wilc_spi_read_size(struct wilc *wilc, u32 *size) ...@@ -820,6 +841,7 @@ static int wilc_spi_read_size(struct wilc *wilc, u32 *size)
static int wilc_spi_read_int(struct wilc *wilc, u32 *int_status) static int wilc_spi_read_int(struct wilc *wilc, u32 *int_status)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
int ret; int ret;
if (g_spi.has_thrpt_enh) { if (g_spi.has_thrpt_enh) {
...@@ -832,7 +854,8 @@ static int wilc_spi_read_int(struct wilc *wilc, u32 *int_status) ...@@ -832,7 +854,8 @@ static int wilc_spi_read_int(struct wilc *wilc, u32 *int_status)
ret = wilc_spi_read_reg(wilc, WILC_VMM_TO_HOST_SIZE, ret = wilc_spi_read_reg(wilc, WILC_VMM_TO_HOST_SIZE,
&byte_cnt); &byte_cnt);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed read WILC_VMM_TO_HOST_SIZE ...\n"); dev_err(&spi->dev,
"Failed read WILC_VMM_TO_HOST_SIZE ...\n");
goto _fail_; goto _fail_;
} }
tmp = (byte_cnt >> 2) & IRQ_DMA_WD_CNT_MASK; tmp = (byte_cnt >> 2) & IRQ_DMA_WD_CNT_MASK;
...@@ -861,7 +884,7 @@ static int wilc_spi_read_int(struct wilc *wilc, u32 *int_status) ...@@ -861,7 +884,7 @@ static int wilc_spi_read_int(struct wilc *wilc, u32 *int_status)
unkmown_mask = ~((1ul << g_spi.nint) - 1); unkmown_mask = ~((1ul << g_spi.nint) - 1);
if ((tmp >> IRG_FLAGS_OFFSET) & unkmown_mask) { if ((tmp >> IRG_FLAGS_OFFSET) & unkmown_mask) {
PRINT_ER("[wilc spi]: Unexpected interrupt (2): j=%d, tmp=%x, mask=%x\n", j, tmp, unkmown_mask); dev_err(&spi->dev, "Unexpected interrupt (2): j=%d, tmp=%x, mask=%x\n", j, tmp, unkmown_mask);
happended = 1; happended = 1;
} }
} }
...@@ -879,6 +902,7 @@ static int wilc_spi_read_int(struct wilc *wilc, u32 *int_status) ...@@ -879,6 +902,7 @@ static int wilc_spi_read_int(struct wilc *wilc, u32 *int_status)
static int wilc_spi_clear_int_ext(struct wilc *wilc, u32 val) static int wilc_spi_clear_int_ext(struct wilc *wilc, u32 val)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
int ret; int ret;
if (g_spi.has_thrpt_enh) { if (g_spi.has_thrpt_enh) {
...@@ -901,12 +925,16 @@ static int wilc_spi_clear_int_ext(struct wilc *wilc, u32 val) ...@@ -901,12 +925,16 @@ static int wilc_spi_clear_int_ext(struct wilc *wilc, u32 val)
flags >>= 1; flags >>= 1;
} }
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed wilc_spi_write_reg, set reg %x ...\n", 0x10c8 + i * 4); dev_err(&spi->dev,
"Failed wilc_spi_write_reg, set reg %x ...\n",
0x10c8 + i * 4);
goto _fail_; goto _fail_;
} }
for (i = g_spi.nint; i < MAX_NUM_INT; i++) { for (i = g_spi.nint; i < MAX_NUM_INT; i++) {
if (flags & 1) if (flags & 1)
PRINT_ER("[wilc spi]: Unexpected interrupt cleared %d...\n", i); dev_err(&spi->dev,
"Unexpected interrupt cleared %d...\n",
i);
flags >>= 1; flags >>= 1;
} }
} }
...@@ -925,7 +953,8 @@ static int wilc_spi_clear_int_ext(struct wilc *wilc, u32 val) ...@@ -925,7 +953,8 @@ static int wilc_spi_clear_int_ext(struct wilc *wilc, u32 val)
ret = wilc_spi_write_reg(wilc, WILC_VMM_TBL_CTL, ret = wilc_spi_write_reg(wilc, WILC_VMM_TBL_CTL,
tbl_ctl); tbl_ctl);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: fail write reg vmm_tbl_ctl...\n"); dev_err(&spi->dev,
"fail write reg vmm_tbl_ctl...\n");
goto _fail_; goto _fail_;
} }
...@@ -936,7 +965,7 @@ static int wilc_spi_clear_int_ext(struct wilc *wilc, u32 val) ...@@ -936,7 +965,7 @@ static int wilc_spi_clear_int_ext(struct wilc *wilc, u32 val)
ret = wilc_spi_write_reg(wilc, ret = wilc_spi_write_reg(wilc,
WILC_VMM_CORE_CTL, 1); WILC_VMM_CORE_CTL, 1);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: fail write reg vmm_core_ctl...\n"); dev_err(&spi->dev,"fail write reg vmm_core_ctl...\n");
goto _fail_; goto _fail_;
} }
} }
...@@ -948,11 +977,12 @@ static int wilc_spi_clear_int_ext(struct wilc *wilc, u32 val) ...@@ -948,11 +977,12 @@ static int wilc_spi_clear_int_ext(struct wilc *wilc, u32 val)
static int wilc_spi_sync_ext(struct wilc *wilc, int nint) static int wilc_spi_sync_ext(struct wilc *wilc, int nint)
{ {
struct spi_device *spi = to_spi_device(wilc->dev);
u32 reg; u32 reg;
int ret, i; int ret, i;
if (nint > MAX_NUM_INT) { if (nint > MAX_NUM_INT) {
PRINT_ER("[wilc spi]: Too many interupts (%d)...\n", nint); dev_err(&spi->dev, "Too many interupts (%d)...\n", nint);
return 0; return 0;
} }
...@@ -963,13 +993,15 @@ static int wilc_spi_sync_ext(struct wilc *wilc, int nint) ...@@ -963,13 +993,15 @@ static int wilc_spi_sync_ext(struct wilc *wilc, int nint)
**/ **/
ret = wilc_spi_read_reg(wilc, WILC_PIN_MUX_0, &reg); ret = wilc_spi_read_reg(wilc, WILC_PIN_MUX_0, &reg);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed read reg (%08x)...\n", WILC_PIN_MUX_0); dev_err(&spi->dev, "Failed read reg (%08x)...\n",
WILC_PIN_MUX_0);
return 0; return 0;
} }
reg |= BIT(8); reg |= BIT(8);
ret = wilc_spi_write_reg(wilc, WILC_PIN_MUX_0, reg); ret = wilc_spi_write_reg(wilc, WILC_PIN_MUX_0, reg);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed write reg (%08x)...\n", WILC_PIN_MUX_0); dev_err(&spi->dev, "Failed write reg (%08x)...\n",
WILC_PIN_MUX_0);
return 0; return 0;
} }
...@@ -978,7 +1010,8 @@ static int wilc_spi_sync_ext(struct wilc *wilc, int nint) ...@@ -978,7 +1010,8 @@ static int wilc_spi_sync_ext(struct wilc *wilc, int nint)
**/ **/
ret = wilc_spi_read_reg(wilc, WILC_INTR_ENABLE, &reg); ret = wilc_spi_read_reg(wilc, WILC_INTR_ENABLE, &reg);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed read reg (%08x)...\n", WILC_INTR_ENABLE); dev_err(&spi->dev, "Failed read reg (%08x)...\n",
WILC_INTR_ENABLE);
return 0; return 0;
} }
...@@ -987,13 +1020,15 @@ static int wilc_spi_sync_ext(struct wilc *wilc, int nint) ...@@ -987,13 +1020,15 @@ static int wilc_spi_sync_ext(struct wilc *wilc, int nint)
} }
ret = wilc_spi_write_reg(wilc, WILC_INTR_ENABLE, reg); ret = wilc_spi_write_reg(wilc, WILC_INTR_ENABLE, reg);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed write reg (%08x)...\n", WILC_INTR_ENABLE); dev_err(&spi->dev, "Failed write reg (%08x)...\n",
WILC_INTR_ENABLE);
return 0; return 0;
} }
if (nint) { if (nint) {
ret = wilc_spi_read_reg(wilc, WILC_INTR2_ENABLE, &reg); ret = wilc_spi_read_reg(wilc, WILC_INTR2_ENABLE, &reg);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed read reg (%08x)...\n", WILC_INTR2_ENABLE); dev_err(&spi->dev, "Failed read reg (%08x)...\n",
WILC_INTR2_ENABLE);
return 0; return 0;
} }
...@@ -1003,7 +1038,8 @@ static int wilc_spi_sync_ext(struct wilc *wilc, int nint) ...@@ -1003,7 +1038,8 @@ static int wilc_spi_sync_ext(struct wilc *wilc, int nint)
ret = wilc_spi_read_reg(wilc, WILC_INTR2_ENABLE, &reg); ret = wilc_spi_read_reg(wilc, WILC_INTR2_ENABLE, &reg);
if (!ret) { if (!ret) {
PRINT_ER("[wilc spi]: Failed write reg (%08x)...\n", WILC_INTR2_ENABLE); dev_err(&spi->dev, "Failed write reg (%08x)...\n",
WILC_INTR2_ENABLE);
return 0; return 0;
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册