2023-03-07 19:16:44

by Gergo Koteles

[permalink] [raw]
Subject: [PATCH v2] arm64: dts: qcom: sdm845-oneplus-common: add PN553 NFC

The OnePlus 6/6T both have a NQ330 (PN553 + P73N2M0).
The PN533 supported by the nxp-nci-i2c driver in mainline.
It detects/reads NFC tags using "nfctool".

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

diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
index 64638ea94db7..5e45801031d8 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
@@ -380,6 +380,24 @@ zap-shader {
};
};

+&i2c3 {
+ clock-frequency = <400000>;
+ status = "okay";
+
+ nfc@28 {
+ compatible = "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_int_active &nfc_enable_active &nfc_firmware_active>;
+ pinctrl-names = "default";
+ };
+};
+
&i2c10 {
status = "okay";
clock-frequency = <100000>;
@@ -753,6 +771,27 @@ &usb_1_hsphy {
&tlmm {
gpio-reserved-ranges = <0 4>, <81 4>;

+ nfc_int_active: nfc-int-active-state {
+ pins = "gpio63";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ nfc_enable_active: nfc-enable-active-state {
+ pins = "gpio12";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ nfc_firmware_active: nfc-firmware-active-state {
+ pins = "gpio62";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
tri_state_key_default: tri-state-key-default-state {
pins = "gpio40", "gpio42", "gpio26";
function = "gpio";
--
2.39.2



2023-03-07 19:18:32

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH v2] arm64: dts: qcom: sdm845-oneplus-common: add PN553 NFC



On 7.03.2023 19:59, Gergo Koteles wrote:
> The OnePlus 6/6T both have a NQ330 (PN553 + P73N2M0).
> The PN533 supported by the nxp-nci-i2c driver in mainline.
> It detects/reads NFC tags using "nfctool".
>
> Signed-off-by: Gergo Koteles <[email protected]>
> ---
Next time include a changelog below this --- line detailing
what changed between revisions.

Reviewed-by: Konrad Dybcio <[email protected]>

Konrad
> .../boot/dts/qcom/sdm845-oneplus-common.dtsi | 39 +++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> index 64638ea94db7..5e45801031d8 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> @@ -380,6 +380,24 @@ zap-shader {
> };
> };
>
> +&i2c3 {
> + clock-frequency = <400000>;
> + status = "okay";
> +
> + nfc@28 {
> + compatible = "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_int_active &nfc_enable_active &nfc_firmware_active>;
> + pinctrl-names = "default";
> + };
> +};
> +
> &i2c10 {
> status = "okay";
> clock-frequency = <100000>;
> @@ -753,6 +771,27 @@ &usb_1_hsphy {
> &tlmm {
> gpio-reserved-ranges = <0 4>, <81 4>;
>
> + nfc_int_active: nfc-int-active-state {
> + pins = "gpio63";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +
> + nfc_enable_active: nfc-enable-active-state {
> + pins = "gpio12";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +
> + nfc_firmware_active: nfc-firmware-active-state {
> + pins = "gpio62";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +
> tri_state_key_default: tri-state-key-default-state {
> pins = "gpio40", "gpio42", "gpio26";
> function = "gpio";

2023-03-07 19:20:48

by Gergo Koteles

[permalink] [raw]
Subject: Re: [PATCH v2] arm64: dts: qcom: sdm845-oneplus-common: add PN553 NFC

On 2023. 03. 07. 20:02, Konrad Dybcio wrote:
>
>
> On 7.03.2023 19:59, Gergo Koteles wrote:
>> The OnePlus 6/6T both have a NQ330 (PN553 + P73N2M0).
>> The PN533 supported by the nxp-nci-i2c driver in mainline.
>> It detects/reads NFC tags using "nfctool".
>>
>> Signed-off-by: Gergo Koteles <[email protected]>
>> ---
> Next time include a changelog below this --- line detailing
> what changed between revisions.
>
Okey. Thanks for the suggestion and the review.

> Reviewed-by: Konrad Dybcio <[email protected]>
>
> Konrad
>> .../boot/dts/qcom/sdm845-oneplus-common.dtsi | 39 +++++++++++++++++++
>> 1 file changed, 39 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>> index 64638ea94db7..5e45801031d8 100644
>> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>> @@ -380,6 +380,24 @@ zap-shader {
>> };
>> };
>>
>> +&i2c3 {
>> + clock-frequency = <400000>;
>> + status = "okay";
>> +
>> + nfc@28 {
>> + compatible = "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_int_active &nfc_enable_active &nfc_firmware_active>;
>> + pinctrl-names = "default";
>> + };
>> +};
>> +
>> &i2c10 {
>> status = "okay";
>> clock-frequency = <100000>;
>> @@ -753,6 +771,27 @@ &usb_1_hsphy {
>> &tlmm {
>> gpio-reserved-ranges = <0 4>, <81 4>;
>>
>> + nfc_int_active: nfc-int-active-state {
>> + pins = "gpio63";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-pull-up;
>> + };
>> +
>> + nfc_enable_active: nfc-enable-active-state {
>> + pins = "gpio12";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-pull-up;
>> + };
>> +
>> + nfc_firmware_active: nfc-firmware-active-state {
>> + pins = "gpio62";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-pull-up;
>> + };
>> +
>> tri_state_key_default: tri-state-key-default-state {
>> pins = "gpio40", "gpio42", "gpio26";
>> function = "gpio";


2023-03-08 18:21:06

by Gergo Koteles

[permalink] [raw]
Subject: Re: [PATCH v2] arm64: dts: qcom: sdm845-oneplus-common: add PN553 NFC

On 2023. 03. 07. 20:04, Gergo Koteles wrote:
> On 2023. 03. 07. 20:02, Konrad Dybcio wrote:
>>
>>
>> On 7.03.2023 19:59, Gergo Koteles wrote:
>>> The OnePlus 6/6T both have a NQ330 (PN553 + P73N2M0).
>>> The PN533 supported by the nxp-nci-i2c driver in mainline.
>>> It detects/reads NFC tags using "nfctool".
>>>
>>> Signed-off-by: Gergo Koteles <[email protected]>
>>> ---
>> Next time include a changelog below this --- line detailing
>> what changed between revisions.
>>
> Okey. Thanks for the suggestion and the review.
>
>> Reviewed-by: Konrad Dybcio <[email protected]>
>>
>> Konrad
>>>   .../boot/dts/qcom/sdm845-oneplus-common.dtsi  | 39 +++++++++++++++++++
>>>   1 file changed, 39 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>>> b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>>> index 64638ea94db7..5e45801031d8 100644
>>> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>>> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
>>> @@ -380,6 +380,24 @@ zap-shader {
>>>       };
>>>   };
>>> +&i2c3 {
>>> +    clock-frequency = <400000>;
>>> +    status = "okay";
>>> +
>>> +    nfc@28 {
>>> +        compatible = "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_int_active &nfc_enable_active
>>> &nfc_firmware_active>;
>>> +        pinctrl-names = "default";
>>> +    };
>>> +};
>>> +
>>>   &i2c10 {
>>>       status = "okay";
>>>       clock-frequency = <100000>;
>>> @@ -753,6 +771,27 @@ &usb_1_hsphy {
>>>   &tlmm {
>>>       gpio-reserved-ranges = <0 4>, <81 4>;
>>> +    nfc_int_active: nfc-int-active-state {
>>> +        pins = "gpio63";
>>> +        function = "gpio";
>>> +        drive-strength = <2>;
>>> +        bias-pull-up;
>>> +    };
>>> +
>>> +    nfc_enable_active: nfc-enable-active-state {
>>> +        pins = "gpio12";
>>> +        function = "gpio";
>>> +        drive-strength = <2>;
>>> +        bias-pull-up;
>>> +    };
>>> +
>>> +    nfc_firmware_active: nfc-firmware-active-state {
>>> +        pins = "gpio62";
>>> +        function = "gpio";
>>> +        drive-strength = <2>;
>>> +        bias-pull-up;
>>> +    };
>>> +
>>>       tri_state_key_default: tri-state-key-default-state {
>>>           pins = "gpio40", "gpio42", "gpio26";
>>>           function = "gpio";
>
Hi,

Please disregard this patch. Although it can detect the tags and the
tags type, the full readout does not work. I will send a new version
when I figure out what's wrong.

Thanks