devrec            542 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = context;
devrec            543 drivers/net/ieee802154/mrf24j40.c 	__le16 fc = ieee802154_get_fc_from_skb(devrec->tx_skb);
devrec            553 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_post_msg.complete = NULL;
devrec            554 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_post_buf[0] = MRF24J40_WRITESHORT(REG_TXNCON);
devrec            555 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_post_buf[1] = val;
devrec            557 drivers/net/ieee802154/mrf24j40.c 	ret = spi_async(devrec->spi, &devrec->tx_post_msg);
devrec            559 drivers/net/ieee802154/mrf24j40.c 		dev_err(printdev(devrec), "SPI write Failed for transmit buf\n");
devrec            565 drivers/net/ieee802154/mrf24j40.c static int write_tx_buf(struct mrf24j40 *devrec, u16 reg,
devrec            573 drivers/net/ieee802154/mrf24j40.c 		dev_err(printdev(devrec), "write_tx_buf() was passed too large a buffer. Performing short write.\n");
devrec            578 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_hdr_buf[0] = cmd >> 8 & 0xff;
devrec            579 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_hdr_buf[1] = cmd & 0xff;
devrec            580 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_len_buf[0] = 0x0; /* Header Length. Set to 0 for now. TODO */
devrec            581 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_len_buf[1] = length; /* Total length */
devrec            582 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_buf_trx.tx_buf = data;
devrec            583 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_buf_trx.len = length;
devrec            585 drivers/net/ieee802154/mrf24j40.c 	ret = spi_async(devrec->spi, &devrec->tx_msg);
devrec            587 drivers/net/ieee802154/mrf24j40.c 		dev_err(printdev(devrec), "SPI write Failed for TX buf\n");
devrec            594 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = hw->priv;
devrec            596 drivers/net/ieee802154/mrf24j40.c 	dev_dbg(printdev(devrec), "tx packet of %d bytes\n", skb->len);
devrec            597 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_skb = skb;
devrec            599 drivers/net/ieee802154/mrf24j40.c 	return write_tx_buf(devrec, 0x000, skb->data, skb->len);
devrec            612 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = hw->priv;
devrec            614 drivers/net/ieee802154/mrf24j40.c 	dev_dbg(printdev(devrec), "start\n");
devrec            617 drivers/net/ieee802154/mrf24j40.c 	return regmap_update_bits(devrec->regmap_short, REG_INTCON,
devrec            623 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = hw->priv;
devrec            625 drivers/net/ieee802154/mrf24j40.c 	dev_dbg(printdev(devrec), "stop\n");
devrec            628 drivers/net/ieee802154/mrf24j40.c 	regmap_update_bits(devrec->regmap_short, REG_INTCON,
devrec            634 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = hw->priv;
devrec            638 drivers/net/ieee802154/mrf24j40.c 	dev_dbg(printdev(devrec), "Set Channel %d\n", channel);
devrec            646 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_update_bits(devrec->regmap_long, REG_RFCON0,
devrec            652 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_update_bits(devrec->regmap_short, REG_RFCTL, BIT_RFRST,
devrec            657 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_update_bits(devrec->regmap_short, REG_RFCTL, BIT_RFRST, 0);
devrec            668 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = hw->priv;
devrec            670 drivers/net/ieee802154/mrf24j40.c 	dev_dbg(printdev(devrec), "filter\n");
devrec            679 drivers/net/ieee802154/mrf24j40.c 		regmap_write(devrec->regmap_short, REG_SADRH, addrh);
devrec            680 drivers/net/ieee802154/mrf24j40.c 		regmap_write(devrec->regmap_short, REG_SADRL, addrl);
devrec            681 drivers/net/ieee802154/mrf24j40.c 		dev_dbg(printdev(devrec),
devrec            691 drivers/net/ieee802154/mrf24j40.c 			regmap_write(devrec->regmap_short, REG_EADR0 + i,
devrec            708 drivers/net/ieee802154/mrf24j40.c 		regmap_write(devrec->regmap_short, REG_PANIDH, panidh);
devrec            709 drivers/net/ieee802154/mrf24j40.c 		regmap_write(devrec->regmap_short, REG_PANIDL, panidl);
devrec            711 drivers/net/ieee802154/mrf24j40.c 		dev_dbg(printdev(devrec), "Set PANID to %04hx\n", filt->pan_id);
devrec            723 drivers/net/ieee802154/mrf24j40.c 		ret = regmap_update_bits(devrec->regmap_short, REG_RXMCR,
devrec            732 drivers/net/ieee802154/mrf24j40.c 		dev_dbg(printdev(devrec), "Set Pan Coord to %s\n",
devrec            739 drivers/net/ieee802154/mrf24j40.c static void mrf24j40_handle_rx_read_buf_unlock(struct mrf24j40 *devrec)
devrec            744 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_msg.complete = NULL;
devrec            745 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_buf[0] = MRF24J40_WRITESHORT(REG_BBREG1);
devrec            746 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_buf[1] = 0x00; /* CLR RXDECINV */
devrec            747 drivers/net/ieee802154/mrf24j40.c 	ret = spi_async(devrec->spi, &devrec->rx_msg);
devrec            749 drivers/net/ieee802154/mrf24j40.c 		dev_err(printdev(devrec), "failed to unlock rx buffer\n");
devrec            754 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = context;
devrec            755 drivers/net/ieee802154/mrf24j40.c 	u8 len = devrec->rx_buf[2];
devrec            759 drivers/net/ieee802154/mrf24j40.c 	memcpy(rx_local_buf, devrec->rx_fifo_buf, len);
devrec            760 drivers/net/ieee802154/mrf24j40.c 	mrf24j40_handle_rx_read_buf_unlock(devrec);
devrec            764 drivers/net/ieee802154/mrf24j40.c 		dev_err(printdev(devrec), "failed to allocate skb\n");
devrec            769 drivers/net/ieee802154/mrf24j40.c 	ieee802154_rx_irqsafe(devrec->hw, skb, 0);
devrec            775 drivers/net/ieee802154/mrf24j40.c 		  devrec->rx_lqi_buf[0], devrec->rx_lqi_buf[1]);
devrec            781 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = context;
devrec            786 drivers/net/ieee802154/mrf24j40.c 	if (!ieee802154_is_valid_psdu_len(devrec->rx_buf[2]))
devrec            787 drivers/net/ieee802154/mrf24j40.c 		devrec->rx_buf[2] = IEEE802154_MTU;
devrec            790 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_addr_buf[0] = cmd >> 8 & 0xff;
devrec            791 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_addr_buf[1] = cmd & 0xff;
devrec            792 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_fifo_buf_trx.len = devrec->rx_buf[2];
devrec            793 drivers/net/ieee802154/mrf24j40.c 	ret = spi_async(devrec->spi, &devrec->rx_buf_msg);
devrec            795 drivers/net/ieee802154/mrf24j40.c 		dev_err(printdev(devrec), "failed to read rx buffer\n");
devrec            796 drivers/net/ieee802154/mrf24j40.c 		mrf24j40_handle_rx_read_buf_unlock(devrec);
devrec            802 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = context;
devrec            807 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_msg.complete = mrf24j40_handle_rx_read_buf;
devrec            808 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_trx.len = 3;
devrec            810 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_buf[0] = cmd >> 8 & 0xff;
devrec            811 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_buf[1] = cmd & 0xff;
devrec            813 drivers/net/ieee802154/mrf24j40.c 	ret = spi_async(devrec->spi, &devrec->rx_msg);
devrec            815 drivers/net/ieee802154/mrf24j40.c 		dev_err(printdev(devrec), "failed to read rx buffer length\n");
devrec            816 drivers/net/ieee802154/mrf24j40.c 		mrf24j40_handle_rx_read_buf_unlock(devrec);
devrec            820 drivers/net/ieee802154/mrf24j40.c static int mrf24j40_handle_rx(struct mrf24j40 *devrec)
devrec            825 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_msg.complete = mrf24j40_handle_rx_read_len;
devrec            826 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_trx.len = 2;
devrec            827 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_buf[0] = MRF24J40_WRITESHORT(REG_BBREG1);
devrec            828 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_buf[1] = BIT_RXDECINV; /* SET RXDECINV */
devrec            830 drivers/net/ieee802154/mrf24j40.c 	return spi_async(devrec->spi, &devrec->rx_msg);
devrec            837 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = hw->priv;
devrec            845 drivers/net/ieee802154/mrf24j40.c 	return regmap_update_bits(devrec->regmap_short, REG_TXMCR,
devrec            853 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = hw->priv;
devrec            877 drivers/net/ieee802154/mrf24j40.c 	return regmap_update_bits(devrec->regmap_short, REG_BBREG2,
devrec            912 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = hw->priv;
devrec            917 drivers/net/ieee802154/mrf24j40.c 			return regmap_write(devrec->regmap_short, REG_CCAEDTH,
devrec            932 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = hw->priv;
devrec            981 drivers/net/ieee802154/mrf24j40.c 	return regmap_update_bits(devrec->regmap_long, REG_RFCON3,
devrec            987 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = hw->priv;
devrec            992 drivers/net/ieee802154/mrf24j40.c 		ret = regmap_update_bits(devrec->regmap_short, REG_RXMCR,
devrec            997 drivers/net/ieee802154/mrf24j40.c 		ret = regmap_update_bits(devrec->regmap_short, REG_RXMCR,
devrec           1022 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = context;
devrec           1023 drivers/net/ieee802154/mrf24j40.c 	u8 intstat = devrec->irq_buf[1];
devrec           1025 drivers/net/ieee802154/mrf24j40.c 	enable_irq(devrec->spi->irq);
devrec           1029 drivers/net/ieee802154/mrf24j40.c 		regmap_write_async(devrec->regmap_short, REG_SECCON0,
devrec           1034 drivers/net/ieee802154/mrf24j40.c 		ieee802154_xmit_complete(devrec->hw, devrec->tx_skb, false);
devrec           1038 drivers/net/ieee802154/mrf24j40.c 		mrf24j40_handle_rx(devrec);
devrec           1043 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = data;
devrec           1048 drivers/net/ieee802154/mrf24j40.c 	devrec->irq_buf[0] = MRF24J40_READSHORT(REG_INTSTAT);
devrec           1049 drivers/net/ieee802154/mrf24j40.c 	devrec->irq_buf[1] = 0;
devrec           1052 drivers/net/ieee802154/mrf24j40.c 	ret = spi_async(devrec->spi, &devrec->irq_msg);
devrec           1061 drivers/net/ieee802154/mrf24j40.c static int mrf24j40_hw_init(struct mrf24j40 *devrec)
devrec           1068 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_short, REG_SOFTRST, 0x07);
devrec           1072 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_short, REG_PACON2, 0x98);
devrec           1076 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_short, REG_TXSTBL, 0x95);
devrec           1080 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_long, REG_RFCON0, 0x03);
devrec           1084 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_long, REG_RFCON1, 0x01);
devrec           1088 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_long, REG_RFCON2, 0x80);
devrec           1092 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_long, REG_RFCON6, 0x90);
devrec           1096 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_long, REG_RFCON7, 0x80);
devrec           1100 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_long, REG_RFCON8, 0x10);
devrec           1104 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_long, REG_SLPCON1, 0x21);
devrec           1108 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_short, REG_BBREG2, 0x80);
devrec           1112 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_short, REG_CCAEDTH, 0x60);
devrec           1116 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_short, REG_BBREG6, 0x40);
devrec           1120 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_short, REG_RFCTL, 0x04);
devrec           1124 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_write(devrec->regmap_short, REG_RFCTL, 0x0);
devrec           1131 drivers/net/ieee802154/mrf24j40.c 	ret = regmap_update_bits(devrec->regmap_short, REG_RXMCR, 0x03, 0x00);
devrec           1135 drivers/net/ieee802154/mrf24j40.c 	if (spi_get_device_id(devrec->spi)->driver_data == MRF24J40MC) {
devrec           1139 drivers/net/ieee802154/mrf24j40.c 		regmap_update_bits(devrec->regmap_long, REG_TESTMODE, 0x07,
devrec           1143 drivers/net/ieee802154/mrf24j40.c 		regmap_update_bits(devrec->regmap_short, REG_TRISGPIO, 0x08,
devrec           1147 drivers/net/ieee802154/mrf24j40.c 		regmap_update_bits(devrec->regmap_short, REG_GPIO, 0x08, 0x08);
devrec           1152 drivers/net/ieee802154/mrf24j40.c 		regmap_write(devrec->regmap_long, REG_RFCON3, 0x28);
devrec           1155 drivers/net/ieee802154/mrf24j40.c 	irq_type = irq_get_trigger_type(devrec->spi->irq);
devrec           1158 drivers/net/ieee802154/mrf24j40.c 		dev_warn(&devrec->spi->dev,
devrec           1164 drivers/net/ieee802154/mrf24j40.c 		ret = regmap_update_bits(devrec->regmap_long, REG_SLPCON0,
devrec           1181 drivers/net/ieee802154/mrf24j40.c mrf24j40_setup_tx_spi_messages(struct mrf24j40 *devrec)
devrec           1183 drivers/net/ieee802154/mrf24j40.c 	spi_message_init(&devrec->tx_msg);
devrec           1184 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_msg.context = devrec;
devrec           1185 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_msg.complete = write_tx_buf_complete;
devrec           1186 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_hdr_trx.len = 2;
devrec           1187 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_hdr_trx.tx_buf = devrec->tx_hdr_buf;
devrec           1188 drivers/net/ieee802154/mrf24j40.c 	spi_message_add_tail(&devrec->tx_hdr_trx, &devrec->tx_msg);
devrec           1189 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_len_trx.len = 2;
devrec           1190 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_len_trx.tx_buf = devrec->tx_len_buf;
devrec           1191 drivers/net/ieee802154/mrf24j40.c 	spi_message_add_tail(&devrec->tx_len_trx, &devrec->tx_msg);
devrec           1192 drivers/net/ieee802154/mrf24j40.c 	spi_message_add_tail(&devrec->tx_buf_trx, &devrec->tx_msg);
devrec           1194 drivers/net/ieee802154/mrf24j40.c 	spi_message_init(&devrec->tx_post_msg);
devrec           1195 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_post_msg.context = devrec;
devrec           1196 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_post_trx.len = 2;
devrec           1197 drivers/net/ieee802154/mrf24j40.c 	devrec->tx_post_trx.tx_buf = devrec->tx_post_buf;
devrec           1198 drivers/net/ieee802154/mrf24j40.c 	spi_message_add_tail(&devrec->tx_post_trx, &devrec->tx_post_msg);
devrec           1202 drivers/net/ieee802154/mrf24j40.c mrf24j40_setup_rx_spi_messages(struct mrf24j40 *devrec)
devrec           1204 drivers/net/ieee802154/mrf24j40.c 	spi_message_init(&devrec->rx_msg);
devrec           1205 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_msg.context = devrec;
devrec           1206 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_trx.len = 2;
devrec           1207 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_trx.tx_buf = devrec->rx_buf;
devrec           1208 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_trx.rx_buf = devrec->rx_buf;
devrec           1209 drivers/net/ieee802154/mrf24j40.c 	spi_message_add_tail(&devrec->rx_trx, &devrec->rx_msg);
devrec           1211 drivers/net/ieee802154/mrf24j40.c 	spi_message_init(&devrec->rx_buf_msg);
devrec           1212 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_buf_msg.context = devrec;
devrec           1213 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_buf_msg.complete = mrf24j40_handle_rx_read_buf_complete;
devrec           1214 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_addr_trx.len = 2;
devrec           1215 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_addr_trx.tx_buf = devrec->rx_addr_buf;
devrec           1216 drivers/net/ieee802154/mrf24j40.c 	spi_message_add_tail(&devrec->rx_addr_trx, &devrec->rx_buf_msg);
devrec           1217 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_fifo_buf_trx.rx_buf = devrec->rx_fifo_buf;
devrec           1218 drivers/net/ieee802154/mrf24j40.c 	spi_message_add_tail(&devrec->rx_fifo_buf_trx, &devrec->rx_buf_msg);
devrec           1219 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_lqi_trx.len = 2;
devrec           1220 drivers/net/ieee802154/mrf24j40.c 	devrec->rx_lqi_trx.rx_buf = devrec->rx_lqi_buf;
devrec           1221 drivers/net/ieee802154/mrf24j40.c 	spi_message_add_tail(&devrec->rx_lqi_trx, &devrec->rx_buf_msg);
devrec           1225 drivers/net/ieee802154/mrf24j40.c mrf24j40_setup_irq_spi_messages(struct mrf24j40 *devrec)
devrec           1227 drivers/net/ieee802154/mrf24j40.c 	spi_message_init(&devrec->irq_msg);
devrec           1228 drivers/net/ieee802154/mrf24j40.c 	devrec->irq_msg.context = devrec;
devrec           1229 drivers/net/ieee802154/mrf24j40.c 	devrec->irq_msg.complete = mrf24j40_intstat_complete;
devrec           1230 drivers/net/ieee802154/mrf24j40.c 	devrec->irq_trx.len = 2;
devrec           1231 drivers/net/ieee802154/mrf24j40.c 	devrec->irq_trx.tx_buf = devrec->irq_buf;
devrec           1232 drivers/net/ieee802154/mrf24j40.c 	devrec->irq_trx.rx_buf = devrec->irq_buf;
devrec           1233 drivers/net/ieee802154/mrf24j40.c 	spi_message_add_tail(&devrec->irq_trx, &devrec->irq_msg);
devrec           1236 drivers/net/ieee802154/mrf24j40.c static void  mrf24j40_phy_setup(struct mrf24j40 *devrec)
devrec           1238 drivers/net/ieee802154/mrf24j40.c 	ieee802154_random_extended_addr(&devrec->hw->phy->perm_extended_addr);
devrec           1239 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->current_channel = 11;
devrec           1242 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->supported.max_minbe = 3;
devrec           1246 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->supported.min_maxbe = 5;
devrec           1247 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->supported.max_maxbe = 5;
devrec           1249 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->cca.mode = NL802154_CCA_CARRIER;
devrec           1250 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->supported.cca_modes = BIT(NL802154_CCA_ENERGY) |
devrec           1253 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->supported.cca_opts = BIT(NL802154_CCA_OPT_ENERGY_CARRIER_AND);
devrec           1255 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->cca_ed_level = -6900;
devrec           1256 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->supported.cca_ed_levels = mrf24j40_ed_levels;
devrec           1257 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->supported.cca_ed_levels_size = ARRAY_SIZE(mrf24j40_ed_levels);
devrec           1259 drivers/net/ieee802154/mrf24j40.c 	switch (spi_get_device_id(devrec->spi)->driver_data) {
devrec           1262 drivers/net/ieee802154/mrf24j40.c 		devrec->hw->phy->supported.tx_powers = mrf24j40ma_powers;
devrec           1263 drivers/net/ieee802154/mrf24j40.c 		devrec->hw->phy->supported.tx_powers_size = ARRAY_SIZE(mrf24j40ma_powers);
devrec           1264 drivers/net/ieee802154/mrf24j40.c 		devrec->hw->phy->flags |= WPAN_PHY_FLAG_TXPOWER;
devrec           1275 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec;
devrec           1281 drivers/net/ieee802154/mrf24j40.c 	hw = ieee802154_alloc_hw(sizeof(*devrec), &mrf24j40_ops);
devrec           1285 drivers/net/ieee802154/mrf24j40.c 	devrec = hw->priv;
devrec           1286 drivers/net/ieee802154/mrf24j40.c 	devrec->spi = spi;
devrec           1287 drivers/net/ieee802154/mrf24j40.c 	spi_set_drvdata(spi, devrec);
devrec           1288 drivers/net/ieee802154/mrf24j40.c 	devrec->hw = hw;
devrec           1289 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->parent = &spi->dev;
devrec           1290 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->supported.channels[0] = CHANNEL_MASK;
devrec           1291 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->flags = IEEE802154_HW_TX_OMIT_CKSUM | IEEE802154_HW_AFILT |
devrec           1295 drivers/net/ieee802154/mrf24j40.c 	devrec->hw->phy->flags = WPAN_PHY_FLAG_CCA_MODE |
devrec           1298 drivers/net/ieee802154/mrf24j40.c 	mrf24j40_setup_tx_spi_messages(devrec);
devrec           1299 drivers/net/ieee802154/mrf24j40.c 	mrf24j40_setup_rx_spi_messages(devrec);
devrec           1300 drivers/net/ieee802154/mrf24j40.c 	mrf24j40_setup_irq_spi_messages(devrec);
devrec           1302 drivers/net/ieee802154/mrf24j40.c 	devrec->regmap_short = devm_regmap_init_spi(spi,
devrec           1304 drivers/net/ieee802154/mrf24j40.c 	if (IS_ERR(devrec->regmap_short)) {
devrec           1305 drivers/net/ieee802154/mrf24j40.c 		ret = PTR_ERR(devrec->regmap_short);
devrec           1311 drivers/net/ieee802154/mrf24j40.c 	devrec->regmap_long = devm_regmap_init(&spi->dev,
devrec           1314 drivers/net/ieee802154/mrf24j40.c 	if (IS_ERR(devrec->regmap_long)) {
devrec           1315 drivers/net/ieee802154/mrf24j40.c 		ret = PTR_ERR(devrec->regmap_long);
devrec           1328 drivers/net/ieee802154/mrf24j40.c 	ret = mrf24j40_hw_init(devrec);
devrec           1332 drivers/net/ieee802154/mrf24j40.c 	mrf24j40_phy_setup(devrec);
devrec           1340 drivers/net/ieee802154/mrf24j40.c 			       irq_type, dev_name(&spi->dev), devrec);
devrec           1342 drivers/net/ieee802154/mrf24j40.c 		dev_err(printdev(devrec), "Unable to get IRQ");
devrec           1346 drivers/net/ieee802154/mrf24j40.c 	dev_dbg(printdev(devrec), "registered mrf24j40\n");
devrec           1347 drivers/net/ieee802154/mrf24j40.c 	ret = ieee802154_register_hw(devrec->hw);
devrec           1354 drivers/net/ieee802154/mrf24j40.c 	ieee802154_free_hw(devrec->hw);
devrec           1361 drivers/net/ieee802154/mrf24j40.c 	struct mrf24j40 *devrec = spi_get_drvdata(spi);
devrec           1363 drivers/net/ieee802154/mrf24j40.c 	dev_dbg(printdev(devrec), "remove\n");
devrec           1365 drivers/net/ieee802154/mrf24j40.c 	ieee802154_unregister_hw(devrec->hw);
devrec           1366 drivers/net/ieee802154/mrf24j40.c 	ieee802154_free_hw(devrec->hw);