1cc0f6e96SRob Herring# SPDX-License-Identifier: GPL-2.0 2cc0f6e96SRob Herring%YAML 1.2 3cc0f6e96SRob Herring--- 4cc0f6e96SRob Herring$id: http://devicetree.org/schemas/spi/spi-pl022.yaml# 5cc0f6e96SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml# 6cc0f6e96SRob Herring 7cc0f6e96SRob Herringtitle: ARM PL022 SPI controller 8cc0f6e96SRob Herring 9cc0f6e96SRob Herringmaintainers: 10cc0f6e96SRob Herring - Linus Walleij <linus.walleij@linaro.org> 11cc0f6e96SRob Herring 12cc0f6e96SRob HerringallOf: 13cc0f6e96SRob Herring - $ref: "spi-controller.yaml#" 14cc0f6e96SRob Herring 15cc0f6e96SRob Herring# We need a select here so we don't match all nodes with 'arm,primecell' 16cc0f6e96SRob Herringselect: 17cc0f6e96SRob Herring properties: 18cc0f6e96SRob Herring compatible: 19cc0f6e96SRob Herring contains: 20cc0f6e96SRob Herring const: arm,pl022 21cc0f6e96SRob Herring required: 22cc0f6e96SRob Herring - compatible 23cc0f6e96SRob Herring 24cc0f6e96SRob Herringproperties: 25cc0f6e96SRob Herring compatible: 26cc0f6e96SRob Herring items: 27cc0f6e96SRob Herring - const: arm,pl022 28cc0f6e96SRob Herring - const: arm,primecell 29cc0f6e96SRob Herring 30cc0f6e96SRob Herring reg: 31cc0f6e96SRob Herring maxItems: 1 32cc0f6e96SRob Herring 33cc0f6e96SRob Herring interrupts: 34cc0f6e96SRob Herring maxItems: 1 35cc0f6e96SRob Herring 36cc0f6e96SRob Herring clocks: 37cc0f6e96SRob Herring maxItems: 2 38cc0f6e96SRob Herring 39cc0f6e96SRob Herring clock-names: 40cc0f6e96SRob Herring items: 411889421aSKuldeep Singh - const: sspclk 42cc0f6e96SRob Herring - const: apb_pclk 43cc0f6e96SRob Herring 44cc0f6e96SRob Herring pl022,autosuspend-delay: 45cc0f6e96SRob Herring description: delay in ms following transfer completion before the 46cc0f6e96SRob Herring runtime power management system suspends the device. A setting of 0 47cc0f6e96SRob Herring indicates no delay and the device will be suspended immediately. 48cc0f6e96SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 49cc0f6e96SRob Herring 50cc0f6e96SRob Herring pl022,rt: 51cc0f6e96SRob Herring description: indicates the controller should run the message pump with realtime 52cc0f6e96SRob Herring priority to minimise the transfer latency on the bus (boolean) 53cc0f6e96SRob Herring type: boolean 54cc0f6e96SRob Herring 55cc0f6e96SRob Herring dmas: 56cc0f6e96SRob Herring description: 57cc0f6e96SRob Herring Two or more DMA channel specifiers following the convention outlined 58cc0f6e96SRob Herring in bindings/dma/dma.txt 59cc0f6e96SRob Herring minItems: 2 60cc0f6e96SRob Herring maxItems: 32 61cc0f6e96SRob Herring 62cc0f6e96SRob Herring dma-names: 63cc0f6e96SRob Herring description: 64cc0f6e96SRob Herring There must be at least one channel named "tx" for transmit and named "rx" 65cc0f6e96SRob Herring for receive. 66cc0f6e96SRob Herring minItems: 2 67cc0f6e96SRob Herring maxItems: 32 68cc0f6e96SRob Herring additionalItems: true 69cc0f6e96SRob Herring items: 70cc0f6e96SRob Herring - const: rx 71cc0f6e96SRob Herring - const: tx 72cc0f6e96SRob Herring 73d94758b3SLinus Walleij resets: 74d94758b3SLinus Walleij maxItems: 1 75d94758b3SLinus Walleij 76cc0f6e96SRob HerringpatternProperties: 77cc0f6e96SRob Herring "^[a-zA-Z][a-zA-Z0-9,+\\-._]{0,63}@[0-9a-f]+$": 78cc0f6e96SRob Herring type: object 79cc0f6e96SRob Herring # SPI slave nodes must be children of the SPI master node and can 80cc0f6e96SRob Herring # contain the following properties. 81cc0f6e96SRob Herring properties: 82cc0f6e96SRob Herring pl022,interface: 83cc0f6e96SRob Herring description: SPI interface type 843d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 853d21a460SRob Herring enum: 86cc0f6e96SRob Herring - 0 # SPI 87cc0f6e96SRob Herring - 1 # Texas Instruments Synchronous Serial Frame Format 88cc0f6e96SRob Herring - 2 # Microwire (Half Duplex) 89cc0f6e96SRob Herring 90cc0f6e96SRob Herring pl022,com-mode: 91cc0f6e96SRob Herring description: Specifies the transfer mode 923d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 933d21a460SRob Herring enum: 94cc0f6e96SRob Herring - 0 # interrupt mode 95cc0f6e96SRob Herring - 1 # polling mode 96cc0f6e96SRob Herring - 2 # DMA mode 97cc0f6e96SRob Herring default: 1 98cc0f6e96SRob Herring 99cc0f6e96SRob Herring pl022,rx-level-trig: 100cc0f6e96SRob Herring description: Rx FIFO watermark level 1013d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 1023d21a460SRob Herring minimum: 0 103cc0f6e96SRob Herring maximum: 4 104cc0f6e96SRob Herring 105cc0f6e96SRob Herring pl022,tx-level-trig: 106cc0f6e96SRob Herring description: Tx FIFO watermark level 1073d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 1083d21a460SRob Herring minimum: 0 109cc0f6e96SRob Herring maximum: 4 110cc0f6e96SRob Herring 111cc0f6e96SRob Herring pl022,ctrl-len: 112cc0f6e96SRob Herring description: Microwire interface - Control length 1133d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 1143d21a460SRob Herring minimum: 0x03 115cc0f6e96SRob Herring maximum: 0x1f 116cc0f6e96SRob Herring 117cc0f6e96SRob Herring pl022,wait-state: 118cc0f6e96SRob Herring description: Microwire interface - Wait state 1193d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 1203d21a460SRob Herring enum: [0, 1] 121cc0f6e96SRob Herring 122cc0f6e96SRob Herring pl022,duplex: 123cc0f6e96SRob Herring description: Microwire interface - Full/Half duplex 1243d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 1253d21a460SRob Herring enum: [0, 1] 126cc0f6e96SRob Herring 127cc0f6e96SRob Herringrequired: 128cc0f6e96SRob Herring - compatible 129cc0f6e96SRob Herring - reg 130cc0f6e96SRob Herring - interrupts 131cc0f6e96SRob Herring 1326fdc6e23SRob HerringunevaluatedProperties: false 1336fdc6e23SRob Herring 134cc0f6e96SRob Herringexamples: 135cc0f6e96SRob Herring - | 136cc0f6e96SRob Herring spi@e0100000 { 137cc0f6e96SRob Herring compatible = "arm,pl022", "arm,primecell"; 138cc0f6e96SRob Herring reg = <0xe0100000 0x1000>; 139cc0f6e96SRob Herring #address-cells = <1>; 140cc0f6e96SRob Herring #size-cells = <0>; 141cc0f6e96SRob Herring interrupts = <0 31 0x4>; 142cc0f6e96SRob Herring dmas = <&dma_controller 23 1>, 143cc0f6e96SRob Herring <&dma_controller 24 0>; 144cc0f6e96SRob Herring dma-names = "rx", "tx"; 145cc0f6e96SRob Herring 146*673283a3SKrzysztof Kozlowski flash@1 { 147cc0f6e96SRob Herring compatible = "st,m25p80"; 148cc0f6e96SRob Herring reg = <1>; 149cc0f6e96SRob Herring spi-max-frequency = <12000000>; 150cc0f6e96SRob Herring spi-cpol; 151cc0f6e96SRob Herring spi-cpha; 152cc0f6e96SRob Herring pl022,interface = <0>; 153cc0f6e96SRob Herring pl022,com-mode = <0x2>; 154cc0f6e96SRob Herring pl022,rx-level-trig = <0>; 155cc0f6e96SRob Herring pl022,tx-level-trig = <0>; 156cc0f6e96SRob Herring pl022,ctrl-len = <0x11>; 157cc0f6e96SRob Herring pl022,wait-state = <0>; 158cc0f6e96SRob Herring pl022,duplex = <0>; 159cc0f6e96SRob Herring }; 160cc0f6e96SRob Herring }; 161cc0f6e96SRob Herring... 162