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