xref: /freebsd-src/sys/contrib/device-tree/Bindings/spi/fsl-spi.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* SPI (Serial Peripheral Interface)
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot- cell-index : QE SPI subblock index.
5*c66ec88fSEmmanuel Vadot		0: QE subblock SPI1
6*c66ec88fSEmmanuel Vadot		1: QE subblock SPI2
7*c66ec88fSEmmanuel Vadot- compatible : should be "fsl,spi" or "aeroflexgaisler,spictrl".
8*c66ec88fSEmmanuel Vadot- mode : the SPI operation mode, it can be "cpu" or "cpu-qe".
9*c66ec88fSEmmanuel Vadot- reg : Offset and length of the register set for the device
10*c66ec88fSEmmanuel Vadot- interrupts : <a b> where a is the interrupt number and b is a
11*c66ec88fSEmmanuel Vadot  field that represents an encoding of the sense and level
12*c66ec88fSEmmanuel Vadot  information for the interrupt.  This should be encoded based on
13*c66ec88fSEmmanuel Vadot  the information in section 2) depending on the type of interrupt
14*c66ec88fSEmmanuel Vadot  controller you have.
15*c66ec88fSEmmanuel Vadot- clock-frequency : input clock frequency to non FSL_SOC cores
16*c66ec88fSEmmanuel Vadot
17*c66ec88fSEmmanuel VadotOptional properties:
18*c66ec88fSEmmanuel Vadot- cs-gpios : specifies the gpio pins to be used for chipselects.
19*c66ec88fSEmmanuel Vadot  The gpios will be referred to as reg = <index> in the SPI child nodes.
20*c66ec88fSEmmanuel Vadot  If unspecified, a single SPI device without a chip select can be used.
21*c66ec88fSEmmanuel Vadot- fsl,spisel_boot : for the MPC8306 and MPC8309, specifies that the
22*c66ec88fSEmmanuel Vadot  SPISEL_BOOT signal is used as chip select for a slave device. Use
23*c66ec88fSEmmanuel Vadot  reg = <number of gpios> in the corresponding child node, i.e. 0 if
24*c66ec88fSEmmanuel Vadot  the cs-gpios property is not present.
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel VadotExample:
27*c66ec88fSEmmanuel Vadot	spi@4c0 {
28*c66ec88fSEmmanuel Vadot		cell-index = <0>;
29*c66ec88fSEmmanuel Vadot		compatible = "fsl,spi";
30*c66ec88fSEmmanuel Vadot		reg = <4c0 40>;
31*c66ec88fSEmmanuel Vadot		interrupts = <82 0>;
32*c66ec88fSEmmanuel Vadot		interrupt-parent = <700>;
33*c66ec88fSEmmanuel Vadot		mode = "cpu";
34*c66ec88fSEmmanuel Vadot		cs-gpios = <&gpio 18 1		// device reg=<0>
35*c66ec88fSEmmanuel Vadot			    &gpio 19 1>;	// device reg=<1>
36*c66ec88fSEmmanuel Vadot	};
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel Vadot
39*c66ec88fSEmmanuel Vadot* eSPI (Enhanced Serial Peripheral Interface)
40*c66ec88fSEmmanuel Vadot
41*c66ec88fSEmmanuel VadotRequired properties:
42*c66ec88fSEmmanuel Vadot- compatible : should be "fsl,mpc8536-espi".
43*c66ec88fSEmmanuel Vadot- reg : Offset and length of the register set for the device.
44*c66ec88fSEmmanuel Vadot- interrupts : should contain eSPI interrupt, the device has one interrupt.
45*c66ec88fSEmmanuel Vadot- fsl,espi-num-chipselects : the number of the chipselect signals.
46*c66ec88fSEmmanuel Vadot
47*c66ec88fSEmmanuel VadotOptional properties:
48*c66ec88fSEmmanuel Vadot- fsl,csbef: chip select assertion time in bits before frame starts
49*c66ec88fSEmmanuel Vadot- fsl,csaft: chip select negation time in bits after frame ends
50*c66ec88fSEmmanuel Vadot
51*c66ec88fSEmmanuel VadotExample:
52*c66ec88fSEmmanuel Vadot	spi@110000 {
53*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
54*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
55*c66ec88fSEmmanuel Vadot		compatible = "fsl,mpc8536-espi";
56*c66ec88fSEmmanuel Vadot		reg = <0x110000 0x1000>;
57*c66ec88fSEmmanuel Vadot		interrupts = <53 0x2>;
58*c66ec88fSEmmanuel Vadot		interrupt-parent = <&mpic>;
59*c66ec88fSEmmanuel Vadot		fsl,espi-num-chipselects = <4>;
60*c66ec88fSEmmanuel Vadot		fsl,csbef = <1>;
61*c66ec88fSEmmanuel Vadot		fsl,csaft = <1>;
62*c66ec88fSEmmanuel Vadot	};
63