blob: 9d9efeae3ff1c4dac70a5a9eca83643e21bbd9d3 [file] [log] [blame]
Qualcomm QCA199x NFC NCI device
Near Field Communication (NFC) device is based on NFC Controller Interface (NCI)
Required properties:
- compatible: "qcom,nfc-nci"
- reg: NCI i2c slave address.
- qcom,dis-gpio: specific gpio for hardware reset.
- qcom,irq-gpio: specific gpio for read interrupt.
- qcom,clk-src: nfc clock source ("BBCLK2", "RFCLK3", "GPCLK", "GPCLK2", ...)
- interrupt-parent: Should be phandle for the interrupt controller
that services interrupts for this device.
- interrupts: Nfc read interrupt,gpio-clk-req interrupt
Recommended properties:
- interrupt-names: names of interupts, should include "nfc_irq", used for reference
Optional properties:
- qcom,pwr-req-gpio: pmic gpio to vote for power to be supplied to the uicc
- qcom,clk-src-gpio: msm gpio clock,used ony if clock source is msm gpio
- qcom,clk-req-gpio: clk-req input gpio for MSM based clocks.
not used for pmic implementation
- qcom,clk-gpio: pmic or msm gpio on which bbclk2 signal is coming.
- pinctrl-names, pinctrl-0, pincntrl-1: references to our pincntrl settings
- clocks, clock-names: must contain the QCA1990's core clock.
note:
nfc with msm type clock sources (GPCLK and GPCLK 2) require qcom,clk-src-gpio and qcom,clk-req-gpio entries to work propperly.
nfc with pmic type clock sources (BBCLK2 RFCLK3) require the qcom,clk-gpio entry to function properly.
The nfcc needs a core clock supplied in order to respond to nci messages.
The driver currently votes for ref_clk if clock source is set to BBCLK2. Please ensure the clock indicated by clk-src is defined.
Example:
nfc-nci@e {
compatible = "qcom,nfc-nci";
reg = <0x0e>;
qcom,irq-gpio = <&msm_gpio 21 0x00>;
qcom,dis-gpio = <&msm_gpio 20 0x00>;
qcom,clk-src = "BBCLK2";
interrupt-parent = <&msm_gpio>;
interrupts = <21 0>;
interrupt-names = "nfc_irq";
pinctrl-names = "nfc_active","nfc_suspend";
pinctrl-0 = <&nfc_int_active &nfc_disable_active>;
pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>;
qcom,clk-gpio = <&pm8916_gpios 2 0>;
clocks = <&clock_rpm clk_bb_clk2_pin>;
clock-names = "ref_clk";
};