diff options
Diffstat (limited to 'drivers/net/ieee802154/cc2520.c')
| -rw-r--r-- | drivers/net/ieee802154/cc2520.c | 37 | 
1 files changed, 11 insertions, 26 deletions
diff --git a/drivers/net/ieee802154/cc2520.c b/drivers/net/ieee802154/cc2520.c index f9df9fa86d5f..181b349b060e 100644 --- a/drivers/net/ieee802154/cc2520.c +++ b/drivers/net/ieee802154/cc2520.c @@ -19,7 +19,6 @@  #include <linux/workqueue.h>  #include <linux/interrupt.h>  #include <linux/skbuff.h> -#include <linux/pinctrl/consumer.h>  #include <linux/of_gpio.h>  #include <linux/ieee802154.h> @@ -45,9 +44,9 @@  #define	CC2520_FREG_MASK	0x3F  /* status byte values */ -#define	CC2520_STATUS_XOSC32M_STABLE	(1 << 7) -#define	CC2520_STATUS_RSSI_VALID	(1 << 6) -#define	CC2520_STATUS_TX_UNDERFLOW	(1 << 3) +#define	CC2520_STATUS_XOSC32M_STABLE	BIT(7) +#define	CC2520_STATUS_RSSI_VALID	BIT(6) +#define	CC2520_STATUS_TX_UNDERFLOW	BIT(3)  /* IEEE-802.15.4 defined constants (2.4 GHz logical channels) */  #define	CC2520_MINCHANNEL		11 @@ -513,7 +512,6 @@ err_tx:  	return rc;  } -  static int cc2520_rx(struct cc2520_private *priv)  {  	u8 len = 0, lqi = 0, bytes = 1; @@ -551,14 +549,14 @@ cc2520_ed(struct ieee802154_hw *hw, u8 *level)  	u8 rssi;  	int ret; -	ret = cc2520_read_register(priv , CC2520_RSSISTAT, &status); +	ret = cc2520_read_register(priv, CC2520_RSSISTAT, &status);  	if (ret)  		return ret;  	if (status != RSSI_VALID)  		return -EINVAL; -	ret = cc2520_read_register(priv , CC2520_RSSI, &rssi); +	ret = cc2520_read_register(priv, CC2520_RSSI, &rssi);  	if (ret)  		return ret; @@ -652,6 +650,7 @@ static int cc2520_register(struct cc2520_private *priv)  	priv->hw->parent = &priv->spi->dev;  	priv->hw->extra_tx_headroom = 0;  	priv->hw->vif_data_size = sizeof(*priv); +	ieee802154_random_extended_addr(&priv->hw->phy->perm_extended_addr);  	/* We do support only 2.4 Ghz */  	priv->hw->phy->channels_supported[0] = 0x7FFF800; @@ -842,24 +841,15 @@ done:  static int cc2520_probe(struct spi_device *spi)  {  	struct cc2520_private *priv; -	struct pinctrl *pinctrl;  	struct cc2520_platform_data *pdata;  	int ret; -	priv = devm_kzalloc(&spi->dev, -			    sizeof(struct cc2520_private), GFP_KERNEL); -	if (!priv) { -		ret = -ENOMEM; -		goto err_ret; -	} +	priv = devm_kzalloc(&spi->dev, sizeof(*priv), GFP_KERNEL); +	if (!priv) +		return -ENOMEM;  	spi_set_drvdata(spi, priv); -	pinctrl = devm_pinctrl_get_select_default(&spi->dev); -	if (IS_ERR(pinctrl)) -		dev_warn(&spi->dev, -			 "pinctrl pins are not configured\n"); -  	pdata = cc2520_get_platform_data(spi);  	if (!pdata) {  		dev_err(&spi->dev, "no platform data\n"); @@ -870,10 +860,8 @@ static int cc2520_probe(struct spi_device *spi)  	priv->buf = devm_kzalloc(&spi->dev,  				 SPI_COMMAND_BUFFER, GFP_KERNEL); -	if (!priv->buf) { -		ret = -ENOMEM; -		goto err_ret; -	} +	if (!priv->buf) +		return -ENOMEM;  	mutex_init(&priv->buffer_mutex);  	INIT_WORK(&priv->fifop_irqwork, cc2520_fifop_irqwork); @@ -947,7 +935,6 @@ static int cc2520_probe(struct spi_device *spi)  	if (ret)  		goto err_hw_init; -  	gpio_set_value(pdata->vreg, HIGH);  	usleep_range(100, 150); @@ -991,8 +978,6 @@ static int cc2520_probe(struct spi_device *spi)  err_hw_init:  	mutex_destroy(&priv->buffer_mutex);  	flush_work(&priv->fifop_irqwork); - -err_ret:  	return ret;  }  | 

