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: 41cc0f6e96SRob Herring - enum: 42cc0f6e96SRob Herring - SSPCLK 43cc0f6e96SRob Herring - sspclk 44cc0f6e96SRob Herring - const: apb_pclk 45cc0f6e96SRob Herring 46cc0f6e96SRob Herring pl022,autosuspend-delay: 47cc0f6e96SRob Herring description: delay in ms following transfer completion before the 48cc0f6e96SRob Herring runtime power management system suspends the device. A setting of 0 49cc0f6e96SRob Herring indicates no delay and the device will be suspended immediately. 50cc0f6e96SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 51cc0f6e96SRob Herring 52cc0f6e96SRob Herring pl022,rt: 53cc0f6e96SRob Herring description: indicates the controller should run the message pump with realtime 54cc0f6e96SRob Herring priority to minimise the transfer latency on the bus (boolean) 55cc0f6e96SRob Herring type: boolean 56cc0f6e96SRob Herring 57cc0f6e96SRob Herring dmas: 58cc0f6e96SRob Herring description: 59cc0f6e96SRob Herring Two or more DMA channel specifiers following the convention outlined 60cc0f6e96SRob Herring in bindings/dma/dma.txt 61cc0f6e96SRob Herring minItems: 2 62cc0f6e96SRob Herring maxItems: 32 63cc0f6e96SRob Herring 64cc0f6e96SRob Herring dma-names: 65cc0f6e96SRob Herring description: 66cc0f6e96SRob Herring There must be at least one channel named "tx" for transmit and named "rx" 67cc0f6e96SRob Herring for receive. 68cc0f6e96SRob Herring minItems: 2 69cc0f6e96SRob Herring maxItems: 32 70cc0f6e96SRob Herring additionalItems: true 71cc0f6e96SRob Herring items: 72cc0f6e96SRob Herring - const: rx 73cc0f6e96SRob Herring - const: tx 74cc0f6e96SRob Herring 75cc0f6e96SRob HerringpatternProperties: 76cc0f6e96SRob Herring "^[a-zA-Z][a-zA-Z0-9,+\\-._]{0,63}@[0-9a-f]+$": 77cc0f6e96SRob Herring type: object 78cc0f6e96SRob Herring # SPI slave nodes must be children of the SPI master node and can 79cc0f6e96SRob Herring # contain the following properties. 80cc0f6e96SRob Herring properties: 81cc0f6e96SRob Herring pl022,interface: 82cc0f6e96SRob Herring description: SPI interface type 83*3d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 84*3d21a460SRob Herring enum: 85cc0f6e96SRob Herring - 0 # SPI 86cc0f6e96SRob Herring - 1 # Texas Instruments Synchronous Serial Frame Format 87cc0f6e96SRob Herring - 2 # Microwire (Half Duplex) 88cc0f6e96SRob Herring 89cc0f6e96SRob Herring pl022,com-mode: 90cc0f6e96SRob Herring description: Specifies the transfer mode 91*3d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 92*3d21a460SRob Herring enum: 93cc0f6e96SRob Herring - 0 # interrupt mode 94cc0f6e96SRob Herring - 1 # polling mode 95cc0f6e96SRob Herring - 2 # DMA mode 96cc0f6e96SRob Herring default: 1 97cc0f6e96SRob Herring 98cc0f6e96SRob Herring pl022,rx-level-trig: 99cc0f6e96SRob Herring description: Rx FIFO watermark level 100*3d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 101*3d21a460SRob Herring minimum: 0 102cc0f6e96SRob Herring maximum: 4 103cc0f6e96SRob Herring 104cc0f6e96SRob Herring pl022,tx-level-trig: 105cc0f6e96SRob Herring description: Tx FIFO watermark level 106*3d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 107*3d21a460SRob Herring minimum: 0 108cc0f6e96SRob Herring maximum: 4 109cc0f6e96SRob Herring 110cc0f6e96SRob Herring pl022,ctrl-len: 111cc0f6e96SRob Herring description: Microwire interface - Control length 112*3d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 113*3d21a460SRob Herring minimum: 0x03 114cc0f6e96SRob Herring maximum: 0x1f 115cc0f6e96SRob Herring 116cc0f6e96SRob Herring pl022,wait-state: 117cc0f6e96SRob Herring description: Microwire interface - Wait state 118*3d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 119*3d21a460SRob Herring enum: [0, 1] 120cc0f6e96SRob Herring 121cc0f6e96SRob Herring pl022,duplex: 122cc0f6e96SRob Herring description: Microwire interface - Full/Half duplex 123*3d21a460SRob Herring $ref: "/schemas/types.yaml#/definitions/uint32" 124*3d21a460SRob Herring enum: [0, 1] 125cc0f6e96SRob Herring 126cc0f6e96SRob Herringrequired: 127cc0f6e96SRob Herring - compatible 128cc0f6e96SRob Herring - reg 129cc0f6e96SRob Herring - interrupts 130cc0f6e96SRob Herring 131cc0f6e96SRob Herringexamples: 132cc0f6e96SRob Herring - | 133cc0f6e96SRob Herring spi@e0100000 { 134cc0f6e96SRob Herring compatible = "arm,pl022", "arm,primecell"; 135cc0f6e96SRob Herring reg = <0xe0100000 0x1000>; 136cc0f6e96SRob Herring #address-cells = <1>; 137cc0f6e96SRob Herring #size-cells = <0>; 138cc0f6e96SRob Herring interrupts = <0 31 0x4>; 139cc0f6e96SRob Herring dmas = <&dma_controller 23 1>, 140cc0f6e96SRob Herring <&dma_controller 24 0>; 141cc0f6e96SRob Herring dma-names = "rx", "tx"; 142cc0f6e96SRob Herring 143cc0f6e96SRob Herring m25p80@1 { 144cc0f6e96SRob Herring compatible = "st,m25p80"; 145cc0f6e96SRob Herring reg = <1>; 146cc0f6e96SRob Herring spi-max-frequency = <12000000>; 147cc0f6e96SRob Herring spi-cpol; 148cc0f6e96SRob Herring spi-cpha; 149cc0f6e96SRob Herring pl022,interface = <0>; 150cc0f6e96SRob Herring pl022,com-mode = <0x2>; 151cc0f6e96SRob Herring pl022,rx-level-trig = <0>; 152cc0f6e96SRob Herring pl022,tx-level-trig = <0>; 153cc0f6e96SRob Herring pl022,ctrl-len = <0x11>; 154cc0f6e96SRob Herring pl022,wait-state = <0>; 155cc0f6e96SRob Herring pl022,duplex = <0>; 156cc0f6e96SRob Herring }; 157cc0f6e96SRob Herring }; 158cc0f6e96SRob Herring... 159