1*5def4c47SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*5def4c47SEmmanuel Vadot%YAML 1.2 3*5def4c47SEmmanuel Vadot--- 4*5def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/dma/intel,ldma.yaml# 5*5def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*5def4c47SEmmanuel Vadot 7*5def4c47SEmmanuel Vadottitle: Lightning Mountain centralized DMA controllers. 8*5def4c47SEmmanuel Vadot 9*5def4c47SEmmanuel Vadotmaintainers: 10*5def4c47SEmmanuel Vadot - chuanhua.lei@intel.com 11*5def4c47SEmmanuel Vadot - mallikarjunax.reddy@intel.com 12*5def4c47SEmmanuel Vadot 13*5def4c47SEmmanuel VadotallOf: 14*5def4c47SEmmanuel Vadot - $ref: "dma-controller.yaml#" 15*5def4c47SEmmanuel Vadot 16*5def4c47SEmmanuel Vadotproperties: 17*5def4c47SEmmanuel Vadot compatible: 18*5def4c47SEmmanuel Vadot enum: 19*5def4c47SEmmanuel Vadot - intel,lgm-cdma 20*5def4c47SEmmanuel Vadot - intel,lgm-dma2tx 21*5def4c47SEmmanuel Vadot - intel,lgm-dma1rx 22*5def4c47SEmmanuel Vadot - intel,lgm-dma1tx 23*5def4c47SEmmanuel Vadot - intel,lgm-dma0tx 24*5def4c47SEmmanuel Vadot - intel,lgm-dma3 25*5def4c47SEmmanuel Vadot - intel,lgm-toe-dma30 26*5def4c47SEmmanuel Vadot - intel,lgm-toe-dma31 27*5def4c47SEmmanuel Vadot 28*5def4c47SEmmanuel Vadot reg: 29*5def4c47SEmmanuel Vadot maxItems: 1 30*5def4c47SEmmanuel Vadot 31*5def4c47SEmmanuel Vadot "#dma-cells": 32*5def4c47SEmmanuel Vadot const: 3 33*5def4c47SEmmanuel Vadot description: 34*5def4c47SEmmanuel Vadot The first cell is the peripheral's DMA request line. 35*5def4c47SEmmanuel Vadot The second cell is the peripheral's (port) number corresponding to the channel. 36*5def4c47SEmmanuel Vadot The third cell is the burst length of the channel. 37*5def4c47SEmmanuel Vadot 38*5def4c47SEmmanuel Vadot dma-channels: 39*5def4c47SEmmanuel Vadot minimum: 1 40*5def4c47SEmmanuel Vadot maximum: 16 41*5def4c47SEmmanuel Vadot 42*5def4c47SEmmanuel Vadot dma-channel-mask: 43*5def4c47SEmmanuel Vadot maxItems: 1 44*5def4c47SEmmanuel Vadot 45*5def4c47SEmmanuel Vadot clocks: 46*5def4c47SEmmanuel Vadot maxItems: 1 47*5def4c47SEmmanuel Vadot 48*5def4c47SEmmanuel Vadot resets: 49*5def4c47SEmmanuel Vadot maxItems: 1 50*5def4c47SEmmanuel Vadot 51*5def4c47SEmmanuel Vadot reset-names: 52*5def4c47SEmmanuel Vadot items: 53*5def4c47SEmmanuel Vadot - const: ctrl 54*5def4c47SEmmanuel Vadot 55*5def4c47SEmmanuel Vadot interrupts: 56*5def4c47SEmmanuel Vadot maxItems: 1 57*5def4c47SEmmanuel Vadot 58*5def4c47SEmmanuel Vadot intel,dma-poll-cnt: 59*5def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 60*5def4c47SEmmanuel Vadot description: 61*5def4c47SEmmanuel Vadot DMA descriptor polling counter is used to control the poling mechanism 62*5def4c47SEmmanuel Vadot for the descriptor fetching for all channels. 63*5def4c47SEmmanuel Vadot 64*5def4c47SEmmanuel Vadot intel,dma-byte-en: 65*5def4c47SEmmanuel Vadot type: boolean 66*5def4c47SEmmanuel Vadot description: 67*5def4c47SEmmanuel Vadot DMA byte enable is only valid for DMA write(RX). 68*5def4c47SEmmanuel Vadot Byte enable(1) means DMA write will be based on the number of dwords 69*5def4c47SEmmanuel Vadot instead of the whole burst. 70*5def4c47SEmmanuel Vadot 71*5def4c47SEmmanuel Vadot intel,dma-drb: 72*5def4c47SEmmanuel Vadot type: boolean 73*5def4c47SEmmanuel Vadot description: 74*5def4c47SEmmanuel Vadot DMA descriptor read back to make sure data and desc synchronization. 75*5def4c47SEmmanuel Vadot 76*5def4c47SEmmanuel Vadot intel,dma-dburst-wr: 77*5def4c47SEmmanuel Vadot type: boolean 78*5def4c47SEmmanuel Vadot description: 79*5def4c47SEmmanuel Vadot Enable RX dynamic burst write. When it is enabled, the DMA does RX dynamic burst; 80*5def4c47SEmmanuel Vadot if it is disabled, the DMA RX will still support programmable fixed burst size of 2,4,8,16. 81*5def4c47SEmmanuel Vadot It only applies to RX DMA and memcopy DMA. 82*5def4c47SEmmanuel Vadot 83*5def4c47SEmmanuel Vadotrequired: 84*5def4c47SEmmanuel Vadot - compatible 85*5def4c47SEmmanuel Vadot - reg 86*5def4c47SEmmanuel Vadot 87*5def4c47SEmmanuel VadotadditionalProperties: false 88*5def4c47SEmmanuel Vadot 89*5def4c47SEmmanuel Vadotexamples: 90*5def4c47SEmmanuel Vadot - | 91*5def4c47SEmmanuel Vadot dma0: dma-controller@e0e00000 { 92*5def4c47SEmmanuel Vadot compatible = "intel,lgm-cdma"; 93*5def4c47SEmmanuel Vadot reg = <0xe0e00000 0x1000>; 94*5def4c47SEmmanuel Vadot #dma-cells = <3>; 95*5def4c47SEmmanuel Vadot dma-channels = <16>; 96*5def4c47SEmmanuel Vadot dma-channel-mask = <0xFFFF>; 97*5def4c47SEmmanuel Vadot interrupt-parent = <&ioapic1>; 98*5def4c47SEmmanuel Vadot interrupts = <82 1>; 99*5def4c47SEmmanuel Vadot resets = <&rcu0 0x30 0>; 100*5def4c47SEmmanuel Vadot reset-names = "ctrl"; 101*5def4c47SEmmanuel Vadot clocks = <&cgu0 80>; 102*5def4c47SEmmanuel Vadot intel,dma-poll-cnt = <4>; 103*5def4c47SEmmanuel Vadot intel,dma-byte-en; 104*5def4c47SEmmanuel Vadot intel,dma-drb; 105*5def4c47SEmmanuel Vadot }; 106*5def4c47SEmmanuel Vadot - | 107*5def4c47SEmmanuel Vadot dma3: dma-controller@ec800000 { 108*5def4c47SEmmanuel Vadot compatible = "intel,lgm-dma3"; 109*5def4c47SEmmanuel Vadot reg = <0xec800000 0x1000>; 110*5def4c47SEmmanuel Vadot clocks = <&cgu0 71>; 111*5def4c47SEmmanuel Vadot resets = <&rcu0 0x10 9>; 112*5def4c47SEmmanuel Vadot #dma-cells = <3>; 113*5def4c47SEmmanuel Vadot intel,dma-poll-cnt = <16>; 114*5def4c47SEmmanuel Vadot intel,dma-byte-en; 115*5def4c47SEmmanuel Vadot intel,dma-dburst-wr; 116*5def4c47SEmmanuel Vadot }; 117