From: David Heidelberg <[email protected]>

Enable NFC controller NXP PN553, which is part of the package NXP NQ330
(NFC + eSE).

Based on work of biemster <[email protected]>.

Signed-off-by: David Heidelberg <[email protected]>
---
 .../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 57 ++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi 
b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
index 6b7378cf4d493..f5a5f1fbc1fb6 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
@@ -464,6 +464,26 @@ &gpu_zap_shader {
        firmware-name = "qcom/sdm845/OnePlus/enchilada/a630_zap.mbn";
 };
 
+&i2c3 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       nfc@28 {
+               compatible = "nxp,pn553", "nxp,nxp-nci-i2c";
+               reg = <0x28>;
+
+               interrupts-extended = <&tlmm 63 IRQ_TYPE_EDGE_RISING>;
+
+               enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
+               firmware-gpios = <&tlmm 62 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&nfc_default>;
+               pinctrl-1 = <&nfc_sleep>;
+               pinctrl-names = "default", "sleep";
+       };
+};
+
 &i2c10 {
        status = "okay";
        clock-frequency = <100000>;
@@ -674,6 +694,11 @@ &qupv3_id_0 {
        status = "okay";
 };
 
+&qup_i2c3_default {
+       drive-strength = <2>;
+       bias-disable;
+};
+
 &qup_i2c10_default {
        drive-strength = <2>;
        bias-disable;
@@ -1007,6 +1032,38 @@ speaker_default: speaker-default-state {
                bias-pull-up;
                output-high;
        };
+
+       nfc_default: nfc-default-state {
+               enable-pins {
+                       pins = "gpio12", "gpio62";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               int-pins {
+                       pins = "gpio63";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       nfc_sleep: nfc-sleep-state {
+               enable-pins {
+                       pins = "gpio12", "gpio62";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               int-pins {
+                       pins = "gpio63";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
 };
 
 &venus {

-- 
2.53.0



Reply via email to