# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: "http://devicetree.org/schemas/soc/qcom/qcom,usb-bam.yaml#" $schema: "http://devicetree.org/meta-schemas/core.yaml#" title: MSM USB Bus Access Manager (BAM) maintainers: - Abdul Salam description: This describes the device used to interface the USB controller with the Smart Peripheral Subsystem (SPS). The BAM serves to connect USB directly with other peer peripherals in the system and is statically configured with a number of unidirectional pipes. properties: compatible: const: qcom,usb-bam-msm reg: description: pair of physical base addresses and region size of BAM device interrupts: description: IRQ line for BAM device maxItems: 1 qcom,usb-bam-num-pipes: description: max number of pipes that can be used qcom,usb-bam-fifo-baseaddr: description: | base address for bam pipe's data and descriptor fifos. This can be on chip memory (ocimem). This property is required if sub-node's mem-type is ocimem or usb private mem. qcom,disable-clk-gating: description: If present then disable BAM clock gating. qcom,usb-bam-override-threshold: description: | If present then the default 512 byte threshold is overridden. This threshold configures the threshold value for Read/Write event generation by the BAM towards another BAM. qcom,usb-bam-max-mbps-highspeed: description: | max mbps in high speed connection for either rx or tx direction. qcom,usb-bam-max-mbps-superspeed: description: | max mbps in super speed connection for either rx or tx direction. qcom,reset-bam-on-connect: description: | If present then BAM is RESET before connecting pipe. This may be required if BAM peripheral is also reset before connect. qcom,reset-bam-on-disconnect: description: If present then BAM is RESET after disconnecting pipes. required: - compatible - reg - interrupts - qcom,usb-bam-num-pipes additionalProperties: false patternProperties: "^qcom,pipe[0-9]+$": type: object description: A number of USB BAM pipe parameters are represented as sub-nodes properties: label: description: | a string describing uniquely the usb bam pipe. The string can be constracted as follows- ---. core options- hsusb, ssusb/dwc3, hsic peer options- qdss, ipa direction options- in (from peer to usb), out (from usb to peer) pipe num options- 0..127 qcom,usb-bam-mem-type: description: | Type of memory used by this PIPE. Can be one of 0 - Uses SPS's dedicated pipe memory 1 - System RAM allocated by driver 2 - OCI memory residing @ 'qcom,usb-bam-fifo-baseaddr' qcom,dir: description: | pipe direction 0 - from usb (out) 1 - to usb (in) qcom,pipe-num: description: pipe number qcom,peer-bam: description: | peer BAM can be one of 0 - QDSS_P_BAM 1 - IPA_P_BAM qcom,data-fifo-size: description: data fifo size qcom,descriptor-fifo-size: description: descriptor fifo size qcom,peer-bam-physical-address: description: | peer BAM's physical address. Not specified for IPA and used only for qdss connection qcom,dst-bam-pipe-index: description: destination BAM pipe index qcom,src-bam-pipe-index: description: source BAM pipe index qcom,data-fifo-offset: description: data fifo offset address qcom,descriptor-fifo-offset: description: descriptor fifo offset address qcom,pipe-connection-type: description: | type of pipe connection. Can be one of 0 - BAM2BAM (default if not specified) 1 - SYS2BAM (only supported on UL) required: - label - qcom,usb-bam-mem-type - qcom,dir - qcom,pipe-num - qcom,peer-bam - qcom,data-fifo-size - qcom,descriptor-fifo-size additionalProperties: false examples: - | qcom,usbbam@f9a44000 { compatible = "qcom,usb-bam-msm"; reg = <0xf9a44000 0x11000>; interrupts = <0 135 0>; qcom,usb-bam-num-pipes = <16>; qcom,ignore-core-reset-ack; qcom,disable-clk-gating; qcom,usb-bam-max-mbps-highspeed = <400>; qcom,usb-bam-max-mbps-superspeed = <3600>; qcom,bam-type = <1>; qcom,bam-mode = <0>; qcom,pipe0 { label = "hsusb-ipa-out-0"; qcom,usb-bam-mem-type = <0>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-offset = <0x2200>; qcom,data-fifo-size = <0x1e00>; qcom,descriptor-fifo-offset = <0x2100>; qcom,descriptor-fifo-size = <0x100>; }; qcom,pipe1 { label = "hsusb-ipa-in-0"; qcom,usb-bam-mem-type = <0>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-offset = <0x300>; qcom,data-fifo-size = <0x1e00>; qcom,descriptor-fifo-offset = <0>; qcom,descriptor-fifo-size = <0x300>; }; }; ...