11d92cec6SPeter Ujfalusi# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2cc465fa2SPeter Ujfalusi# Copyright (C) 2020 Texas Instruments Incorporated 3cc465fa2SPeter Ujfalusi# Author: Peter Ujfalusi <peter.ujfalusi@ti.com> 41d92cec6SPeter Ujfalusi%YAML 1.2 51d92cec6SPeter Ujfalusi--- 61d92cec6SPeter Ujfalusi$id: http://devicetree.org/schemas/dma/ti/k3-pktdma.yaml# 71d92cec6SPeter Ujfalusi$schema: http://devicetree.org/meta-schemas/core.yaml# 81d92cec6SPeter Ujfalusi 9*a612130cSKrzysztof Kozlowskititle: Texas Instruments K3 DMSS PKTDMA 101d92cec6SPeter Ujfalusi 111d92cec6SPeter Ujfalusimaintainers: 12cc465fa2SPeter Ujfalusi - Peter Ujfalusi <peter.ujfalusi@gmail.com> 131d92cec6SPeter Ujfalusi 141d92cec6SPeter Ujfalusidescription: | 151d92cec6SPeter Ujfalusi The Packet DMA (PKTDMA) is intended to perform similar functions as the packet 161d92cec6SPeter Ujfalusi mode channels of K3 UDMA-P. 171d92cec6SPeter Ujfalusi PKTDMA only includes Split channels to service PSI-L based peripherals. 181d92cec6SPeter Ujfalusi 191d92cec6SPeter Ujfalusi The peripherals can be PSI-L native or legacy, non PSI-L native peripherals 201d92cec6SPeter Ujfalusi with PDMAs. PDMA is tasked to act as a bridge between the PSI-L fabric and the 211d92cec6SPeter Ujfalusi legacy peripheral. 221d92cec6SPeter Ujfalusi 231d92cec6SPeter Ujfalusi PDMAs can be configured via PKTDMA split channel's peer registers to match 241d92cec6SPeter Ujfalusi with the configuration of the legacy peripheral. 251d92cec6SPeter Ujfalusi 261d92cec6SPeter UjfalusiallOf: 271d92cec6SPeter Ujfalusi - $ref: /schemas/dma/dma-controller.yaml# 285f1e024cSRob Herring - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml# 291d92cec6SPeter Ujfalusi 301d92cec6SPeter Ujfalusiproperties: 311d92cec6SPeter Ujfalusi compatible: 321d92cec6SPeter Ujfalusi const: ti,am64-dmss-pktdma 331d92cec6SPeter Ujfalusi 341d92cec6SPeter Ujfalusi "#dma-cells": 351d92cec6SPeter Ujfalusi const: 2 361d92cec6SPeter Ujfalusi description: | 371d92cec6SPeter Ujfalusi The first cell is the PSI-L thread ID of the remote (to PKTDMA) end. 381d92cec6SPeter Ujfalusi Valid ranges for thread ID depends on the data movement direction: 391d92cec6SPeter Ujfalusi for source thread IDs (rx): 0 - 0x7fff 401d92cec6SPeter Ujfalusi for destination thread IDs (tx): 0x8000 - 0xffff 411d92cec6SPeter Ujfalusi 421d92cec6SPeter Ujfalusi Please refer to the device documentation for the PSI-L thread map and also 431d92cec6SPeter Ujfalusi the PSI-L peripheral chapter for the correct thread ID. 441d92cec6SPeter Ujfalusi 451d92cec6SPeter Ujfalusi The second cell is the ASEL value for the channel 461d92cec6SPeter Ujfalusi 471d92cec6SPeter Ujfalusi reg: 481d92cec6SPeter Ujfalusi maxItems: 4 491d92cec6SPeter Ujfalusi 501d92cec6SPeter Ujfalusi reg-names: 511d92cec6SPeter Ujfalusi items: 521d92cec6SPeter Ujfalusi - const: gcfg 531d92cec6SPeter Ujfalusi - const: rchanrt 541d92cec6SPeter Ujfalusi - const: tchanrt 551d92cec6SPeter Ujfalusi - const: ringrt 561d92cec6SPeter Ujfalusi 571d92cec6SPeter Ujfalusi msi-parent: true 581d92cec6SPeter Ujfalusi 591d92cec6SPeter Ujfalusi ti,sci-rm-range-tchan: 601d92cec6SPeter Ujfalusi $ref: /schemas/types.yaml#/definitions/uint32-array 611d92cec6SPeter Ujfalusi description: | 621d92cec6SPeter Ujfalusi Array of PKTDMA split tx channel resource subtypes for resource allocation 631d92cec6SPeter Ujfalusi for this host 641d92cec6SPeter Ujfalusi minItems: 1 651d92cec6SPeter Ujfalusi # Should be enough 661d92cec6SPeter Ujfalusi maxItems: 255 671d92cec6SPeter Ujfalusi items: 681d92cec6SPeter Ujfalusi maximum: 0x3f 691d92cec6SPeter Ujfalusi 701d92cec6SPeter Ujfalusi ti,sci-rm-range-tflow: 711d92cec6SPeter Ujfalusi $ref: /schemas/types.yaml#/definitions/uint32-array 721d92cec6SPeter Ujfalusi description: | 731d92cec6SPeter Ujfalusi Array of PKTDMA split tx flow resource subtypes for resource allocation 741d92cec6SPeter Ujfalusi for this host 751d92cec6SPeter Ujfalusi minItems: 1 761d92cec6SPeter Ujfalusi # Should be enough 771d92cec6SPeter Ujfalusi maxItems: 255 781d92cec6SPeter Ujfalusi items: 791d92cec6SPeter Ujfalusi maximum: 0x3f 801d92cec6SPeter Ujfalusi 811d92cec6SPeter Ujfalusi ti,sci-rm-range-rchan: 821d92cec6SPeter Ujfalusi $ref: /schemas/types.yaml#/definitions/uint32-array 831d92cec6SPeter Ujfalusi description: | 841d92cec6SPeter Ujfalusi Array of PKTDMA split rx channel resource subtypes for resource allocation 851d92cec6SPeter Ujfalusi for this host 861d92cec6SPeter Ujfalusi minItems: 1 871d92cec6SPeter Ujfalusi # Should be enough 881d92cec6SPeter Ujfalusi maxItems: 255 891d92cec6SPeter Ujfalusi items: 901d92cec6SPeter Ujfalusi maximum: 0x3f 911d92cec6SPeter Ujfalusi 921d92cec6SPeter Ujfalusi ti,sci-rm-range-rflow: 931d92cec6SPeter Ujfalusi $ref: /schemas/types.yaml#/definitions/uint32-array 941d92cec6SPeter Ujfalusi description: | 951d92cec6SPeter Ujfalusi Array of PKTDMA split rx flow resource subtypes for resource allocation 961d92cec6SPeter Ujfalusi for this host 971d92cec6SPeter Ujfalusi minItems: 1 981d92cec6SPeter Ujfalusi # Should be enough 991d92cec6SPeter Ujfalusi maxItems: 255 1001d92cec6SPeter Ujfalusi items: 1011d92cec6SPeter Ujfalusi maximum: 0x3f 1021d92cec6SPeter Ujfalusi 1031d92cec6SPeter Ujfalusirequired: 1041d92cec6SPeter Ujfalusi - compatible 1051d92cec6SPeter Ujfalusi - "#dma-cells" 1061d92cec6SPeter Ujfalusi - reg 1071d92cec6SPeter Ujfalusi - reg-names 1081d92cec6SPeter Ujfalusi - msi-parent 1091d92cec6SPeter Ujfalusi - ti,sci 1101d92cec6SPeter Ujfalusi - ti,sci-dev-id 1111d92cec6SPeter Ujfalusi - ti,sci-rm-range-tchan 1121d92cec6SPeter Ujfalusi - ti,sci-rm-range-tflow 1131d92cec6SPeter Ujfalusi - ti,sci-rm-range-rchan 1141d92cec6SPeter Ujfalusi - ti,sci-rm-range-rflow 1151d92cec6SPeter Ujfalusi 1161d92cec6SPeter UjfalusiunevaluatedProperties: false 1171d92cec6SPeter Ujfalusi 1181d92cec6SPeter Ujfalusiexamples: 1191d92cec6SPeter Ujfalusi - |+ 1201d92cec6SPeter Ujfalusi cbass_main { 1211d92cec6SPeter Ujfalusi #address-cells = <2>; 1221d92cec6SPeter Ujfalusi #size-cells = <2>; 1231d92cec6SPeter Ujfalusi 1241d92cec6SPeter Ujfalusi main_dmss { 1251d92cec6SPeter Ujfalusi compatible = "simple-mfd"; 1261d92cec6SPeter Ujfalusi #address-cells = <2>; 1271d92cec6SPeter Ujfalusi #size-cells = <2>; 1281d92cec6SPeter Ujfalusi dma-ranges; 1291d92cec6SPeter Ujfalusi ranges; 1301d92cec6SPeter Ujfalusi 1311d92cec6SPeter Ujfalusi ti,sci-dev-id = <25>; 1321d92cec6SPeter Ujfalusi 1331d92cec6SPeter Ujfalusi main_pktdma: dma-controller@485c0000 { 1341d92cec6SPeter Ujfalusi compatible = "ti,am64-dmss-pktdma"; 1351d92cec6SPeter Ujfalusi 1361d92cec6SPeter Ujfalusi reg = <0x0 0x485c0000 0x0 0x100>, 1371d92cec6SPeter Ujfalusi <0x0 0x4a800000 0x0 0x20000>, 1381d92cec6SPeter Ujfalusi <0x0 0x4aa00000 0x0 0x40000>, 1391d92cec6SPeter Ujfalusi <0x0 0x4b800000 0x0 0x400000>; 1401d92cec6SPeter Ujfalusi reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt"; 1411d92cec6SPeter Ujfalusi msi-parent = <&inta_main_dmss>; 1421d92cec6SPeter Ujfalusi #dma-cells = <2>; 1431d92cec6SPeter Ujfalusi 1441d92cec6SPeter Ujfalusi ti,sci = <&dmsc>; 1451d92cec6SPeter Ujfalusi ti,sci-dev-id = <30>; 1461d92cec6SPeter Ujfalusi 1471d92cec6SPeter Ujfalusi ti,sci-rm-range-tchan = <0x23>, /* UNMAPPED_TX_CHAN */ 1481d92cec6SPeter Ujfalusi <0x24>, /* CPSW_TX_CHAN */ 1491d92cec6SPeter Ujfalusi <0x25>, /* SAUL_TX_0_CHAN */ 1501d92cec6SPeter Ujfalusi <0x26>, /* SAUL_TX_1_CHAN */ 1511d92cec6SPeter Ujfalusi <0x27>, /* ICSSG_0_TX_CHAN */ 1521d92cec6SPeter Ujfalusi <0x28>; /* ICSSG_1_TX_CHAN */ 1531d92cec6SPeter Ujfalusi ti,sci-rm-range-tflow = <0x10>, /* RING_UNMAPPED_TX_CHAN */ 1541d92cec6SPeter Ujfalusi <0x11>, /* RING_CPSW_TX_CHAN */ 1551d92cec6SPeter Ujfalusi <0x12>, /* RING_SAUL_TX_0_CHAN */ 1561d92cec6SPeter Ujfalusi <0x13>, /* RING_SAUL_TX_1_CHAN */ 1571d92cec6SPeter Ujfalusi <0x14>, /* RING_ICSSG_0_TX_CHAN */ 1581d92cec6SPeter Ujfalusi <0x15>; /* RING_ICSSG_1_TX_CHAN */ 1591d92cec6SPeter Ujfalusi ti,sci-rm-range-rchan = <0x29>, /* UNMAPPED_RX_CHAN */ 1601d92cec6SPeter Ujfalusi <0x2b>, /* CPSW_RX_CHAN */ 1611d92cec6SPeter Ujfalusi <0x2d>, /* SAUL_RX_0_CHAN */ 1621d92cec6SPeter Ujfalusi <0x2f>, /* SAUL_RX_1_CHAN */ 1631d92cec6SPeter Ujfalusi <0x31>, /* SAUL_RX_2_CHAN */ 1641d92cec6SPeter Ujfalusi <0x33>, /* SAUL_RX_3_CHAN */ 1651d92cec6SPeter Ujfalusi <0x35>, /* ICSSG_0_RX_CHAN */ 1661d92cec6SPeter Ujfalusi <0x37>; /* ICSSG_1_RX_CHAN */ 1671d92cec6SPeter Ujfalusi ti,sci-rm-range-rflow = <0x2a>, /* FLOW_UNMAPPED_RX_CHAN */ 1681d92cec6SPeter Ujfalusi <0x2c>, /* FLOW_CPSW_RX_CHAN */ 1691d92cec6SPeter Ujfalusi <0x2e>, /* FLOW_SAUL_RX_0/1_CHAN */ 1701d92cec6SPeter Ujfalusi <0x32>, /* FLOW_SAUL_RX_2/3_CHAN */ 1711d92cec6SPeter Ujfalusi <0x36>, /* FLOW_ICSSG_0_RX_CHAN */ 1721d92cec6SPeter Ujfalusi <0x38>; /* FLOW_ICSSG_1_RX_CHAN */ 1731d92cec6SPeter Ujfalusi }; 1741d92cec6SPeter Ujfalusi }; 1751d92cec6SPeter Ujfalusi }; 176