1*9c3c4176SSimon Horman# SPDX-License-Identifier: GPL-2.0 2*9c3c4176SSimon Horman%YAML 1.2 3*9c3c4176SSimon Horman--- 4*9c3c4176SSimon Horman$id: http://devicetree.org/schemas/spi/renesas,sh-msiof.yaml# 5*9c3c4176SSimon Horman$schema: http://devicetree.org/meta-schemas/core.yaml# 6*9c3c4176SSimon Horman 7*9c3c4176SSimon Hormantitle: Renesas MSIOF SPI controller 8*9c3c4176SSimon Horman 9*9c3c4176SSimon Hormanmaintainers: 10*9c3c4176SSimon Horman - Geert Uytterhoeven <geert+renesas@glider.be> 11*9c3c4176SSimon Horman 12*9c3c4176SSimon HormanallOf: 13*9c3c4176SSimon Horman - $ref: spi-controller.yaml# 14*9c3c4176SSimon Horman 15*9c3c4176SSimon Hormanproperties: 16*9c3c4176SSimon Horman compatible: 17*9c3c4176SSimon Horman oneOf: 18*9c3c4176SSimon Horman - items: 19*9c3c4176SSimon Horman - const: renesas,msiof-sh73a0 # SH-Mobile AG5 20*9c3c4176SSimon Horman - const: renesas,sh-mobile-msiof # generic SH-Mobile compatible 21*9c3c4176SSimon Horman # device 22*9c3c4176SSimon Horman - items: 23*9c3c4176SSimon Horman - enum: 24*9c3c4176SSimon Horman - renesas,msiof-r8a7743 # RZ/G1M 25*9c3c4176SSimon Horman - renesas,msiof-r8a7744 # RZ/G1N 26*9c3c4176SSimon Horman - renesas,msiof-r8a7745 # RZ/G1E 27*9c3c4176SSimon Horman - renesas,msiof-r8a77470 # RZ/G1C 28*9c3c4176SSimon Horman - renesas,msiof-r8a7790 # R-Car H2 29*9c3c4176SSimon Horman - renesas,msiof-r8a7791 # R-Car M2-W 30*9c3c4176SSimon Horman - renesas,msiof-r8a7792 # R-Car V2H 31*9c3c4176SSimon Horman - renesas,msiof-r8a7793 # R-Car M2-N 32*9c3c4176SSimon Horman - renesas,msiof-r8a7794 # R-Car E2 33*9c3c4176SSimon Horman - const: renesas,rcar-gen2-msiof # generic R-Car Gen2 and RZ/G1 34*9c3c4176SSimon Horman # compatible device 35*9c3c4176SSimon Horman - items: 36*9c3c4176SSimon Horman - enum: 37*9c3c4176SSimon Horman - renesas,msiof-r8a774a1 # RZ/G2M 38*9c3c4176SSimon Horman - renesas,msiof-r8a774c0 # RZ/G2E 39*9c3c4176SSimon Horman - renesas,msiof-r8a7795 # R-Car H3 40*9c3c4176SSimon Horman - renesas,msiof-r8a7796 # R-Car M3-W 41*9c3c4176SSimon Horman - renesas,msiof-r8a77965 # R-Car M3-N 42*9c3c4176SSimon Horman - renesas,msiof-r8a77970 # R-Car V3M 43*9c3c4176SSimon Horman - renesas,msiof-r8a77980 # R-Car V3H 44*9c3c4176SSimon Horman - renesas,msiof-r8a77990 # R-Car E3 45*9c3c4176SSimon Horman - renesas,msiof-r8a77995 # R-Car D3 46*9c3c4176SSimon Horman - const: renesas,rcar-gen3-msiof # generic R-Car Gen3 and RZ/G2 47*9c3c4176SSimon Horman # compatible device 48*9c3c4176SSimon Horman - items: 49*9c3c4176SSimon Horman - const: renesas,sh-msiof # deprecated 50*9c3c4176SSimon Horman 51*9c3c4176SSimon Horman reg: 52*9c3c4176SSimon Horman minItems: 1 53*9c3c4176SSimon Horman maxItems: 2 54*9c3c4176SSimon Horman oneOf: 55*9c3c4176SSimon Horman - items: 56*9c3c4176SSimon Horman - description: CPU and DMA engine registers 57*9c3c4176SSimon Horman - items: 58*9c3c4176SSimon Horman - description: CPU registers 59*9c3c4176SSimon Horman - description: DMA engine registers 60*9c3c4176SSimon Horman 61*9c3c4176SSimon Horman interrupts: 62*9c3c4176SSimon Horman maxItems: 1 63*9c3c4176SSimon Horman 64*9c3c4176SSimon Horman clocks: 65*9c3c4176SSimon Horman maxItems: 1 66*9c3c4176SSimon Horman 67*9c3c4176SSimon Horman num-cs: 68*9c3c4176SSimon Horman description: | 69*9c3c4176SSimon Horman Total number of chip selects (default is 1). 70*9c3c4176SSimon Horman Up to 3 native chip selects are supported: 71*9c3c4176SSimon Horman 0: MSIOF_SYNC 72*9c3c4176SSimon Horman 1: MSIOF_SS1 73*9c3c4176SSimon Horman 2: MSIOF_SS2 74*9c3c4176SSimon Horman Hardware limitations related to chip selects: 75*9c3c4176SSimon Horman - Native chip selects are always deasserted in between transfers 76*9c3c4176SSimon Horman that are part of the same message. Use cs-gpios to work around 77*9c3c4176SSimon Horman this. 78*9c3c4176SSimon Horman - All slaves using native chip selects must use the same spi-cs-high 79*9c3c4176SSimon Horman configuration. Use cs-gpios to work around this. 80*9c3c4176SSimon Horman - When using GPIO chip selects, at least one native chip select must 81*9c3c4176SSimon Horman be left unused, as it will be driven anyway. 82*9c3c4176SSimon Horman minimum: 1 83*9c3c4176SSimon Horman maximum: 3 84*9c3c4176SSimon Horman default: 1 85*9c3c4176SSimon Horman 86*9c3c4176SSimon Horman dmas: 87*9c3c4176SSimon Horman minItems: 2 88*9c3c4176SSimon Horman maxItems: 4 89*9c3c4176SSimon Horman 90*9c3c4176SSimon Horman dma-names: 91*9c3c4176SSimon Horman minItems: 2 92*9c3c4176SSimon Horman maxItems: 4 93*9c3c4176SSimon Horman items: 94*9c3c4176SSimon Horman enum: [ tx, rx ] 95*9c3c4176SSimon Horman 96*9c3c4176SSimon Horman renesas,dtdl: 97*9c3c4176SSimon Horman description: delay sync signal (setup) in transmit mode. 98*9c3c4176SSimon Horman allOf: 99*9c3c4176SSimon Horman - $ref: /schemas/types.yaml#/definitions/uint32 100*9c3c4176SSimon Horman - enum: 101*9c3c4176SSimon Horman - 0 # no bit delay 102*9c3c4176SSimon Horman - 50 # 0.5-clock-cycle delay 103*9c3c4176SSimon Horman - 100 # 1-clock-cycle delay 104*9c3c4176SSimon Horman - 150 # 1.5-clock-cycle delay 105*9c3c4176SSimon Horman - 200 # 2-clock-cycle delay 106*9c3c4176SSimon Horman 107*9c3c4176SSimon Horman renesas,syncdl: 108*9c3c4176SSimon Horman description: delay sync signal (hold) in transmit mode 109*9c3c4176SSimon Horman allOf: 110*9c3c4176SSimon Horman - $ref: /schemas/types.yaml#/definitions/uint32 111*9c3c4176SSimon Horman - enum: 112*9c3c4176SSimon Horman - 0 # no bit delay 113*9c3c4176SSimon Horman - 50 # 0.5-clock-cycle delay 114*9c3c4176SSimon Horman - 100 # 1-clock-cycle delay 115*9c3c4176SSimon Horman - 150 # 1.5-clock-cycle delay 116*9c3c4176SSimon Horman - 200 # 2-clock-cycle delay 117*9c3c4176SSimon Horman - 300 # 3-clock-cycle delay 118*9c3c4176SSimon Horman 119*9c3c4176SSimon Horman renesas,tx-fifo-size: 120*9c3c4176SSimon Horman # deprecated for soctype-specific bindings 121*9c3c4176SSimon Horman description: | 122*9c3c4176SSimon Horman Override the default TX fifo size. Unit is words. Ignored if 0. 123*9c3c4176SSimon Horman allOf: 124*9c3c4176SSimon Horman - $ref: /schemas/types.yaml#/definitions/uint32 125*9c3c4176SSimon Horman - maxItems: 1 126*9c3c4176SSimon Horman default: 64 127*9c3c4176SSimon Horman 128*9c3c4176SSimon Horman renesas,rx-fifo-size: 129*9c3c4176SSimon Horman # deprecated for soctype-specific bindings 130*9c3c4176SSimon Horman description: | 131*9c3c4176SSimon Horman Override the default RX fifo size. Unit is words. Ignored if 0. 132*9c3c4176SSimon Horman allOf: 133*9c3c4176SSimon Horman - $ref: /schemas/types.yaml#/definitions/uint32 134*9c3c4176SSimon Horman - maxItems: 1 135*9c3c4176SSimon Horman default: 64 136*9c3c4176SSimon Horman 137*9c3c4176SSimon Hormanrequired: 138*9c3c4176SSimon Horman - compatible 139*9c3c4176SSimon Horman - reg 140*9c3c4176SSimon Horman - interrupts 141*9c3c4176SSimon Horman - '#address-cells' 142*9c3c4176SSimon Horman - '#size-cells' 143*9c3c4176SSimon Horman 144*9c3c4176SSimon Hormanexamples: 145*9c3c4176SSimon Horman - | 146*9c3c4176SSimon Horman #include <dt-bindings/clock/r8a7791-clock.h> 147*9c3c4176SSimon Horman #include <dt-bindings/interrupt-controller/irq.h> 148*9c3c4176SSimon Horman 149*9c3c4176SSimon Horman msiof0: spi@e6e20000 { 150*9c3c4176SSimon Horman compatible = "renesas,msiof-r8a7791", "renesas,rcar-gen2-msiof"; 151*9c3c4176SSimon Horman reg = <0 0xe6e20000 0 0x0064>; 152*9c3c4176SSimon Horman interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>; 153*9c3c4176SSimon Horman clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>; 154*9c3c4176SSimon Horman dmas = <&dmac0 0x51>, <&dmac0 0x52>; 155*9c3c4176SSimon Horman dma-names = "tx", "rx"; 156*9c3c4176SSimon Horman #address-cells = <1>; 157*9c3c4176SSimon Horman #size-cells = <0>; 158*9c3c4176SSimon Horman }; 159