From: Ben Whitten <ben.whit...@lairdtech.com>

It's easier to simply add a pointer to our device to our private data,
this way we can avoid passing around our spi_device and instead just
pass private data which is more flexible.

As its a two line change its coupled with converting AGC and ARB ram reads
to regmap functions.

Signed-off-by: Ben Whitten <ben.whit...@lairdtech.com>
---
 drivers/net/lora/sx1301.c | 34 +++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 13 deletions(-)

diff --git a/drivers/net/lora/sx1301.c b/drivers/net/lora/sx1301.c
index 118e8d8..249551b 100644
--- a/drivers/net/lora/sx1301.c
+++ b/drivers/net/lora/sx1301.c
@@ -283,6 +283,7 @@ struct spi_sx1301 {
 };
 
 struct sx1301_priv {
+       struct device *dev;
        struct lora_priv lora;
        struct gpio_desc *rst_gpio;
        u8 cur_page;
@@ -472,40 +473,44 @@ static int sx1301_radio_spi_transfer_one(struct 
spi_controller *ctrl,
        return 0;
 }
 
-static int sx1301_agc_ram_read(struct spi_device *spi, u8 addr, u8 *val)
+static int sx1301_agc_ram_read(struct sx1301_priv *priv, u8 addr, u8 *val)
 {
        int ret;
+       unsigned int read;
 
-       ret = sx1301_page_write(spi, 2, REG_2_DBG_AGC_MCU_RAM_ADDR, addr);
+       ret = regmap_write(priv->regmap, SX1301_DBG_AGC_MCU_RAM_ADDR, addr);
        if (ret) {
-               dev_err(&spi->dev, "AGC RAM addr write failed\n");
+               dev_err(priv->dev, "AGC RAM addr write failed\n");
                return ret;
        }
 
-       ret = sx1301_page_read(spi, 2, REG_2_DBG_AGC_MCU_RAM_DATA, val);
+       ret = regmap_read(priv->regmap, SX1301_DBG_AGC_MCU_RAM_DATA, &read);
        if (ret) {
-               dev_err(&spi->dev, "AGC RAM data read failed\n");
+               dev_err(priv->dev, "AGC RAM data read failed\n");
                return ret;
        }
+       *val = read;
 
        return 0;
 }
 
-static int sx1301_arb_ram_read(struct spi_device *spi, u8 addr, u8 *val)
+static int sx1301_arb_ram_read(struct sx1301_priv *priv, u8 addr, u8 *val)
 {
        int ret;
+       unsigned int read;
 
-       ret = sx1301_page_write(spi, 2, REG_2_DBG_ARB_MCU_RAM_ADDR, addr);
+       ret = regmap_write(priv->regmap, SX1301_DBG_ARB_MCU_RAM_ADDR, addr);
        if (ret) {
-               dev_err(&spi->dev, "ARB RAM addr write failed\n");
+               dev_err(priv->dev, "ARB RAM addr write failed\n");
                return ret;
        }
 
-       ret = sx1301_page_read(spi, 2, REG_2_DBG_ARB_MCU_RAM_DATA, val);
+       ret = regmap_read(priv->regmap, SX1301_DBG_ARB_MCU_RAM_DATA, &read);
        if (ret) {
-               dev_err(&spi->dev, "ARB RAM data read failed\n");
+               dev_err(priv->dev, "ARB RAM data read failed\n");
                return ret;
        }
+       *val = read;
 
        return 0;
 }
@@ -604,6 +609,7 @@ static int sx1301_load_firmware(struct spi_device *spi, int 
mcu, const u8 *data,
 static int sx1301_agc_calibrate(struct spi_device *spi)
 {
        const struct firmware *fw;
+       struct sx1301_priv *priv = spi_get_drvdata(spi);
        u8 val;
        int ret;
 
@@ -663,7 +669,7 @@ static int sx1301_agc_calibrate(struct spi_device *spi)
                return ret;
        }
 
-       ret = sx1301_agc_ram_read(spi, 0x20, &val);
+       ret = sx1301_agc_ram_read(priv, 0x20, &val);
        if (ret) {
                dev_err(&spi->dev, "AGC RAM data read failed\n");
                return ret;
@@ -730,6 +736,7 @@ static int sx1301_agc_calibrate(struct spi_device *spi)
 
 static int sx1301_load_all_firmware(struct spi_device *spi)
 {
+       struct sx1301_priv *priv = spi_get_drvdata(spi);
        const struct firmware *fw;
        u8 val;
        int ret;
@@ -802,7 +809,7 @@ static int sx1301_load_all_firmware(struct spi_device *spi)
                return ret;
        }
 
-       ret = sx1301_agc_ram_read(spi, 0x20, &val);
+       ret = sx1301_agc_ram_read(priv, 0x20, &val);
        if (ret) {
                dev_err(&spi->dev, "AGC RAM data read failed\n");
                return ret;
@@ -815,7 +822,7 @@ static int sx1301_load_all_firmware(struct spi_device *spi)
                return -ENXIO;
        }
 
-       ret = sx1301_arb_ram_read(spi, 0x20, &val);
+       ret = sx1301_arb_ram_read(priv, 0x20, &val);
        if (ret) {
                dev_err(&spi->dev, "ARB RAM data read failed\n");
                return ret;
@@ -878,6 +885,7 @@ static int sx1301_probe(struct spi_device *spi)
 
        spi_set_drvdata(spi, netdev);
        SET_NETDEV_DEV(netdev, &spi->dev);
+       priv->dev = &spi->dev;
 
        priv->regmap = devm_regmap_init_spi(spi, &sx1301_regmap_config);
        if (IS_ERR(priv->regmap)) {
-- 
2.7.4

Reply via email to