diff options
author | Mark Greer <mgreer@animalcreek.com> | 2017-04-25 18:43:56 -0400 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2017-06-18 17:57:58 -0400 |
commit | e2f0f67108a8f8ec23e2e530a1a52c97595a6f96 (patch) | |
tree | 8f78cbdd23911d1605d21afa91cdf4dd134b6c29 /drivers/nfc/trf7970a.c | |
parent | d34e48d6a62a06eb7f72c7dc534c4c318a163dad (diff) |
NFC: trf7970a: Clean up coding style issues
Clean up coding style issues according to scripts/Lindent.
Some scripts/Lindent changes were reverted when it appeared
to make the code less readable or when it made the line run
over 80 characters.
Signed-off-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/nfc/trf7970a.c')
-rw-r--r-- | drivers/nfc/trf7970a.c | 291 |
1 files changed, 147 insertions, 144 deletions
diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c index bb777f50b4fb..28b942ea15fb 100644 --- a/drivers/nfc/trf7970a.c +++ b/drivers/nfc/trf7970a.c | |||
@@ -122,11 +122,10 @@ | |||
122 | NFC_PROTO_ISO14443_B_MASK | NFC_PROTO_FELICA_MASK | \ | 122 | NFC_PROTO_ISO14443_B_MASK | NFC_PROTO_FELICA_MASK | \ |
123 | NFC_PROTO_ISO15693_MASK | NFC_PROTO_NFC_DEP_MASK) | 123 | NFC_PROTO_ISO15693_MASK | NFC_PROTO_NFC_DEP_MASK) |
124 | 124 | ||
125 | #define TRF7970A_AUTOSUSPEND_DELAY 30000 /* 30 seconds */ | 125 | #define TRF7970A_AUTOSUSPEND_DELAY 30000 /* 30 seconds */ |
126 | #define TRF7970A_13MHZ_CLOCK_FREQUENCY 13560000 | 126 | #define TRF7970A_13MHZ_CLOCK_FREQUENCY 13560000 |
127 | #define TRF7970A_27MHZ_CLOCK_FREQUENCY 27120000 | 127 | #define TRF7970A_27MHZ_CLOCK_FREQUENCY 27120000 |
128 | 128 | ||
129 | |||
130 | #define TRF7970A_RX_SKB_ALLOC_SIZE 256 | 129 | #define TRF7970A_RX_SKB_ALLOC_SIZE 256 |
131 | 130 | ||
132 | #define TRF7970A_FIFO_SIZE 127 | 131 | #define TRF7970A_FIFO_SIZE 127 |
@@ -294,7 +293,7 @@ | |||
294 | #define TRF7970A_REG_IO_CTRL_AUTO_REG BIT(7) | 293 | #define TRF7970A_REG_IO_CTRL_AUTO_REG BIT(7) |
295 | 294 | ||
296 | /* IRQ Status Register Bits */ | 295 | /* IRQ Status Register Bits */ |
297 | #define TRF7970A_IRQ_STATUS_NORESP BIT(0) /* ISO15693 only */ | 296 | #define TRF7970A_IRQ_STATUS_NORESP BIT(0) /* ISO15693 only */ |
298 | #define TRF7970A_IRQ_STATUS_NFC_COL_ERROR BIT(0) | 297 | #define TRF7970A_IRQ_STATUS_NFC_COL_ERROR BIT(0) |
299 | #define TRF7970A_IRQ_STATUS_COL BIT(1) | 298 | #define TRF7970A_IRQ_STATUS_COL BIT(1) |
300 | #define TRF7970A_IRQ_STATUS_FRAMING_EOF_ERROR BIT(2) | 299 | #define TRF7970A_IRQ_STATUS_FRAMING_EOF_ERROR BIT(2) |
@@ -459,7 +458,6 @@ struct trf7970a { | |||
459 | struct delayed_work timeout_work; | 458 | struct delayed_work timeout_work; |
460 | }; | 459 | }; |
461 | 460 | ||
462 | |||
463 | static int trf7970a_cmd(struct trf7970a *trf, u8 opcode) | 461 | static int trf7970a_cmd(struct trf7970a *trf, u8 opcode) |
464 | { | 462 | { |
465 | u8 cmd = TRF7970A_CMD_BIT_CTRL | TRF7970A_CMD_BIT_OPCODE(opcode); | 463 | u8 cmd = TRF7970A_CMD_BIT_CTRL | TRF7970A_CMD_BIT_OPCODE(opcode); |
@@ -470,7 +468,7 @@ static int trf7970a_cmd(struct trf7970a *trf, u8 opcode) | |||
470 | ret = spi_write(trf->spi, &cmd, 1); | 468 | ret = spi_write(trf->spi, &cmd, 1); |
471 | if (ret) | 469 | if (ret) |
472 | dev_err(trf->dev, "%s - cmd: 0x%x, ret: %d\n", __func__, cmd, | 470 | dev_err(trf->dev, "%s - cmd: 0x%x, ret: %d\n", __func__, cmd, |
473 | ret); | 471 | ret); |
474 | return ret; | 472 | return ret; |
475 | } | 473 | } |
476 | 474 | ||
@@ -482,14 +480,15 @@ static int trf7970a_read(struct trf7970a *trf, u8 reg, u8 *val) | |||
482 | ret = spi_write_then_read(trf->spi, &addr, 1, val, 1); | 480 | ret = spi_write_then_read(trf->spi, &addr, 1, val, 1); |
483 | if (ret) | 481 | if (ret) |
484 | dev_err(trf->dev, "%s - addr: 0x%x, ret: %d\n", __func__, addr, | 482 | dev_err(trf->dev, "%s - addr: 0x%x, ret: %d\n", __func__, addr, |
485 | ret); | 483 | ret); |
486 | 484 | ||
487 | dev_dbg(trf->dev, "read(0x%x): 0x%x\n", addr, *val); | 485 | dev_dbg(trf->dev, "read(0x%x): 0x%x\n", addr, *val); |
488 | 486 | ||
489 | return ret; | 487 | return ret; |
490 | } | 488 | } |
491 | 489 | ||
492 | static int trf7970a_read_cont(struct trf7970a *trf, u8 reg, u8 *buf, size_t len) | 490 | static int trf7970a_read_cont(struct trf7970a *trf, u8 reg, u8 *buf, |
491 | size_t len) | ||
493 | { | 492 | { |
494 | u8 addr = reg | TRF7970A_CMD_BIT_RW | TRF7970A_CMD_BIT_CONTINUOUS; | 493 | u8 addr = reg | TRF7970A_CMD_BIT_RW | TRF7970A_CMD_BIT_CONTINUOUS; |
495 | struct spi_transfer t[2]; | 494 | struct spi_transfer t[2]; |
@@ -513,7 +512,7 @@ static int trf7970a_read_cont(struct trf7970a *trf, u8 reg, u8 *buf, size_t len) | |||
513 | ret = spi_sync(trf->spi, &m); | 512 | ret = spi_sync(trf->spi, &m); |
514 | if (ret) | 513 | if (ret) |
515 | dev_err(trf->dev, "%s - addr: 0x%x, ret: %d\n", __func__, addr, | 514 | dev_err(trf->dev, "%s - addr: 0x%x, ret: %d\n", __func__, addr, |
516 | ret); | 515 | ret); |
517 | return ret; | 516 | return ret; |
518 | } | 517 | } |
519 | 518 | ||
@@ -527,7 +526,7 @@ static int trf7970a_write(struct trf7970a *trf, u8 reg, u8 val) | |||
527 | ret = spi_write(trf->spi, buf, 2); | 526 | ret = spi_write(trf->spi, buf, 2); |
528 | if (ret) | 527 | if (ret) |
529 | dev_err(trf->dev, "%s - write: 0x%x 0x%x, ret: %d\n", __func__, | 528 | dev_err(trf->dev, "%s - write: 0x%x 0x%x, ret: %d\n", __func__, |
530 | buf[0], buf[1], ret); | 529 | buf[0], buf[1], ret); |
531 | 530 | ||
532 | return ret; | 531 | return ret; |
533 | } | 532 | } |
@@ -549,7 +548,7 @@ static int trf7970a_read_irqstatus(struct trf7970a *trf, u8 *status) | |||
549 | 548 | ||
550 | if (ret) | 549 | if (ret) |
551 | dev_err(trf->dev, "%s - irqstatus: Status read failed: %d\n", | 550 | dev_err(trf->dev, "%s - irqstatus: Status read failed: %d\n", |
552 | __func__, ret); | 551 | __func__, ret); |
553 | else | 552 | else |
554 | *status = buf[0]; | 553 | *status = buf[0]; |
555 | 554 | ||
@@ -563,12 +562,12 @@ static int trf7970a_read_target_proto(struct trf7970a *trf, u8 *target_proto) | |||
563 | u8 addr; | 562 | u8 addr; |
564 | 563 | ||
565 | addr = TRF79070A_NFC_TARGET_PROTOCOL | TRF7970A_CMD_BIT_RW | | 564 | addr = TRF79070A_NFC_TARGET_PROTOCOL | TRF7970A_CMD_BIT_RW | |
566 | TRF7970A_CMD_BIT_CONTINUOUS; | 565 | TRF7970A_CMD_BIT_CONTINUOUS; |
567 | 566 | ||
568 | ret = spi_write_then_read(trf->spi, &addr, 1, buf, 2); | 567 | ret = spi_write_then_read(trf->spi, &addr, 1, buf, 2); |
569 | if (ret) | 568 | if (ret) |
570 | dev_err(trf->dev, "%s - target_proto: Read failed: %d\n", | 569 | dev_err(trf->dev, "%s - target_proto: Read failed: %d\n", |
571 | __func__, ret); | 570 | __func__, ret); |
572 | else | 571 | else |
573 | *target_proto = buf[0]; | 572 | *target_proto = buf[0]; |
574 | 573 | ||
@@ -599,7 +598,7 @@ static int trf7970a_mode_detect(struct trf7970a *trf, u8 *rf_tech) | |||
599 | break; | 598 | break; |
600 | default: | 599 | default: |
601 | dev_dbg(trf->dev, "%s - mode_detect: target_proto: 0x%x\n", | 600 | dev_dbg(trf->dev, "%s - mode_detect: target_proto: 0x%x\n", |
602 | __func__, target_proto); | 601 | __func__, target_proto); |
603 | return -EIO; | 602 | return -EIO; |
604 | } | 603 | } |
605 | 604 | ||
@@ -615,8 +614,8 @@ static void trf7970a_send_upstream(struct trf7970a *trf) | |||
615 | 614 | ||
616 | if (trf->rx_skb && !IS_ERR(trf->rx_skb) && !trf->aborting) | 615 | if (trf->rx_skb && !IS_ERR(trf->rx_skb) && !trf->aborting) |
617 | print_hex_dump_debug("trf7970a rx data: ", DUMP_PREFIX_NONE, | 616 | print_hex_dump_debug("trf7970a rx data: ", DUMP_PREFIX_NONE, |
618 | 16, 1, trf->rx_skb->data, trf->rx_skb->len, | 617 | 16, 1, trf->rx_skb->data, trf->rx_skb->len, |
619 | false); | 618 | false); |
620 | 619 | ||
621 | trf->state = TRF7970A_ST_IDLE; | 620 | trf->state = TRF7970A_ST_IDLE; |
622 | 621 | ||
@@ -656,7 +655,8 @@ static void trf7970a_send_err_upstream(struct trf7970a *trf, int errno) | |||
656 | } | 655 | } |
657 | 656 | ||
658 | static int trf7970a_transmit(struct trf7970a *trf, struct sk_buff *skb, | 657 | static int trf7970a_transmit(struct trf7970a *trf, struct sk_buff *skb, |
659 | unsigned int len, u8 *prefix, unsigned int prefix_len) | 658 | unsigned int len, u8 *prefix, |
659 | unsigned int prefix_len) | ||
660 | { | 660 | { |
661 | struct spi_transfer t[2]; | 661 | struct spi_transfer t[2]; |
662 | struct spi_message m; | 662 | struct spi_message m; |
@@ -664,7 +664,7 @@ static int trf7970a_transmit(struct trf7970a *trf, struct sk_buff *skb, | |||
664 | int ret; | 664 | int ret; |
665 | 665 | ||
666 | print_hex_dump_debug("trf7970a tx data: ", DUMP_PREFIX_NONE, | 666 | print_hex_dump_debug("trf7970a tx data: ", DUMP_PREFIX_NONE, |
667 | 16, 1, skb->data, len, false); | 667 | 16, 1, skb->data, len, false); |
668 | 668 | ||
669 | spi_message_init(&m); | 669 | spi_message_init(&m); |
670 | 670 | ||
@@ -681,7 +681,7 @@ static int trf7970a_transmit(struct trf7970a *trf, struct sk_buff *skb, | |||
681 | ret = spi_sync(trf->spi, &m); | 681 | ret = spi_sync(trf->spi, &m); |
682 | if (ret) { | 682 | if (ret) { |
683 | dev_err(trf->dev, "%s - Can't send tx data: %d\n", __func__, | 683 | dev_err(trf->dev, "%s - Can't send tx data: %d\n", __func__, |
684 | ret); | 684 | ret); |
685 | return ret; | 685 | return ret; |
686 | } | 686 | } |
687 | 687 | ||
@@ -705,7 +705,7 @@ static int trf7970a_transmit(struct trf7970a *trf, struct sk_buff *skb, | |||
705 | } | 705 | } |
706 | 706 | ||
707 | dev_dbg(trf->dev, "Setting timeout for %d ms, state: %d\n", timeout, | 707 | dev_dbg(trf->dev, "Setting timeout for %d ms, state: %d\n", timeout, |
708 | trf->state); | 708 | trf->state); |
709 | 709 | ||
710 | schedule_delayed_work(&trf->timeout_work, msecs_to_jiffies(timeout)); | 710 | schedule_delayed_work(&trf->timeout_work, msecs_to_jiffies(timeout)); |
711 | 711 | ||
@@ -773,9 +773,9 @@ static void trf7970a_drain_fifo(struct trf7970a *trf, u8 status) | |||
773 | 773 | ||
774 | if (fifo_bytes > skb_tailroom(skb)) { | 774 | if (fifo_bytes > skb_tailroom(skb)) { |
775 | skb = skb_copy_expand(skb, skb_headroom(skb), | 775 | skb = skb_copy_expand(skb, skb_headroom(skb), |
776 | max_t(int, fifo_bytes, | 776 | max_t(int, fifo_bytes, |
777 | TRF7970A_RX_SKB_ALLOC_SIZE), | 777 | TRF7970A_RX_SKB_ALLOC_SIZE), |
778 | GFP_KERNEL); | 778 | GFP_KERNEL); |
779 | if (!skb) { | 779 | if (!skb) { |
780 | trf7970a_send_err_upstream(trf, -ENOMEM); | 780 | trf7970a_send_err_upstream(trf, -ENOMEM); |
781 | return; | 781 | return; |
@@ -786,7 +786,7 @@ static void trf7970a_drain_fifo(struct trf7970a *trf, u8 status) | |||
786 | } | 786 | } |
787 | 787 | ||
788 | ret = trf7970a_read_cont(trf, TRF7970A_FIFO_IO_REGISTER, | 788 | ret = trf7970a_read_cont(trf, TRF7970A_FIFO_IO_REGISTER, |
789 | skb_put(skb, fifo_bytes), fifo_bytes); | 789 | skb_put(skb, fifo_bytes), fifo_bytes); |
790 | if (ret) { | 790 | if (ret) { |
791 | trf7970a_send_err_upstream(trf, ret); | 791 | trf7970a_send_err_upstream(trf, ret); |
792 | return; | 792 | return; |
@@ -794,8 +794,7 @@ static void trf7970a_drain_fifo(struct trf7970a *trf, u8 status) | |||
794 | 794 | ||
795 | /* If received Type 2 ACK/NACK, shift right 4 bits and pass up */ | 795 | /* If received Type 2 ACK/NACK, shift right 4 bits and pass up */ |
796 | if ((trf->framing == NFC_DIGITAL_FRAMING_NFCA_T2T) && (skb->len == 1) && | 796 | if ((trf->framing == NFC_DIGITAL_FRAMING_NFCA_T2T) && (skb->len == 1) && |
797 | (trf->special_fcn_reg1 == | 797 | (trf->special_fcn_reg1 == TRF7970A_SPECIAL_FCN_REG1_4_BIT_RX)) { |
798 | TRF7970A_SPECIAL_FCN_REG1_4_BIT_RX)) { | ||
799 | skb->data[0] >>= 4; | 798 | skb->data[0] >>= 4; |
800 | status = TRF7970A_IRQ_STATUS_SRX; | 799 | status = TRF7970A_IRQ_STATUS_SRX; |
801 | } else { | 800 | } else { |
@@ -818,16 +817,16 @@ static void trf7970a_drain_fifo(struct trf7970a *trf, u8 status) | |||
818 | } | 817 | } |
819 | 818 | ||
820 | no_rx_data: | 819 | no_rx_data: |
821 | if (status == TRF7970A_IRQ_STATUS_SRX) { /* Receive complete */ | 820 | if (status == TRF7970A_IRQ_STATUS_SRX) { /* Receive complete */ |
822 | trf7970a_send_upstream(trf); | 821 | trf7970a_send_upstream(trf); |
823 | return; | 822 | return; |
824 | } | 823 | } |
825 | 824 | ||
826 | dev_dbg(trf->dev, "Setting timeout for %d ms\n", | 825 | dev_dbg(trf->dev, "Setting timeout for %d ms\n", |
827 | TRF7970A_WAIT_FOR_RX_DATA_TIMEOUT); | 826 | TRF7970A_WAIT_FOR_RX_DATA_TIMEOUT); |
828 | 827 | ||
829 | schedule_delayed_work(&trf->timeout_work, | 828 | schedule_delayed_work(&trf->timeout_work, |
830 | msecs_to_jiffies(TRF7970A_WAIT_FOR_RX_DATA_TIMEOUT)); | 829 | msecs_to_jiffies(TRF7970A_WAIT_FOR_RX_DATA_TIMEOUT)); |
831 | } | 830 | } |
832 | 831 | ||
833 | static irqreturn_t trf7970a_irq(int irq, void *dev_id) | 832 | static irqreturn_t trf7970a_irq(int irq, void *dev_id) |
@@ -850,7 +849,7 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) | |||
850 | } | 849 | } |
851 | 850 | ||
852 | dev_dbg(trf->dev, "IRQ - state: %d, status: 0x%x\n", trf->state, | 851 | dev_dbg(trf->dev, "IRQ - state: %d, status: 0x%x\n", trf->state, |
853 | status); | 852 | status); |
854 | 853 | ||
855 | if (!status) { | 854 | if (!status) { |
856 | mutex_unlock(&trf->lock); | 855 | mutex_unlock(&trf->lock); |
@@ -875,7 +874,7 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) | |||
875 | case TRF7970A_ST_WAIT_FOR_TX_FIFO: | 874 | case TRF7970A_ST_WAIT_FOR_TX_FIFO: |
876 | if (status & TRF7970A_IRQ_STATUS_TX) { | 875 | if (status & TRF7970A_IRQ_STATUS_TX) { |
877 | trf->ignore_timeout = | 876 | trf->ignore_timeout = |
878 | !cancel_delayed_work(&trf->timeout_work); | 877 | !cancel_delayed_work(&trf->timeout_work); |
879 | trf7970a_fill_fifo(trf); | 878 | trf7970a_fill_fifo(trf); |
880 | } else { | 879 | } else { |
881 | trf7970a_send_err_upstream(trf, -EIO); | 880 | trf7970a_send_err_upstream(trf, -EIO); |
@@ -885,11 +884,11 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) | |||
885 | case TRF7970A_ST_WAIT_FOR_RX_DATA_CONT: | 884 | case TRF7970A_ST_WAIT_FOR_RX_DATA_CONT: |
886 | if (status & TRF7970A_IRQ_STATUS_SRX) { | 885 | if (status & TRF7970A_IRQ_STATUS_SRX) { |
887 | trf->ignore_timeout = | 886 | trf->ignore_timeout = |
888 | !cancel_delayed_work(&trf->timeout_work); | 887 | !cancel_delayed_work(&trf->timeout_work); |
889 | trf7970a_drain_fifo(trf, status); | 888 | trf7970a_drain_fifo(trf, status); |
890 | } else if (status & TRF7970A_IRQ_STATUS_FIFO) { | 889 | } else if (status & TRF7970A_IRQ_STATUS_FIFO) { |
891 | ret = trf7970a_read(trf, TRF7970A_FIFO_STATUS, | 890 | ret = trf7970a_read(trf, TRF7970A_FIFO_STATUS, |
892 | &fifo_bytes); | 891 | &fifo_bytes); |
893 | 892 | ||
894 | fifo_bytes &= ~TRF7970A_FIFO_STATUS_OVERFLOW; | 893 | fifo_bytes &= ~TRF7970A_FIFO_STATUS_OVERFLOW; |
895 | 894 | ||
@@ -898,14 +897,14 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) | |||
898 | else if (!fifo_bytes) | 897 | else if (!fifo_bytes) |
899 | trf7970a_cmd(trf, TRF7970A_CMD_FIFO_RESET); | 898 | trf7970a_cmd(trf, TRF7970A_CMD_FIFO_RESET); |
900 | } else if ((status == TRF7970A_IRQ_STATUS_TX) || | 899 | } else if ((status == TRF7970A_IRQ_STATUS_TX) || |
901 | (!trf->is_initiator && | 900 | (!trf->is_initiator && |
902 | (status == (TRF7970A_IRQ_STATUS_TX | | 901 | (status == (TRF7970A_IRQ_STATUS_TX | |
903 | TRF7970A_IRQ_STATUS_NFC_RF)))) { | 902 | TRF7970A_IRQ_STATUS_NFC_RF)))) { |
904 | trf7970a_cmd(trf, TRF7970A_CMD_FIFO_RESET); | 903 | trf7970a_cmd(trf, TRF7970A_CMD_FIFO_RESET); |
905 | 904 | ||
906 | if (!trf->timeout) { | 905 | if (!trf->timeout) { |
907 | trf->ignore_timeout = !cancel_delayed_work( | 906 | trf->ignore_timeout = |
908 | &trf->timeout_work); | 907 | !cancel_delayed_work(&trf->timeout_work); |
909 | trf->rx_skb = ERR_PTR(0); | 908 | trf->rx_skb = ERR_PTR(0); |
910 | trf7970a_send_upstream(trf); | 909 | trf7970a_send_upstream(trf); |
911 | break; | 910 | break; |
@@ -929,13 +928,13 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) | |||
929 | break; | 928 | break; |
930 | case NFC_DIGITAL_FRAMING_NFCA_ANTICOL_COMPLETE: | 929 | case NFC_DIGITAL_FRAMING_NFCA_ANTICOL_COMPLETE: |
931 | ret = trf7970a_write(trf, | 930 | ret = trf7970a_write(trf, |
932 | TRF7970A_SPECIAL_FCN_REG1, | 931 | TRF7970A_SPECIAL_FCN_REG1, |
933 | TRF7970A_SPECIAL_FCN_REG1_14_ANTICOLL); | 932 | TRF7970A_SPECIAL_FCN_REG1_14_ANTICOLL); |
934 | if (ret) | 933 | if (ret) |
935 | goto err_unlock_exit; | 934 | goto err_unlock_exit; |
936 | 935 | ||
937 | trf->special_fcn_reg1 = | 936 | trf->special_fcn_reg1 = |
938 | TRF7970A_SPECIAL_FCN_REG1_14_ANTICOLL; | 937 | TRF7970A_SPECIAL_FCN_REG1_14_ANTICOLL; |
939 | break; | 938 | break; |
940 | default: | 939 | default: |
941 | break; | 940 | break; |
@@ -943,7 +942,7 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) | |||
943 | 942 | ||
944 | if (iso_ctrl != trf->iso_ctrl) { | 943 | if (iso_ctrl != trf->iso_ctrl) { |
945 | ret = trf7970a_write(trf, TRF7970A_ISO_CTRL, | 944 | ret = trf7970a_write(trf, TRF7970A_ISO_CTRL, |
946 | iso_ctrl); | 945 | iso_ctrl); |
947 | if (ret) | 946 | if (ret) |
948 | goto err_unlock_exit; | 947 | goto err_unlock_exit; |
949 | 948 | ||
@@ -960,7 +959,7 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) | |||
960 | case TRF7970A_ST_LISTENING: | 959 | case TRF7970A_ST_LISTENING: |
961 | if (status & TRF7970A_IRQ_STATUS_SRX) { | 960 | if (status & TRF7970A_IRQ_STATUS_SRX) { |
962 | trf->ignore_timeout = | 961 | trf->ignore_timeout = |
963 | !cancel_delayed_work(&trf->timeout_work); | 962 | !cancel_delayed_work(&trf->timeout_work); |
964 | trf7970a_drain_fifo(trf, status); | 963 | trf7970a_drain_fifo(trf, status); |
965 | } else if (!(status & TRF7970A_IRQ_STATUS_NFC_RF)) { | 964 | } else if (!(status & TRF7970A_IRQ_STATUS_NFC_RF)) { |
966 | trf7970a_send_err_upstream(trf, -EIO); | 965 | trf7970a_send_err_upstream(trf, -EIO); |
@@ -969,7 +968,7 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) | |||
969 | case TRF7970A_ST_LISTENING_MD: | 968 | case TRF7970A_ST_LISTENING_MD: |
970 | if (status & TRF7970A_IRQ_STATUS_SRX) { | 969 | if (status & TRF7970A_IRQ_STATUS_SRX) { |
971 | trf->ignore_timeout = | 970 | trf->ignore_timeout = |
972 | !cancel_delayed_work(&trf->timeout_work); | 971 | !cancel_delayed_work(&trf->timeout_work); |
973 | 972 | ||
974 | ret = trf7970a_mode_detect(trf, &trf->md_rf_tech); | 973 | ret = trf7970a_mode_detect(trf, &trf->md_rf_tech); |
975 | if (ret) { | 974 | if (ret) { |
@@ -984,7 +983,7 @@ static irqreturn_t trf7970a_irq(int irq, void *dev_id) | |||
984 | break; | 983 | break; |
985 | default: | 984 | default: |
986 | dev_err(trf->dev, "%s - Driver in invalid state: %d\n", | 985 | dev_err(trf->dev, "%s - Driver in invalid state: %d\n", |
987 | __func__, trf->state); | 986 | __func__, trf->state); |
988 | } | 987 | } |
989 | 988 | ||
990 | err_unlock_exit: | 989 | err_unlock_exit: |
@@ -1009,19 +1008,19 @@ static void trf7970a_issue_eof(struct trf7970a *trf) | |||
1009 | trf->state = TRF7970A_ST_WAIT_FOR_RX_DATA; | 1008 | trf->state = TRF7970A_ST_WAIT_FOR_RX_DATA; |
1010 | 1009 | ||
1011 | dev_dbg(trf->dev, "Setting timeout for %d ms, state: %d\n", | 1010 | dev_dbg(trf->dev, "Setting timeout for %d ms, state: %d\n", |
1012 | trf->timeout, trf->state); | 1011 | trf->timeout, trf->state); |
1013 | 1012 | ||
1014 | schedule_delayed_work(&trf->timeout_work, | 1013 | schedule_delayed_work(&trf->timeout_work, |
1015 | msecs_to_jiffies(trf->timeout)); | 1014 | msecs_to_jiffies(trf->timeout)); |
1016 | } | 1015 | } |
1017 | 1016 | ||
1018 | static void trf7970a_timeout_work_handler(struct work_struct *work) | 1017 | static void trf7970a_timeout_work_handler(struct work_struct *work) |
1019 | { | 1018 | { |
1020 | struct trf7970a *trf = container_of(work, struct trf7970a, | 1019 | struct trf7970a *trf = container_of(work, struct trf7970a, |
1021 | timeout_work.work); | 1020 | timeout_work.work); |
1022 | 1021 | ||
1023 | dev_dbg(trf->dev, "Timeout - state: %d, ignore_timeout: %d\n", | 1022 | dev_dbg(trf->dev, "Timeout - state: %d, ignore_timeout: %d\n", |
1024 | trf->state, trf->ignore_timeout); | 1023 | trf->state, trf->ignore_timeout); |
1025 | 1024 | ||
1026 | mutex_lock(&trf->lock); | 1025 | mutex_lock(&trf->lock); |
1027 | 1026 | ||
@@ -1052,7 +1051,7 @@ static int trf7970a_init(struct trf7970a *trf) | |||
1052 | goto err_out; | 1051 | goto err_out; |
1053 | 1052 | ||
1054 | ret = trf7970a_write(trf, TRF7970A_REG_IO_CTRL, | 1053 | ret = trf7970a_write(trf, TRF7970A_REG_IO_CTRL, |
1055 | trf->io_ctrl | TRF7970A_REG_IO_CTRL_VRS(0x1)); | 1054 | trf->io_ctrl | TRF7970A_REG_IO_CTRL_VRS(0x1)); |
1056 | if (ret) | 1055 | if (ret) |
1057 | goto err_out; | 1056 | goto err_out; |
1058 | 1057 | ||
@@ -1065,13 +1064,13 @@ static int trf7970a_init(struct trf7970a *trf) | |||
1065 | trf->chip_status_ctrl &= ~TRF7970A_CHIP_STATUS_RF_ON; | 1064 | trf->chip_status_ctrl &= ~TRF7970A_CHIP_STATUS_RF_ON; |
1066 | 1065 | ||
1067 | ret = trf7970a_write(trf, TRF7970A_MODULATOR_SYS_CLK_CTRL, | 1066 | ret = trf7970a_write(trf, TRF7970A_MODULATOR_SYS_CLK_CTRL, |
1068 | trf->modulator_sys_clk_ctrl); | 1067 | trf->modulator_sys_clk_ctrl); |
1069 | if (ret) | 1068 | if (ret) |
1070 | goto err_out; | 1069 | goto err_out; |
1071 | 1070 | ||
1072 | ret = trf7970a_write(trf, TRF7970A_ADJUTABLE_FIFO_IRQ_LEVELS, | 1071 | ret = trf7970a_write(trf, TRF7970A_ADJUTABLE_FIFO_IRQ_LEVELS, |
1073 | TRF7970A_ADJUTABLE_FIFO_IRQ_LEVELS_WLH_96 | | 1072 | TRF7970A_ADJUTABLE_FIFO_IRQ_LEVELS_WLH_96 | |
1074 | TRF7970A_ADJUTABLE_FIFO_IRQ_LEVELS_WLL_32); | 1073 | TRF7970A_ADJUTABLE_FIFO_IRQ_LEVELS_WLL_32); |
1075 | if (ret) | 1074 | if (ret) |
1076 | goto err_out; | 1075 | goto err_out; |
1077 | 1076 | ||
@@ -1092,7 +1091,7 @@ err_out: | |||
1092 | static void trf7970a_switch_rf_off(struct trf7970a *trf) | 1091 | static void trf7970a_switch_rf_off(struct trf7970a *trf) |
1093 | { | 1092 | { |
1094 | if ((trf->state == TRF7970A_ST_PWR_OFF) || | 1093 | if ((trf->state == TRF7970A_ST_PWR_OFF) || |
1095 | (trf->state == TRF7970A_ST_RF_OFF)) | 1094 | (trf->state == TRF7970A_ST_RF_OFF)) |
1096 | return; | 1095 | return; |
1097 | 1096 | ||
1098 | dev_dbg(trf->dev, "Switching rf off\n"); | 1097 | dev_dbg(trf->dev, "Switching rf off\n"); |
@@ -1116,9 +1115,9 @@ static int trf7970a_switch_rf_on(struct trf7970a *trf) | |||
1116 | 1115 | ||
1117 | pm_runtime_get_sync(trf->dev); | 1116 | pm_runtime_get_sync(trf->dev); |
1118 | 1117 | ||
1119 | if (trf->state != TRF7970A_ST_RF_OFF) { /* Power on, RF off */ | 1118 | if (trf->state != TRF7970A_ST_RF_OFF) { /* Power on, RF off */ |
1120 | dev_err(trf->dev, "%s - Incorrect state: %d\n", __func__, | 1119 | dev_err(trf->dev, "%s - Incorrect state: %d\n", __func__, |
1121 | trf->state); | 1120 | trf->state); |
1122 | return -EINVAL; | 1121 | return -EINVAL; |
1123 | } | 1122 | } |
1124 | 1123 | ||
@@ -1153,7 +1152,7 @@ static int trf7970a_switch_rf(struct nfc_digital_dev *ddev, bool on) | |||
1153 | break; | 1152 | break; |
1154 | default: | 1153 | default: |
1155 | dev_err(trf->dev, "%s - Invalid request: %d %d\n", | 1154 | dev_err(trf->dev, "%s - Invalid request: %d %d\n", |
1156 | __func__, trf->state, on); | 1155 | __func__, trf->state, on); |
1157 | trf7970a_switch_rf_off(trf); | 1156 | trf7970a_switch_rf_off(trf); |
1158 | ret = -EINVAL; | 1157 | ret = -EINVAL; |
1159 | } | 1158 | } |
@@ -1164,7 +1163,7 @@ static int trf7970a_switch_rf(struct nfc_digital_dev *ddev, bool on) | |||
1164 | break; | 1163 | break; |
1165 | default: | 1164 | default: |
1166 | dev_err(trf->dev, "%s - Invalid request: %d %d\n", | 1165 | dev_err(trf->dev, "%s - Invalid request: %d %d\n", |
1167 | __func__, trf->state, on); | 1166 | __func__, trf->state, on); |
1168 | ret = -EINVAL; | 1167 | ret = -EINVAL; |
1169 | /* FALLTHROUGH */ | 1168 | /* FALLTHROUGH */ |
1170 | case TRF7970A_ST_IDLE: | 1169 | case TRF7970A_ST_IDLE: |
@@ -1189,36 +1188,36 @@ static int trf7970a_in_config_rf_tech(struct trf7970a *trf, int tech) | |||
1189 | case NFC_DIGITAL_RF_TECH_106A: | 1188 | case NFC_DIGITAL_RF_TECH_106A: |
1190 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_14443A_106; | 1189 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_14443A_106; |
1191 | trf->modulator_sys_clk_ctrl = | 1190 | trf->modulator_sys_clk_ctrl = |
1192 | (trf->modulator_sys_clk_ctrl & 0xf8) | | 1191 | (trf->modulator_sys_clk_ctrl & 0xf8) | |
1193 | TRF7970A_MODULATOR_DEPTH_OOK; | 1192 | TRF7970A_MODULATOR_DEPTH_OOK; |
1194 | trf->guard_time = TRF7970A_GUARD_TIME_NFCA; | 1193 | trf->guard_time = TRF7970A_GUARD_TIME_NFCA; |
1195 | break; | 1194 | break; |
1196 | case NFC_DIGITAL_RF_TECH_106B: | 1195 | case NFC_DIGITAL_RF_TECH_106B: |
1197 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_14443B_106; | 1196 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_14443B_106; |
1198 | trf->modulator_sys_clk_ctrl = | 1197 | trf->modulator_sys_clk_ctrl = |
1199 | (trf->modulator_sys_clk_ctrl & 0xf8) | | 1198 | (trf->modulator_sys_clk_ctrl & 0xf8) | |
1200 | TRF7970A_MODULATOR_DEPTH_ASK10; | 1199 | TRF7970A_MODULATOR_DEPTH_ASK10; |
1201 | trf->guard_time = TRF7970A_GUARD_TIME_NFCB; | 1200 | trf->guard_time = TRF7970A_GUARD_TIME_NFCB; |
1202 | break; | 1201 | break; |
1203 | case NFC_DIGITAL_RF_TECH_212F: | 1202 | case NFC_DIGITAL_RF_TECH_212F: |
1204 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_FELICA_212; | 1203 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_FELICA_212; |
1205 | trf->modulator_sys_clk_ctrl = | 1204 | trf->modulator_sys_clk_ctrl = |
1206 | (trf->modulator_sys_clk_ctrl & 0xf8) | | 1205 | (trf->modulator_sys_clk_ctrl & 0xf8) | |
1207 | TRF7970A_MODULATOR_DEPTH_ASK10; | 1206 | TRF7970A_MODULATOR_DEPTH_ASK10; |
1208 | trf->guard_time = TRF7970A_GUARD_TIME_NFCF; | 1207 | trf->guard_time = TRF7970A_GUARD_TIME_NFCF; |
1209 | break; | 1208 | break; |
1210 | case NFC_DIGITAL_RF_TECH_424F: | 1209 | case NFC_DIGITAL_RF_TECH_424F: |
1211 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_FELICA_424; | 1210 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_FELICA_424; |
1212 | trf->modulator_sys_clk_ctrl = | 1211 | trf->modulator_sys_clk_ctrl = |
1213 | (trf->modulator_sys_clk_ctrl & 0xf8) | | 1212 | (trf->modulator_sys_clk_ctrl & 0xf8) | |
1214 | TRF7970A_MODULATOR_DEPTH_ASK10; | 1213 | TRF7970A_MODULATOR_DEPTH_ASK10; |
1215 | trf->guard_time = TRF7970A_GUARD_TIME_NFCF; | 1214 | trf->guard_time = TRF7970A_GUARD_TIME_NFCF; |
1216 | break; | 1215 | break; |
1217 | case NFC_DIGITAL_RF_TECH_ISO15693: | 1216 | case NFC_DIGITAL_RF_TECH_ISO15693: |
1218 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_15693_SGL_1OF4_2648; | 1217 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_15693_SGL_1OF4_2648; |
1219 | trf->modulator_sys_clk_ctrl = | 1218 | trf->modulator_sys_clk_ctrl = |
1220 | (trf->modulator_sys_clk_ctrl & 0xf8) | | 1219 | (trf->modulator_sys_clk_ctrl & 0xf8) | |
1221 | TRF7970A_MODULATOR_DEPTH_OOK; | 1220 | TRF7970A_MODULATOR_DEPTH_OOK; |
1222 | trf->guard_time = TRF7970A_GUARD_TIME_15693; | 1221 | trf->guard_time = TRF7970A_GUARD_TIME_15693; |
1223 | break; | 1222 | break; |
1224 | default: | 1223 | default: |
@@ -1245,7 +1244,8 @@ static int trf7970a_is_rf_field(struct trf7970a *trf, bool *is_rf_field) | |||
1245 | u8 rssi; | 1244 | u8 rssi; |
1246 | 1245 | ||
1247 | ret = trf7970a_write(trf, TRF7970A_CHIP_STATUS_CTRL, | 1246 | ret = trf7970a_write(trf, TRF7970A_CHIP_STATUS_CTRL, |
1248 | trf->chip_status_ctrl | TRF7970A_CHIP_STATUS_REC_ON); | 1247 | trf->chip_status_ctrl | |
1248 | TRF7970A_CHIP_STATUS_REC_ON); | ||
1249 | if (ret) | 1249 | if (ret) |
1250 | return ret; | 1250 | return ret; |
1251 | 1251 | ||
@@ -1260,7 +1260,7 @@ static int trf7970a_is_rf_field(struct trf7970a *trf, bool *is_rf_field) | |||
1260 | return ret; | 1260 | return ret; |
1261 | 1261 | ||
1262 | ret = trf7970a_write(trf, TRF7970A_CHIP_STATUS_CTRL, | 1262 | ret = trf7970a_write(trf, TRF7970A_CHIP_STATUS_CTRL, |
1263 | trf->chip_status_ctrl); | 1263 | trf->chip_status_ctrl); |
1264 | if (ret) | 1264 | if (ret) |
1265 | return ret; | 1265 | return ret; |
1266 | 1266 | ||
@@ -1327,15 +1327,15 @@ static int trf7970a_in_config_framing(struct trf7970a *trf, int framing) | |||
1327 | trf->iso_ctrl = iso_ctrl; | 1327 | trf->iso_ctrl = iso_ctrl; |
1328 | 1328 | ||
1329 | ret = trf7970a_write(trf, TRF7970A_MODULATOR_SYS_CLK_CTRL, | 1329 | ret = trf7970a_write(trf, TRF7970A_MODULATOR_SYS_CLK_CTRL, |
1330 | trf->modulator_sys_clk_ctrl); | 1330 | trf->modulator_sys_clk_ctrl); |
1331 | if (ret) | 1331 | if (ret) |
1332 | return ret; | 1332 | return ret; |
1333 | } | 1333 | } |
1334 | 1334 | ||
1335 | if (!(trf->chip_status_ctrl & TRF7970A_CHIP_STATUS_RF_ON)) { | 1335 | if (!(trf->chip_status_ctrl & TRF7970A_CHIP_STATUS_RF_ON)) { |
1336 | ret = trf7970a_write(trf, TRF7970A_CHIP_STATUS_CTRL, | 1336 | ret = trf7970a_write(trf, TRF7970A_CHIP_STATUS_CTRL, |
1337 | trf->chip_status_ctrl | | 1337 | trf->chip_status_ctrl | |
1338 | TRF7970A_CHIP_STATUS_RF_ON); | 1338 | TRF7970A_CHIP_STATUS_RF_ON); |
1339 | if (ret) | 1339 | if (ret) |
1340 | return ret; | 1340 | return ret; |
1341 | 1341 | ||
@@ -1348,7 +1348,7 @@ static int trf7970a_in_config_framing(struct trf7970a *trf, int framing) | |||
1348 | } | 1348 | } |
1349 | 1349 | ||
1350 | static int trf7970a_in_configure_hw(struct nfc_digital_dev *ddev, int type, | 1350 | static int trf7970a_in_configure_hw(struct nfc_digital_dev *ddev, int type, |
1351 | int param) | 1351 | int param) |
1352 | { | 1352 | { |
1353 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); | 1353 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); |
1354 | int ret; | 1354 | int ret; |
@@ -1360,7 +1360,7 @@ static int trf7970a_in_configure_hw(struct nfc_digital_dev *ddev, int type, | |||
1360 | trf->is_initiator = true; | 1360 | trf->is_initiator = true; |
1361 | 1361 | ||
1362 | if ((trf->state == TRF7970A_ST_PWR_OFF) || | 1362 | if ((trf->state == TRF7970A_ST_PWR_OFF) || |
1363 | (trf->state == TRF7970A_ST_RF_OFF)) { | 1363 | (trf->state == TRF7970A_ST_RF_OFF)) { |
1364 | ret = trf7970a_switch_rf_on(trf); | 1364 | ret = trf7970a_switch_rf_on(trf); |
1365 | if (ret) | 1365 | if (ret) |
1366 | goto err_unlock; | 1366 | goto err_unlock; |
@@ -1418,7 +1418,7 @@ static int trf7970a_per_cmd_config(struct trf7970a *trf, struct sk_buff *skb) | |||
1418 | * has to send an EOF in order to get a response. | 1418 | * has to send an EOF in order to get a response. |
1419 | */ | 1419 | */ |
1420 | if ((trf->technology == NFC_DIGITAL_RF_TECH_106A) && | 1420 | if ((trf->technology == NFC_DIGITAL_RF_TECH_106A) && |
1421 | (trf->framing == NFC_DIGITAL_FRAMING_NFCA_T2T)) { | 1421 | (trf->framing == NFC_DIGITAL_FRAMING_NFCA_T2T)) { |
1422 | if (req[0] == NFC_T2T_CMD_READ) | 1422 | if (req[0] == NFC_T2T_CMD_READ) |
1423 | special_fcn_reg1 = 0; | 1423 | special_fcn_reg1 = 0; |
1424 | else | 1424 | else |
@@ -1426,7 +1426,7 @@ static int trf7970a_per_cmd_config(struct trf7970a *trf, struct sk_buff *skb) | |||
1426 | 1426 | ||
1427 | if (special_fcn_reg1 != trf->special_fcn_reg1) { | 1427 | if (special_fcn_reg1 != trf->special_fcn_reg1) { |
1428 | ret = trf7970a_write(trf, TRF7970A_SPECIAL_FCN_REG1, | 1428 | ret = trf7970a_write(trf, TRF7970A_SPECIAL_FCN_REG1, |
1429 | special_fcn_reg1); | 1429 | special_fcn_reg1); |
1430 | if (ret) | 1430 | if (ret) |
1431 | return ret; | 1431 | return ret; |
1432 | 1432 | ||
@@ -1446,7 +1446,7 @@ static int trf7970a_per_cmd_config(struct trf7970a *trf, struct sk_buff *skb) | |||
1446 | iso_ctrl |= TRF7970A_ISO_CTRL_15693_SGL_1OF4_2648; | 1446 | iso_ctrl |= TRF7970A_ISO_CTRL_15693_SGL_1OF4_2648; |
1447 | break; | 1447 | break; |
1448 | case (ISO15693_REQ_FLAG_SUB_CARRIER | | 1448 | case (ISO15693_REQ_FLAG_SUB_CARRIER | |
1449 | ISO15693_REQ_FLAG_DATA_RATE): | 1449 | ISO15693_REQ_FLAG_DATA_RATE): |
1450 | iso_ctrl |= TRF7970A_ISO_CTRL_15693_DBL_1OF4_2669; | 1450 | iso_ctrl |= TRF7970A_ISO_CTRL_15693_DBL_1OF4_2669; |
1451 | break; | 1451 | break; |
1452 | } | 1452 | } |
@@ -1461,10 +1461,10 @@ static int trf7970a_per_cmd_config(struct trf7970a *trf, struct sk_buff *skb) | |||
1461 | 1461 | ||
1462 | if (trf->framing == NFC_DIGITAL_FRAMING_ISO15693_T5T) { | 1462 | if (trf->framing == NFC_DIGITAL_FRAMING_ISO15693_T5T) { |
1463 | if (trf7970a_is_iso15693_write_or_lock(req[1]) && | 1463 | if (trf7970a_is_iso15693_write_or_lock(req[1]) && |
1464 | (req[0] & ISO15693_REQ_FLAG_OPTION)) | 1464 | (req[0] & ISO15693_REQ_FLAG_OPTION)) |
1465 | trf->issue_eof = true; | 1465 | trf->issue_eof = true; |
1466 | else if ((trf->quirks & | 1466 | else if ((trf->quirks & |
1467 | TRF7970A_QUIRK_T5T_RMB_EXTRA_BYTE) && | 1467 | TRF7970A_QUIRK_T5T_RMB_EXTRA_BYTE) && |
1468 | (req[1] == ISO15693_CMD_READ_MULTIPLE_BLOCK)) | 1468 | (req[1] == ISO15693_CMD_READ_MULTIPLE_BLOCK)) |
1469 | trf->adjust_resp_len = true; | 1469 | trf->adjust_resp_len = true; |
1470 | } | 1470 | } |
@@ -1474,8 +1474,8 @@ static int trf7970a_per_cmd_config(struct trf7970a *trf, struct sk_buff *skb) | |||
1474 | } | 1474 | } |
1475 | 1475 | ||
1476 | static int trf7970a_send_cmd(struct nfc_digital_dev *ddev, | 1476 | static int trf7970a_send_cmd(struct nfc_digital_dev *ddev, |
1477 | struct sk_buff *skb, u16 timeout, | 1477 | struct sk_buff *skb, u16 timeout, |
1478 | nfc_digital_cmd_complete_t cb, void *arg) | 1478 | nfc_digital_cmd_complete_t cb, void *arg) |
1479 | { | 1479 | { |
1480 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); | 1480 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); |
1481 | u8 prefix[5]; | 1481 | u8 prefix[5]; |
@@ -1484,7 +1484,7 @@ static int trf7970a_send_cmd(struct nfc_digital_dev *ddev, | |||
1484 | u8 status; | 1484 | u8 status; |
1485 | 1485 | ||
1486 | dev_dbg(trf->dev, "New request - state: %d, timeout: %d ms, len: %d\n", | 1486 | dev_dbg(trf->dev, "New request - state: %d, timeout: %d ms, len: %d\n", |
1487 | trf->state, timeout, skb->len); | 1487 | trf->state, timeout, skb->len); |
1488 | 1488 | ||
1489 | if (skb->len > TRF7970A_TX_MAX) | 1489 | if (skb->len > TRF7970A_TX_MAX) |
1490 | return -EINVAL; | 1490 | return -EINVAL; |
@@ -1492,9 +1492,9 @@ static int trf7970a_send_cmd(struct nfc_digital_dev *ddev, | |||
1492 | mutex_lock(&trf->lock); | 1492 | mutex_lock(&trf->lock); |
1493 | 1493 | ||
1494 | if ((trf->state != TRF7970A_ST_IDLE) && | 1494 | if ((trf->state != TRF7970A_ST_IDLE) && |
1495 | (trf->state != TRF7970A_ST_IDLE_RX_BLOCKED)) { | 1495 | (trf->state != TRF7970A_ST_IDLE_RX_BLOCKED)) { |
1496 | dev_err(trf->dev, "%s - Bogus state: %d\n", __func__, | 1496 | dev_err(trf->dev, "%s - Bogus state: %d\n", __func__, |
1497 | trf->state); | 1497 | trf->state); |
1498 | ret = -EIO; | 1498 | ret = -EIO; |
1499 | goto out_err; | 1499 | goto out_err; |
1500 | } | 1500 | } |
@@ -1508,7 +1508,7 @@ static int trf7970a_send_cmd(struct nfc_digital_dev *ddev, | |||
1508 | 1508 | ||
1509 | if (timeout) { | 1509 | if (timeout) { |
1510 | trf->rx_skb = nfc_alloc_recv_skb(TRF7970A_RX_SKB_ALLOC_SIZE, | 1510 | trf->rx_skb = nfc_alloc_recv_skb(TRF7970A_RX_SKB_ALLOC_SIZE, |
1511 | GFP_KERNEL); | 1511 | GFP_KERNEL); |
1512 | if (!trf->rx_skb) { | 1512 | if (!trf->rx_skb) { |
1513 | dev_dbg(trf->dev, "Can't alloc rx_skb\n"); | 1513 | dev_dbg(trf->dev, "Can't alloc rx_skb\n"); |
1514 | ret = -ENOMEM; | 1514 | ret = -ENOMEM; |
@@ -1545,14 +1545,14 @@ static int trf7970a_send_cmd(struct nfc_digital_dev *ddev, | |||
1545 | * That totals 5 bytes. | 1545 | * That totals 5 bytes. |
1546 | */ | 1546 | */ |
1547 | prefix[0] = TRF7970A_CMD_BIT_CTRL | | 1547 | prefix[0] = TRF7970A_CMD_BIT_CTRL | |
1548 | TRF7970A_CMD_BIT_OPCODE(TRF7970A_CMD_FIFO_RESET); | 1548 | TRF7970A_CMD_BIT_OPCODE(TRF7970A_CMD_FIFO_RESET); |
1549 | prefix[1] = TRF7970A_CMD_BIT_CTRL | | 1549 | prefix[1] = TRF7970A_CMD_BIT_CTRL | |
1550 | TRF7970A_CMD_BIT_OPCODE(trf->tx_cmd); | 1550 | TRF7970A_CMD_BIT_OPCODE(trf->tx_cmd); |
1551 | prefix[2] = TRF7970A_CMD_BIT_CONTINUOUS | TRF7970A_TX_LENGTH_BYTE1; | 1551 | prefix[2] = TRF7970A_CMD_BIT_CONTINUOUS | TRF7970A_TX_LENGTH_BYTE1; |
1552 | 1552 | ||
1553 | if (trf->framing == NFC_DIGITAL_FRAMING_NFCA_SHORT) { | 1553 | if (trf->framing == NFC_DIGITAL_FRAMING_NFCA_SHORT) { |
1554 | prefix[3] = 0x00; | 1554 | prefix[3] = 0x00; |
1555 | prefix[4] = 0x0f; /* 7 bits */ | 1555 | prefix[4] = 0x0f; /* 7 bits */ |
1556 | } else { | 1556 | } else { |
1557 | prefix[3] = (len & 0xf00) >> 4; | 1557 | prefix[3] = (len & 0xf00) >> 4; |
1558 | prefix[3] |= ((len & 0xf0) >> 4); | 1558 | prefix[3] |= ((len & 0xf0) >> 4); |
@@ -1586,25 +1586,24 @@ static int trf7970a_tg_config_rf_tech(struct trf7970a *trf, int tech) | |||
1586 | switch (tech) { | 1586 | switch (tech) { |
1587 | case NFC_DIGITAL_RF_TECH_106A: | 1587 | case NFC_DIGITAL_RF_TECH_106A: |
1588 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_NFC_NFC_CE_MODE | | 1588 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_NFC_NFC_CE_MODE | |
1589 | TRF7970A_ISO_CTRL_NFC_CE | | 1589 | TRF7970A_ISO_CTRL_NFC_CE | TRF7970A_ISO_CTRL_NFC_CE_14443A; |
1590 | TRF7970A_ISO_CTRL_NFC_CE_14443A; | ||
1591 | trf->modulator_sys_clk_ctrl = | 1590 | trf->modulator_sys_clk_ctrl = |
1592 | (trf->modulator_sys_clk_ctrl & 0xf8) | | 1591 | (trf->modulator_sys_clk_ctrl & 0xf8) | |
1593 | TRF7970A_MODULATOR_DEPTH_OOK; | 1592 | TRF7970A_MODULATOR_DEPTH_OOK; |
1594 | break; | 1593 | break; |
1595 | case NFC_DIGITAL_RF_TECH_212F: | 1594 | case NFC_DIGITAL_RF_TECH_212F: |
1596 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_NFC_NFC_CE_MODE | | 1595 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_NFC_NFC_CE_MODE | |
1597 | TRF7970A_ISO_CTRL_NFC_NFCF_212; | 1596 | TRF7970A_ISO_CTRL_NFC_NFCF_212; |
1598 | trf->modulator_sys_clk_ctrl = | 1597 | trf->modulator_sys_clk_ctrl = |
1599 | (trf->modulator_sys_clk_ctrl & 0xf8) | | 1598 | (trf->modulator_sys_clk_ctrl & 0xf8) | |
1600 | TRF7970A_MODULATOR_DEPTH_ASK10; | 1599 | TRF7970A_MODULATOR_DEPTH_ASK10; |
1601 | break; | 1600 | break; |
1602 | case NFC_DIGITAL_RF_TECH_424F: | 1601 | case NFC_DIGITAL_RF_TECH_424F: |
1603 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_NFC_NFC_CE_MODE | | 1602 | trf->iso_ctrl_tech = TRF7970A_ISO_CTRL_NFC_NFC_CE_MODE | |
1604 | TRF7970A_ISO_CTRL_NFC_NFCF_424; | 1603 | TRF7970A_ISO_CTRL_NFC_NFCF_424; |
1605 | trf->modulator_sys_clk_ctrl = | 1604 | trf->modulator_sys_clk_ctrl = |
1606 | (trf->modulator_sys_clk_ctrl & 0xf8) | | 1605 | (trf->modulator_sys_clk_ctrl & 0xf8) | |
1607 | TRF7970A_MODULATOR_DEPTH_ASK10; | 1606 | TRF7970A_MODULATOR_DEPTH_ASK10; |
1608 | break; | 1607 | break; |
1609 | default: | 1608 | default: |
1610 | dev_dbg(trf->dev, "Unsupported rf technology: %d\n", tech); | 1609 | dev_dbg(trf->dev, "Unsupported rf technology: %d\n", tech); |
@@ -1621,9 +1620,9 @@ static int trf7970a_tg_config_rf_tech(struct trf7970a *trf, int tech) | |||
1621 | * here. | 1620 | * here. |
1622 | */ | 1621 | */ |
1623 | if ((trf->framing == NFC_DIGITAL_FRAMING_NFC_DEP_ACTIVATED) && | 1622 | if ((trf->framing == NFC_DIGITAL_FRAMING_NFC_DEP_ACTIVATED) && |
1624 | (trf->iso_ctrl_tech != trf->iso_ctrl)) { | 1623 | (trf->iso_ctrl_tech != trf->iso_ctrl)) { |
1625 | ret = trf7970a_write(trf, TRF7970A_ISO_CTRL, | 1624 | ret = trf7970a_write(trf, TRF7970A_ISO_CTRL, |
1626 | trf->iso_ctrl_tech); | 1625 | trf->iso_ctrl_tech); |
1627 | 1626 | ||
1628 | trf->iso_ctrl = trf->iso_ctrl_tech; | 1627 | trf->iso_ctrl = trf->iso_ctrl_tech; |
1629 | } | 1628 | } |
@@ -1678,15 +1677,15 @@ static int trf7970a_tg_config_framing(struct trf7970a *trf, int framing) | |||
1678 | trf->iso_ctrl = iso_ctrl; | 1677 | trf->iso_ctrl = iso_ctrl; |
1679 | 1678 | ||
1680 | ret = trf7970a_write(trf, TRF7970A_MODULATOR_SYS_CLK_CTRL, | 1679 | ret = trf7970a_write(trf, TRF7970A_MODULATOR_SYS_CLK_CTRL, |
1681 | trf->modulator_sys_clk_ctrl); | 1680 | trf->modulator_sys_clk_ctrl); |
1682 | if (ret) | 1681 | if (ret) |
1683 | return ret; | 1682 | return ret; |
1684 | } | 1683 | } |
1685 | 1684 | ||
1686 | if (!(trf->chip_status_ctrl & TRF7970A_CHIP_STATUS_RF_ON)) { | 1685 | if (!(trf->chip_status_ctrl & TRF7970A_CHIP_STATUS_RF_ON)) { |
1687 | ret = trf7970a_write(trf, TRF7970A_CHIP_STATUS_CTRL, | 1686 | ret = trf7970a_write(trf, TRF7970A_CHIP_STATUS_CTRL, |
1688 | trf->chip_status_ctrl | | 1687 | trf->chip_status_ctrl | |
1689 | TRF7970A_CHIP_STATUS_RF_ON); | 1688 | TRF7970A_CHIP_STATUS_RF_ON); |
1690 | if (ret) | 1689 | if (ret) |
1691 | return ret; | 1690 | return ret; |
1692 | 1691 | ||
@@ -1697,7 +1696,7 @@ static int trf7970a_tg_config_framing(struct trf7970a *trf, int framing) | |||
1697 | } | 1696 | } |
1698 | 1697 | ||
1699 | static int trf7970a_tg_configure_hw(struct nfc_digital_dev *ddev, int type, | 1698 | static int trf7970a_tg_configure_hw(struct nfc_digital_dev *ddev, int type, |
1700 | int param) | 1699 | int param) |
1701 | { | 1700 | { |
1702 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); | 1701 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); |
1703 | int ret; | 1702 | int ret; |
@@ -1709,7 +1708,7 @@ static int trf7970a_tg_configure_hw(struct nfc_digital_dev *ddev, int type, | |||
1709 | trf->is_initiator = false; | 1708 | trf->is_initiator = false; |
1710 | 1709 | ||
1711 | if ((trf->state == TRF7970A_ST_PWR_OFF) || | 1710 | if ((trf->state == TRF7970A_ST_PWR_OFF) || |
1712 | (trf->state == TRF7970A_ST_RF_OFF)) { | 1711 | (trf->state == TRF7970A_ST_RF_OFF)) { |
1713 | ret = trf7970a_switch_rf_on(trf); | 1712 | ret = trf7970a_switch_rf_on(trf); |
1714 | if (ret) | 1713 | if (ret) |
1715 | goto err_unlock; | 1714 | goto err_unlock; |
@@ -1733,7 +1732,8 @@ err_unlock: | |||
1733 | } | 1732 | } |
1734 | 1733 | ||
1735 | static int _trf7970a_tg_listen(struct nfc_digital_dev *ddev, u16 timeout, | 1734 | static int _trf7970a_tg_listen(struct nfc_digital_dev *ddev, u16 timeout, |
1736 | nfc_digital_cmd_complete_t cb, void *arg, bool mode_detect) | 1735 | nfc_digital_cmd_complete_t cb, void *arg, |
1736 | bool mode_detect) | ||
1737 | { | 1737 | { |
1738 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); | 1738 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); |
1739 | int ret; | 1739 | int ret; |
@@ -1741,9 +1741,9 @@ static int _trf7970a_tg_listen(struct nfc_digital_dev *ddev, u16 timeout, | |||
1741 | mutex_lock(&trf->lock); | 1741 | mutex_lock(&trf->lock); |
1742 | 1742 | ||
1743 | if ((trf->state != TRF7970A_ST_IDLE) && | 1743 | if ((trf->state != TRF7970A_ST_IDLE) && |
1744 | (trf->state != TRF7970A_ST_IDLE_RX_BLOCKED)) { | 1744 | (trf->state != TRF7970A_ST_IDLE_RX_BLOCKED)) { |
1745 | dev_err(trf->dev, "%s - Bogus state: %d\n", __func__, | 1745 | dev_err(trf->dev, "%s - Bogus state: %d\n", __func__, |
1746 | trf->state); | 1746 | trf->state); |
1747 | ret = -EIO; | 1747 | ret = -EIO; |
1748 | goto out_err; | 1748 | goto out_err; |
1749 | } | 1749 | } |
@@ -1756,7 +1756,7 @@ static int _trf7970a_tg_listen(struct nfc_digital_dev *ddev, u16 timeout, | |||
1756 | } | 1756 | } |
1757 | 1757 | ||
1758 | trf->rx_skb = nfc_alloc_recv_skb(TRF7970A_RX_SKB_ALLOC_SIZE, | 1758 | trf->rx_skb = nfc_alloc_recv_skb(TRF7970A_RX_SKB_ALLOC_SIZE, |
1759 | GFP_KERNEL); | 1759 | GFP_KERNEL); |
1760 | if (!trf->rx_skb) { | 1760 | if (!trf->rx_skb) { |
1761 | dev_dbg(trf->dev, "Can't alloc rx_skb\n"); | 1761 | dev_dbg(trf->dev, "Can't alloc rx_skb\n"); |
1762 | ret = -ENOMEM; | 1762 | ret = -ENOMEM; |
@@ -1764,25 +1764,25 @@ static int _trf7970a_tg_listen(struct nfc_digital_dev *ddev, u16 timeout, | |||
1764 | } | 1764 | } |
1765 | 1765 | ||
1766 | ret = trf7970a_write(trf, TRF7970A_RX_SPECIAL_SETTINGS, | 1766 | ret = trf7970a_write(trf, TRF7970A_RX_SPECIAL_SETTINGS, |
1767 | TRF7970A_RX_SPECIAL_SETTINGS_HBT | | 1767 | TRF7970A_RX_SPECIAL_SETTINGS_HBT | |
1768 | TRF7970A_RX_SPECIAL_SETTINGS_M848 | | 1768 | TRF7970A_RX_SPECIAL_SETTINGS_M848 | |
1769 | TRF7970A_RX_SPECIAL_SETTINGS_C424 | | 1769 | TRF7970A_RX_SPECIAL_SETTINGS_C424 | |
1770 | TRF7970A_RX_SPECIAL_SETTINGS_C212); | 1770 | TRF7970A_RX_SPECIAL_SETTINGS_C212); |
1771 | if (ret) | 1771 | if (ret) |
1772 | goto out_err; | 1772 | goto out_err; |
1773 | 1773 | ||
1774 | ret = trf7970a_write(trf, TRF7970A_REG_IO_CTRL, | 1774 | ret = trf7970a_write(trf, TRF7970A_REG_IO_CTRL, |
1775 | trf->io_ctrl | TRF7970A_REG_IO_CTRL_VRS(0x1)); | 1775 | trf->io_ctrl | TRF7970A_REG_IO_CTRL_VRS(0x1)); |
1776 | if (ret) | 1776 | if (ret) |
1777 | goto out_err; | 1777 | goto out_err; |
1778 | 1778 | ||
1779 | ret = trf7970a_write(trf, TRF7970A_NFC_LOW_FIELD_LEVEL, | 1779 | ret = trf7970a_write(trf, TRF7970A_NFC_LOW_FIELD_LEVEL, |
1780 | TRF7970A_NFC_LOW_FIELD_LEVEL_RFDET(0x3)); | 1780 | TRF7970A_NFC_LOW_FIELD_LEVEL_RFDET(0x3)); |
1781 | if (ret) | 1781 | if (ret) |
1782 | goto out_err; | 1782 | goto out_err; |
1783 | 1783 | ||
1784 | ret = trf7970a_write(trf, TRF7970A_NFC_TARGET_LEVEL, | 1784 | ret = trf7970a_write(trf, TRF7970A_NFC_TARGET_LEVEL, |
1785 | TRF7970A_NFC_TARGET_LEVEL_RFDET(0x7)); | 1785 | TRF7970A_NFC_TARGET_LEVEL_RFDET(0x7)); |
1786 | if (ret) | 1786 | if (ret) |
1787 | goto out_err; | 1787 | goto out_err; |
1788 | 1788 | ||
@@ -1807,32 +1807,33 @@ out_err: | |||
1807 | } | 1807 | } |
1808 | 1808 | ||
1809 | static int trf7970a_tg_listen(struct nfc_digital_dev *ddev, u16 timeout, | 1809 | static int trf7970a_tg_listen(struct nfc_digital_dev *ddev, u16 timeout, |
1810 | nfc_digital_cmd_complete_t cb, void *arg) | 1810 | nfc_digital_cmd_complete_t cb, void *arg) |
1811 | { | 1811 | { |
1812 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); | 1812 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); |
1813 | 1813 | ||
1814 | dev_dbg(trf->dev, "Listen - state: %d, timeout: %d ms\n", | 1814 | dev_dbg(trf->dev, "Listen - state: %d, timeout: %d ms\n", |
1815 | trf->state, timeout); | 1815 | trf->state, timeout); |
1816 | 1816 | ||
1817 | return _trf7970a_tg_listen(ddev, timeout, cb, arg, false); | 1817 | return _trf7970a_tg_listen(ddev, timeout, cb, arg, false); |
1818 | } | 1818 | } |
1819 | 1819 | ||
1820 | static int trf7970a_tg_listen_md(struct nfc_digital_dev *ddev, | 1820 | static int trf7970a_tg_listen_md(struct nfc_digital_dev *ddev, |
1821 | u16 timeout, nfc_digital_cmd_complete_t cb, void *arg) | 1821 | u16 timeout, nfc_digital_cmd_complete_t cb, |
1822 | void *arg) | ||
1822 | { | 1823 | { |
1823 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); | 1824 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); |
1824 | int ret; | 1825 | int ret; |
1825 | 1826 | ||
1826 | dev_dbg(trf->dev, "Listen MD - state: %d, timeout: %d ms\n", | 1827 | dev_dbg(trf->dev, "Listen MD - state: %d, timeout: %d ms\n", |
1827 | trf->state, timeout); | 1828 | trf->state, timeout); |
1828 | 1829 | ||
1829 | ret = trf7970a_tg_configure_hw(ddev, NFC_DIGITAL_CONFIG_RF_TECH, | 1830 | ret = trf7970a_tg_configure_hw(ddev, NFC_DIGITAL_CONFIG_RF_TECH, |
1830 | NFC_DIGITAL_RF_TECH_106A); | 1831 | NFC_DIGITAL_RF_TECH_106A); |
1831 | if (ret) | 1832 | if (ret) |
1832 | return ret; | 1833 | return ret; |
1833 | 1834 | ||
1834 | ret = trf7970a_tg_configure_hw(ddev, NFC_DIGITAL_CONFIG_FRAMING, | 1835 | ret = trf7970a_tg_configure_hw(ddev, NFC_DIGITAL_CONFIG_FRAMING, |
1835 | NFC_DIGITAL_FRAMING_NFCA_NFC_DEP); | 1836 | NFC_DIGITAL_FRAMING_NFCA_NFC_DEP); |
1836 | if (ret) | 1837 | if (ret) |
1837 | return ret; | 1838 | return ret; |
1838 | 1839 | ||
@@ -1844,7 +1845,7 @@ static int trf7970a_tg_get_rf_tech(struct nfc_digital_dev *ddev, u8 *rf_tech) | |||
1844 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); | 1845 | struct trf7970a *trf = nfc_digital_get_drvdata(ddev); |
1845 | 1846 | ||
1846 | dev_dbg(trf->dev, "Get RF Tech - state: %d, rf_tech: %d\n", | 1847 | dev_dbg(trf->dev, "Get RF Tech - state: %d, rf_tech: %d\n", |
1847 | trf->state, trf->md_rf_tech); | 1848 | trf->state, trf->md_rf_tech); |
1848 | 1849 | ||
1849 | *rf_tech = trf->md_rf_tech; | 1850 | *rf_tech = trf->md_rf_tech; |
1850 | 1851 | ||
@@ -1933,20 +1934,19 @@ static int trf7970a_power_down(struct trf7970a *trf) | |||
1933 | 1934 | ||
1934 | if (trf->state != TRF7970A_ST_RF_OFF) { | 1935 | if (trf->state != TRF7970A_ST_RF_OFF) { |
1935 | dev_dbg(trf->dev, "Can't power down - not RF_OFF state (%d)\n", | 1936 | dev_dbg(trf->dev, "Can't power down - not RF_OFF state (%d)\n", |
1936 | trf->state); | 1937 | trf->state); |
1937 | return -EBUSY; | 1938 | return -EBUSY; |
1938 | } | 1939 | } |
1939 | 1940 | ||
1940 | gpiod_set_value_cansleep(trf->en_gpiod, 0); | 1941 | gpiod_set_value_cansleep(trf->en_gpiod, 0); |
1941 | 1942 | ||
1942 | if (trf->en2_gpiod && | 1943 | if (trf->en2_gpiod && !(trf->quirks & TRF7970A_QUIRK_EN2_MUST_STAY_LOW)) |
1943 | !(trf->quirks & TRF7970A_QUIRK_EN2_MUST_STAY_LOW)) | ||
1944 | gpiod_set_value_cansleep(trf->en2_gpiod, 0); | 1944 | gpiod_set_value_cansleep(trf->en2_gpiod, 0); |
1945 | 1945 | ||
1946 | ret = regulator_disable(trf->regulator); | 1946 | ret = regulator_disable(trf->regulator); |
1947 | if (ret) | 1947 | if (ret) |
1948 | dev_err(trf->dev, "%s - Can't disable VIN: %d\n", __func__, | 1948 | dev_err(trf->dev, "%s - Can't disable VIN: %d\n", __func__, |
1949 | ret); | 1949 | ret); |
1950 | 1950 | ||
1951 | trf->state = TRF7970A_ST_PWR_OFF; | 1951 | trf->state = TRF7970A_ST_PWR_OFF; |
1952 | 1952 | ||
@@ -2060,16 +2060,16 @@ static int trf7970a_probe(struct spi_device *spi) | |||
2060 | 2060 | ||
2061 | of_property_read_u32(np, "clock-frequency", &clk_freq); | 2061 | of_property_read_u32(np, "clock-frequency", &clk_freq); |
2062 | if ((clk_freq != TRF7970A_27MHZ_CLOCK_FREQUENCY) || | 2062 | if ((clk_freq != TRF7970A_27MHZ_CLOCK_FREQUENCY) || |
2063 | (clk_freq != TRF7970A_13MHZ_CLOCK_FREQUENCY)) { | 2063 | (clk_freq != TRF7970A_13MHZ_CLOCK_FREQUENCY)) { |
2064 | dev_err(trf->dev, | 2064 | dev_err(trf->dev, |
2065 | "clock-frequency (%u Hz) unsupported\n", | 2065 | "clock-frequency (%u Hz) unsupported\n", clk_freq); |
2066 | clk_freq); | ||
2067 | return -EINVAL; | 2066 | return -EINVAL; |
2068 | } | 2067 | } |
2069 | 2068 | ||
2070 | ret = devm_request_threaded_irq(trf->dev, spi->irq, NULL, | 2069 | ret = devm_request_threaded_irq(trf->dev, spi->irq, NULL, |
2071 | trf7970a_irq, IRQF_TRIGGER_RISING | IRQF_ONESHOT, | 2070 | trf7970a_irq, |
2072 | "trf7970a", trf); | 2071 | IRQF_TRIGGER_RISING | IRQF_ONESHOT, |
2072 | "trf7970a", trf); | ||
2073 | if (ret) { | 2073 | if (ret) { |
2074 | dev_err(trf->dev, "Can't request IRQ#%d: %d\n", spi->irq, ret); | 2074 | dev_err(trf->dev, "Can't request IRQ#%d: %d\n", spi->irq, ret); |
2075 | return ret; | 2075 | return ret; |
@@ -2114,9 +2114,10 @@ static int trf7970a_probe(struct spi_device *spi) | |||
2114 | } | 2114 | } |
2115 | 2115 | ||
2116 | trf->ddev = nfc_digital_allocate_device(&trf7970a_nfc_ops, | 2116 | trf->ddev = nfc_digital_allocate_device(&trf7970a_nfc_ops, |
2117 | TRF7970A_SUPPORTED_PROTOCOLS, | 2117 | TRF7970A_SUPPORTED_PROTOCOLS, |
2118 | NFC_DIGITAL_DRV_CAPS_IN_CRC | | 2118 | NFC_DIGITAL_DRV_CAPS_IN_CRC | |
2119 | NFC_DIGITAL_DRV_CAPS_TG_CRC, 0, 0); | 2119 | NFC_DIGITAL_DRV_CAPS_TG_CRC, 0, |
2120 | 0); | ||
2120 | if (!trf->ddev) { | 2121 | if (!trf->ddev) { |
2121 | dev_err(trf->dev, "Can't allocate NFC digital device\n"); | 2122 | dev_err(trf->dev, "Can't allocate NFC digital device\n"); |
2122 | ret = -ENOMEM; | 2123 | ret = -ENOMEM; |
@@ -2139,7 +2140,7 @@ static int trf7970a_probe(struct spi_device *spi) | |||
2139 | ret = nfc_digital_register_device(trf->ddev); | 2140 | ret = nfc_digital_register_device(trf->ddev); |
2140 | if (ret) { | 2141 | if (ret) { |
2141 | dev_err(trf->dev, "Can't register NFC digital device: %d\n", | 2142 | dev_err(trf->dev, "Can't register NFC digital device: %d\n", |
2142 | ret); | 2143 | ret); |
2143 | goto err_shutdown; | 2144 | goto err_shutdown; |
2144 | } | 2145 | } |
2145 | 2146 | ||
@@ -2248,29 +2249,31 @@ static int trf7970a_pm_runtime_resume(struct device *dev) | |||
2248 | static const struct dev_pm_ops trf7970a_pm_ops = { | 2249 | static const struct dev_pm_ops trf7970a_pm_ops = { |
2249 | SET_SYSTEM_SLEEP_PM_OPS(trf7970a_suspend, trf7970a_resume) | 2250 | SET_SYSTEM_SLEEP_PM_OPS(trf7970a_suspend, trf7970a_resume) |
2250 | SET_RUNTIME_PM_OPS(trf7970a_pm_runtime_suspend, | 2251 | SET_RUNTIME_PM_OPS(trf7970a_pm_runtime_suspend, |
2251 | trf7970a_pm_runtime_resume, NULL) | 2252 | trf7970a_pm_runtime_resume, NULL) |
2252 | }; | 2253 | }; |
2253 | 2254 | ||
2254 | static const struct of_device_id trf7970a_of_match[] = { | 2255 | static const struct of_device_id trf7970a_of_match[] = { |
2255 | { .compatible = "ti,trf7970a", }, | 2256 | {.compatible = "ti,trf7970a",}, |
2256 | {}, | 2257 | {}, |
2257 | }; | 2258 | }; |
2259 | |||
2258 | MODULE_DEVICE_TABLE(of, trf7970a_of_match); | 2260 | MODULE_DEVICE_TABLE(of, trf7970a_of_match); |
2259 | 2261 | ||
2260 | static const struct spi_device_id trf7970a_id_table[] = { | 2262 | static const struct spi_device_id trf7970a_id_table[] = { |
2261 | { "trf7970a", 0 }, | 2263 | {"trf7970a", 0}, |
2262 | { } | 2264 | {} |
2263 | }; | 2265 | }; |
2266 | |||
2264 | MODULE_DEVICE_TABLE(spi, trf7970a_id_table); | 2267 | MODULE_DEVICE_TABLE(spi, trf7970a_id_table); |
2265 | 2268 | ||
2266 | static struct spi_driver trf7970a_spi_driver = { | 2269 | static struct spi_driver trf7970a_spi_driver = { |
2267 | .probe = trf7970a_probe, | 2270 | .probe = trf7970a_probe, |
2268 | .remove = trf7970a_remove, | 2271 | .remove = trf7970a_remove, |
2269 | .id_table = trf7970a_id_table, | 2272 | .id_table = trf7970a_id_table, |
2270 | .driver = { | 2273 | .driver = { |
2271 | .name = "trf7970a", | 2274 | .name = "trf7970a", |
2272 | .of_match_table = of_match_ptr(trf7970a_of_match), | 2275 | .of_match_table = of_match_ptr(trf7970a_of_match), |
2273 | .pm = &trf7970a_pm_ops, | 2276 | .pm = &trf7970a_pm_ops, |
2274 | }, | 2277 | }, |
2275 | }; | 2278 | }; |
2276 | 2279 | ||