1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/spi/spi-controller.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: SPI Controller Generic Binding 8 9maintainers: 10 - Mark Brown <broonie@kernel.org> 11 12description: | 13 SPI busses can be described with a node for the SPI controller device 14 and a set of child nodes for each SPI slave on the bus. The system SPI 15 controller may be described for use in SPI master mode or in SPI slave mode, 16 but not for both at the same time. 17 18properties: 19 $nodename: 20 pattern: "^spi(@.*|-[0-9a-f])*$" 21 22 "#address-cells": 23 const: 1 24 25 "#size-cells": 26 const: 0 27 28 cs-gpios: 29 description: | 30 GPIOs used as chip selects. 31 If that property is used, the number of chip selects will be 32 increased automatically with max(cs-gpios, hardware chip selects). 33 34 So if, for example, the controller has 4 CS lines, and the 35 cs-gpios looks like this 36 cs-gpios = <&gpio1 0 0>, <0>, <&gpio1 1 0>, <&gpio1 2 0>; 37 38 Then it should be configured so that num_chipselect = 4, with 39 the following mapping 40 cs0 : &gpio1 0 0 41 cs1 : native 42 cs2 : &gpio1 1 0 43 cs3 : &gpio1 2 0 44 45 num-cs: 46 $ref: /schemas/types.yaml#/definitions/uint32 47 description: 48 Total number of chip selects. 49 50 spi-slave: 51 $ref: /schemas/types.yaml#/definitions/flag 52 description: 53 The SPI controller acts as a slave, instead of a master. 54 55patternProperties: 56 "^slave$": 57 type: object 58 59 properties: 60 compatible: 61 description: 62 Compatible of the SPI device. 63 64 required: 65 - compatible 66 67 "^.*@[0-9a-f]+$": 68 type: object 69 70 properties: 71 compatible: 72 description: 73 Compatible of the SPI device. 74 75 reg: 76 minimum: 0 77 maximum: 256 78 description: 79 Chip select used by the device. 80 81 spi-3wire: 82 $ref: /schemas/types.yaml#/definitions/flag 83 description: 84 The device requires 3-wire mode. 85 86 spi-cpha: 87 $ref: /schemas/types.yaml#/definitions/flag 88 description: 89 The device requires shifted clock phase (CPHA) mode. 90 91 spi-cpol: 92 $ref: /schemas/types.yaml#/definitions/flag 93 description: 94 The device requires inverse clock polarity (CPOL) mode. 95 96 spi-cs-high: 97 $ref: /schemas/types.yaml#/definitions/flag 98 description: 99 The device requires the chip select active high. 100 101 spi-lsb-first: 102 $ref: /schemas/types.yaml#/definitions/flag 103 description: 104 The device requires the LSB first mode. 105 106 spi-max-frequency: 107 $ref: /schemas/types.yaml#/definitions/uint32 108 description: 109 Maximum SPI clocking speed of the device in Hz. 110 111 spi-rx-bus-width: 112 allOf: 113 - $ref: /schemas/types.yaml#/definitions/uint32 114 - enum: [ 1, 2, 4 ] 115 - default: 1 116 description: 117 Bus width to the SPI bus used for MISO. 118 119 spi-rx-delay-us: 120 description: 121 Delay, in microseconds, after a read transfer. 122 123 spi-tx-bus-width: 124 allOf: 125 - $ref: /schemas/types.yaml#/definitions/uint32 126 - enum: [ 1, 2, 4 ] 127 - default: 1 128 description: 129 Bus width to the SPI bus used for MOSI. 130 131 spi-tx-delay-us: 132 description: 133 Delay, in microseconds, after a write transfer. 134 135 required: 136 - compatible 137 - reg 138 139examples: 140 - | 141 spi@f00 { 142 #address-cells = <1>; 143 #size-cells = <0>; 144 compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; 145 reg = <0xf00 0x20>; 146 interrupts = <2 13 0 2 14 0>; 147 interrupt-parent = <&mpc5200_pic>; 148 149 ethernet-switch@0 { 150 compatible = "micrel,ks8995m"; 151 spi-max-frequency = <1000000>; 152 reg = <0>; 153 }; 154 155 codec@1 { 156 compatible = "ti,tlv320aic26"; 157 spi-max-frequency = <100000>; 158 reg = <1>; 159 }; 160 }; 161