Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

* Marvell International Ltd. NCI NFC Controller

Required properties:
- compatible: Should be:
  - "marvell,nfc-uart" or "mrvl,nfc-uart" for UART devices
  - "marvell,nfc-i2c" for I2C devices
  - "marvell,nfc-spi" for SPI devices

Optional SoC specific properties:
- pinctrl-names: Contains only one value - "default".
- pintctrl-0: Specifies the pin control groups used for this controller.
- reset-n-io: Output GPIO pin used to reset the chip (active low).
- hci-muxed: Specifies that the chip is muxing NCI over HCI frames.

Optional UART-based chip specific properties:
- flow-control: Specifies that the chip is using RTS/CTS.
- break-control: Specifies that the chip needs specific break management.

Optional I2C-based chip specific properties:
- i2c-int-falling: Specifies that the chip read event shall be trigged on
  		   falling edge.
- i2c-int-rising: Specifies that the chip read event shall be trigged on
  		  rising edge.

Example (for ARM-based BeagleBoard Black with 88W8887 on UART5):

&uart5 {
	status = "okay";

	nfcmrvluart: nfcmrvluart@5 {
		compatible = "marvell,nfc-uart";

		reset-n-io = <&gpio3 16 0>;

		hci-muxed;
		flow-control;
        }
};


Example (for ARM-based BeagleBoard Black with 88W8887 on I2C1):

&i2c1 {
	status = "okay";
	clock-frequency = <400000>;

	nfcmrvli2c0: i2c@1 {
		compatible = "marvell,nfc-i2c";

		reg = <0x8>;

		/* I2C INT configuration */
		interrupt-parent = <&gpio3>;
		interrupts = <21 0>;

		/* I2C INT trigger configuration */
		i2c-int-rising;

		/* Reset IO */
		reset-n-io = <&gpio3 19 0>;
	};
};


Example (for ARM-based BeagleBoard Black on SPI0):

&spi0 {

	mrvlnfcspi0: spi@0 {
		compatible = "marvell,nfc-spi";

		reg = <0>;

		/* SPI Bus configuration */
		spi-max-frequency = <3000000>;
		spi-cpha;
		spi-cpol;

		/* SPI INT configuration */
		interrupt-parent = <&gpio1>;
		interrupts = <17 0>;

		/* Reset IO */
       		reset-n-io = <&gpio3 19 0>;
	};
};