19c3c4176SSimon Horman# SPDX-License-Identifier: GPL-2.0 29c3c4176SSimon Horman%YAML 1.2 39c3c4176SSimon Horman--- 49c3c4176SSimon Horman$id: http://devicetree.org/schemas/spi/renesas,sh-msiof.yaml# 59c3c4176SSimon Horman$schema: http://devicetree.org/meta-schemas/core.yaml# 69c3c4176SSimon Horman 7*74902730SKuninori Morimototitle: Renesas MSIOF SPI / I2S controller 89c3c4176SSimon Horman 99c3c4176SSimon Hormanmaintainers: 109c3c4176SSimon Horman - Geert Uytterhoeven <geert+renesas@glider.be> 119c3c4176SSimon Horman 129c3c4176SSimon Hormanproperties: 139c3c4176SSimon Horman compatible: 149c3c4176SSimon Horman oneOf: 159c3c4176SSimon Horman - items: 169c3c4176SSimon Horman - const: renesas,msiof-sh73a0 # SH-Mobile AG5 179c3c4176SSimon Horman - const: renesas,sh-mobile-msiof # generic SH-Mobile compatible 189c3c4176SSimon Horman # device 199c3c4176SSimon Horman - items: 209c3c4176SSimon Horman - enum: 216383b118SLad Prabhakar - renesas,msiof-r8a7742 # RZ/G1H 229c3c4176SSimon Horman - renesas,msiof-r8a7743 # RZ/G1M 239c3c4176SSimon Horman - renesas,msiof-r8a7744 # RZ/G1N 249c3c4176SSimon Horman - renesas,msiof-r8a7745 # RZ/G1E 259c3c4176SSimon Horman - renesas,msiof-r8a77470 # RZ/G1C 269c3c4176SSimon Horman - renesas,msiof-r8a7790 # R-Car H2 279c3c4176SSimon Horman - renesas,msiof-r8a7791 # R-Car M2-W 289c3c4176SSimon Horman - renesas,msiof-r8a7792 # R-Car V2H 299c3c4176SSimon Horman - renesas,msiof-r8a7793 # R-Car M2-N 309c3c4176SSimon Horman - renesas,msiof-r8a7794 # R-Car E2 319c3c4176SSimon Horman - const: renesas,rcar-gen2-msiof # generic R-Car Gen2 and RZ/G1 329c3c4176SSimon Horman # compatible device 339c3c4176SSimon Horman - items: 349c3c4176SSimon Horman - enum: 359c3c4176SSimon Horman - renesas,msiof-r8a774a1 # RZ/G2M 3697f41c68SFabrizio Castro - renesas,msiof-r8a774b1 # RZ/G2N 379c3c4176SSimon Horman - renesas,msiof-r8a774c0 # RZ/G2E 38b4f7f5f5SLad Prabhakar - renesas,msiof-r8a774e1 # RZ/G2H 399c3c4176SSimon Horman - renesas,msiof-r8a7795 # R-Car H3 409c3c4176SSimon Horman - renesas,msiof-r8a7796 # R-Car M3-W 41aef161f4SGeert Uytterhoeven - renesas,msiof-r8a77961 # R-Car M3-W+ 429c3c4176SSimon Horman - renesas,msiof-r8a77965 # R-Car M3-N 439c3c4176SSimon Horman - renesas,msiof-r8a77970 # R-Car V3M 449c3c4176SSimon Horman - renesas,msiof-r8a77980 # R-Car V3H 459c3c4176SSimon Horman - renesas,msiof-r8a77990 # R-Car E3 469c3c4176SSimon Horman - renesas,msiof-r8a77995 # R-Car D3 479c3c4176SSimon Horman - const: renesas,rcar-gen3-msiof # generic R-Car Gen3 and RZ/G2 489c3c4176SSimon Horman # compatible device 499c3c4176SSimon Horman - items: 50e1e62f05SWolfram Sang - enum: 51b076fdd0SWolfram Sang - renesas,msiof-r8a779a0 # R-Car V3U 52e1e62f05SWolfram Sang - renesas,msiof-r8a779f0 # R-Car S4-8 53aa69dc65SGeert Uytterhoeven - renesas,msiof-r8a779g0 # R-Car V4H 541f48cbd6SGeert Uytterhoeven - renesas,msiof-r8a779h0 # R-Car V4M 55e1e62f05SWolfram Sang - const: renesas,rcar-gen4-msiof # generic R-Car Gen4 56e1e62f05SWolfram Sang # compatible device 57e1e62f05SWolfram Sang - items: 589c3c4176SSimon Horman - const: renesas,sh-msiof # deprecated 599c3c4176SSimon Horman 609c3c4176SSimon Horman reg: 619c3c4176SSimon Horman minItems: 1 629c3c4176SSimon Horman maxItems: 2 639c3c4176SSimon Horman oneOf: 649c3c4176SSimon Horman - items: 659c3c4176SSimon Horman - description: CPU and DMA engine registers 669c3c4176SSimon Horman - items: 679c3c4176SSimon Horman - description: CPU registers 689c3c4176SSimon Horman - description: DMA engine registers 699c3c4176SSimon Horman 709c3c4176SSimon Horman interrupts: 719c3c4176SSimon Horman maxItems: 1 729c3c4176SSimon Horman 739c3c4176SSimon Horman clocks: 749c3c4176SSimon Horman maxItems: 1 759c3c4176SSimon Horman 76f4d38103SLad Prabhakar power-domains: 77f4d38103SLad Prabhakar maxItems: 1 78f4d38103SLad Prabhakar 79f4d38103SLad Prabhakar resets: 80f4d38103SLad Prabhakar maxItems: 1 81f4d38103SLad Prabhakar 829c3c4176SSimon Horman num-cs: 839c3c4176SSimon Horman description: | 849c3c4176SSimon Horman Total number of chip selects (default is 1). 859c3c4176SSimon Horman Up to 3 native chip selects are supported: 869c3c4176SSimon Horman 0: MSIOF_SYNC 879c3c4176SSimon Horman 1: MSIOF_SS1 889c3c4176SSimon Horman 2: MSIOF_SS2 899c3c4176SSimon Horman Hardware limitations related to chip selects: 909c3c4176SSimon Horman - Native chip selects are always deasserted in between transfers 919c3c4176SSimon Horman that are part of the same message. Use cs-gpios to work around 929c3c4176SSimon Horman this. 939c3c4176SSimon Horman - All slaves using native chip selects must use the same spi-cs-high 949c3c4176SSimon Horman configuration. Use cs-gpios to work around this. 959c3c4176SSimon Horman - When using GPIO chip selects, at least one native chip select must 969c3c4176SSimon Horman be left unused, as it will be driven anyway. 979c3c4176SSimon Horman minimum: 1 989c3c4176SSimon Horman maximum: 3 999c3c4176SSimon Horman default: 1 1009c3c4176SSimon Horman 1019c3c4176SSimon Horman dmas: 1029c3c4176SSimon Horman minItems: 2 1039c3c4176SSimon Horman maxItems: 4 1049c3c4176SSimon Horman 1059c3c4176SSimon Horman dma-names: 1069c3c4176SSimon Horman minItems: 2 1079c3c4176SSimon Horman maxItems: 4 1089c3c4176SSimon Horman items: 1099c3c4176SSimon Horman enum: [ tx, rx ] 1109c3c4176SSimon Horman 1119c3c4176SSimon Horman renesas,dtdl: 1129c3c4176SSimon Horman description: delay sync signal (setup) in transmit mode. 1133d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 1143d21a460SRob Herring enum: 1159c3c4176SSimon Horman - 0 # no bit delay 1169c3c4176SSimon Horman - 50 # 0.5-clock-cycle delay 1179c3c4176SSimon Horman - 100 # 1-clock-cycle delay 1189c3c4176SSimon Horman - 150 # 1.5-clock-cycle delay 1199c3c4176SSimon Horman - 200 # 2-clock-cycle delay 1209c3c4176SSimon Horman 1219c3c4176SSimon Horman renesas,syncdl: 1229c3c4176SSimon Horman description: delay sync signal (hold) in transmit mode 1233d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 1243d21a460SRob Herring enum: 1259c3c4176SSimon Horman - 0 # no bit delay 1269c3c4176SSimon Horman - 50 # 0.5-clock-cycle delay 1279c3c4176SSimon Horman - 100 # 1-clock-cycle delay 1289c3c4176SSimon Horman - 150 # 1.5-clock-cycle delay 1299c3c4176SSimon Horman - 200 # 2-clock-cycle delay 1309c3c4176SSimon Horman - 300 # 3-clock-cycle delay 1319c3c4176SSimon Horman 1329c3c4176SSimon Horman renesas,tx-fifo-size: 1339c3c4176SSimon Horman # deprecated for soctype-specific bindings 1349c3c4176SSimon Horman description: | 1359c3c4176SSimon Horman Override the default TX fifo size. Unit is words. Ignored if 0. 1363d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 1379c3c4176SSimon Horman default: 64 1389c3c4176SSimon Horman 1399c3c4176SSimon Horman renesas,rx-fifo-size: 1409c3c4176SSimon Horman # deprecated for soctype-specific bindings 1419c3c4176SSimon Horman description: | 1429c3c4176SSimon Horman Override the default RX fifo size. Unit is words. Ignored if 0. 1433d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 1449c3c4176SSimon Horman default: 64 1459c3c4176SSimon Horman 146*74902730SKuninori Morimoto # for MSIOF-I2S 147*74902730SKuninori Morimoto port: 148*74902730SKuninori Morimoto $ref: ../sound/audio-graph-port.yaml# 149*74902730SKuninori Morimoto unevaluatedProperties: false 150*74902730SKuninori Morimoto 1519c3c4176SSimon Hormanrequired: 1529c3c4176SSimon Horman - compatible 1539c3c4176SSimon Horman - reg 1549c3c4176SSimon Horman - interrupts 155a0dcd1ffSGeert Uytterhoeven - clocks 156a0dcd1ffSGeert Uytterhoeven - power-domains 1579c3c4176SSimon Horman 158*74902730SKuninori MorimotoallOf: 159*74902730SKuninori Morimoto # additional "required"" 160*74902730SKuninori Morimoto - if: 161a0dcd1ffSGeert Uytterhoeven not: 162a0dcd1ffSGeert Uytterhoeven properties: 163a0dcd1ffSGeert Uytterhoeven compatible: 164a0dcd1ffSGeert Uytterhoeven contains: 165a0dcd1ffSGeert Uytterhoeven const: renesas,sh-mobile-msiof 166a0dcd1ffSGeert Uytterhoeven then: 167a0dcd1ffSGeert Uytterhoeven required: 168a0dcd1ffSGeert Uytterhoeven - resets 169a0dcd1ffSGeert Uytterhoeven 170*74902730SKuninori Morimoto # If it doesn't have "port" node, it is "MSIOF-SPI" 171*74902730SKuninori Morimoto - if: 172*74902730SKuninori Morimoto not: 173*74902730SKuninori Morimoto required: 174*74902730SKuninori Morimoto - port 175*74902730SKuninori Morimoto then: 176*74902730SKuninori Morimoto allOf: 177*74902730SKuninori Morimoto - $ref: spi-controller.yaml# 178*74902730SKuninori Morimoto 1796fdc6e23SRob HerringunevaluatedProperties: false 1806fdc6e23SRob Herring 1819c3c4176SSimon Hormanexamples: 1829c3c4176SSimon Horman - | 183a0dcd1ffSGeert Uytterhoeven #include <dt-bindings/clock/r8a7791-cpg-mssr.h> 184a0dcd1ffSGeert Uytterhoeven #include <dt-bindings/interrupt-controller/arm-gic.h> 185a0dcd1ffSGeert Uytterhoeven #include <dt-bindings/power/r8a7791-sysc.h> 1869c3c4176SSimon Horman 1879c3c4176SSimon Horman msiof0: spi@e6e20000 { 1889c3c4176SSimon Horman compatible = "renesas,msiof-r8a7791", "renesas,rcar-gen2-msiof"; 189fba56184SRob Herring reg = <0xe6e20000 0x0064>; 190a0dcd1ffSGeert Uytterhoeven interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 191a0dcd1ffSGeert Uytterhoeven clocks = <&cpg CPG_MOD 000>; 1929c3c4176SSimon Horman dmas = <&dmac0 0x51>, <&dmac0 0x52>; 1939c3c4176SSimon Horman dma-names = "tx", "rx"; 194a0dcd1ffSGeert Uytterhoeven power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 195a0dcd1ffSGeert Uytterhoeven resets = <&cpg 0>; 1969c3c4176SSimon Horman #address-cells = <1>; 1979c3c4176SSimon Horman #size-cells = <0>; 1989c3c4176SSimon Horman }; 199