Out-of-tree NXP NFC I²C kernel driver adapted for modern Linux kernels and Android GKI.
This repository is based on the legacy NXP PN54x/PN55x driver and has been updated to build and run on modern Linux kernels (5.10+), including Android GKI.
This project is based on the official NXP PN54x/PN55x I²C driver from the NXPNFCProject.
Original repository: NXPNFC_I2CDriver/tree/br_ar_p_sn1xx
Compared to the original implementation, this repository includes:
- Ported to modern Linux kernels (5.10+)
- Android GKI compatibility fixes
- Updated deprecated kernel APIs
- Build fixes for modern toolchains
- PN557 compatibility improvements
- Stability improvements and bug fixes
- Tested on Linux 5.10.260 GKİ Kernel
The original driver and copyright remain the property of NXP Semiconductors and their respective contributors. This repository distributes a modified version under the terms of the original GPL-2.0 license.
- Linux 5.10+ GKI compatible
- Android 13 / 14 / 15 / 16 compatible
- eSE (Embedded Secure Element) support
- Secure timer support
| Chip | Status |
|---|---|
| PN553 | Tested |
| PN557 | Tested |
These chips belong to the same NXP PN54x/PN55x driver family or share a similar software architecture, but have not been physically tested.
| Chip | Status |
|---|---|
| PN544 | Untested |
| PN547 | Untested |
| PN548 | Untested |
| PN80T | Untested (eSE platform) |
| PN81T | Untested (eSE platform) |
SN100, SN110 and SN220 are not claimed as supported, as they have not been verified with this driver.
- Linux 5.10.x (Android GKI)
- Linux 5.15.x
- Linux 6.1.x
Legacy kernels may also work with minimal changes.
| Component | Version |
|---|---|
| Kernel | Linux 5.10.262 |
| Android | LineageOS 23.2 (Android 16) |
| SoC | MediaTek MT6789 |
| NFC Chip | PN553 |
| NFC Chip | PN557 |
Example compatible:
compatible = "nxp,pn544";
or
compatible = "nxp,pn548";
Depending on your board configuration.
This repository only contains the Linux kernel driver.
Android userspace components such as:
- NFC HAL
- libnfc-nci
- Firmware blobs
must be supplied separately by your device vendor or ROM.