Loading Documentation/devicetree/bindings/platform/msm/usb-bam.txt +34 −62 Original line number Diff line number Diff line Loading @@ -7,32 +7,36 @@ and is statically configured with a number of unidirectional pipes. Required properties: - compatible: should be "qcom,usb-bam-msm" - reg : pairs of physical base addresses and region sizes of all the memory mapped BAM devices present - reg-names : Register region name(s), in 1-1 correspondence with the registers in 'reg'. This list should contain at least as many names as the number of unique values given in both 'usb-active-bam' and all the subnodes' 'usb-bam-type' properties. If SSUSB_BAM is used, "ssusb" should be present. If HSUSB_BAM is used, "hsusb" should be present. If HSIC_BAM is used, "hsic" should be present. If a QSCRATCH RAM1 register is designated for providing USB3 private memory to use as a BAM FIFO, specify "qscratch_ram1_reg". - interrupts: IRQ lines for BAM devices - interrupt-names: BAM interrupt name(s), in 1-1 correspondence with 'interrupts' above. If SSUSB_BAM is used, "ssusb" should be present. If HSUSB_BAM is used, "hsusb" should be present. If HSIC_BAM is used, "hsic" should be present. - reg : pair of physical base addresses and region size of BAM device - interrupts: IRQ line for BAM device - qcom,usb-bam-num-pipes: max number of pipes that can be used - qcom,bam-type: BAM type can be one of 0 - SSUSB_BAM 1 - HSUSB_BAM 2 - HSIC_BAM Optional properties: - qcom,usb-bam-fifo-baseaddr: base address for bam pipe's data and descriptor fifos. This can be on chip memory (ocimem) or usb private memory. This 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,ignore-core-reset-ack: If present then BAM ignores ACK from USB core while performing PIPE RESET - qcom,disable-clk-gating: If present then disable BAM clock gating. - qcom,usb-bam-override-threshold: 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: max mbps in high speed connection for either rx or tx direction. - qcom,usb-bam-max-mbps-superspeed: max mbps in super speed connection for either rx or tx direction. - qcom,bam-mode: BAM mode can be one of. 0 - BAM_MODE_DEVICE 1 - BAM_MODE_HOST (If not set will be set by default to BAM_MODE_DEVICE) - qcom,reset-bam-on-connect: 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: If present then BAM is RESET after disconnecting pipes. - qcom,enable-hsusb-bam-on-boot: If present then BAM is enabled at bootup itself. A number of USB BAM pipe parameters are represented as sub-nodes: Loading @@ -40,35 +44,27 @@ Subnode Required: - label: a string describing uniquely the usb bam pipe. The string can be constracted as follows: <core>-<peer>-<direction>-<pipe num>. core options: hsusb, ssusb/dwc3, hsic peer options: qdss, ipa, a2 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: Type of memory used by this PIPE. Can be one of 0 - Uses SPS's dedicated pipe memory 1 - USB's private memory residing @ 'qcom,usb-bam-fifo-baseaddr' 2 - System RAM allocated by driver 3 - OCI memory residing @ 'qcom,usb-bam-fifo-baseaddr' - qcom,bam-type: BAM type can be one of 0 - SSUSB_BAM 1 - HSUSB_BAM 2 - HSIC_BAM 1 - System RAM allocated by driver 2 - OCI memory residing @ 'qcom,usb-bam-fifo-baseaddr' - qcom,dir: pipe direction 0 - from usb (out) 1 - to usb (in) - qcom,pipe-num: pipe number - qcom,peer-bam: peer BAM can be one of 0 - A2_P_BAM 1 - QDSS_P_BAM 2 - IPA_P_BAM 0 - QDSS_P_BAM 1 - IPA_P_BAM - qcom,data-fifo-size: data fifo size - qcom,descriptor-fifo-size: descriptor fifo size Optional Properties for Subnode: - qcom,reset-bam-on-connect: If present then BAM is RESET before connecting pipe. This may be required if BAM peripheral is also reset before connect. - qcom,dst-bam-physical-address: destination BAM physical address - qcom,peer-bam-physical-address: peer BAM's physical address. Not specified for IPA and used only for qdss connection - qcom,dst-bam-pipe-index: destination BAM pipe index - qcom,src-bam-physical-address: source BAM physical address - qcom,src-bam-pipe-index: source BAM pipe index - qcom,data-fifo-offset: data fifo offset address - qcom,descriptor-fifo-offset: descriptor fifo offset address Loading @@ -76,47 +72,26 @@ Optional Properties for Subnode: 0 - BAM2BAM (default if not specified) 1 - SYS2BAM (only supported on UL) Optional properties : - qcom,bam-mode: BAM mode can be one of. 0 - BAM_MODE_DEVICE 1 - BAM_MODE_HOST (If not set will be set by default to BAM_MODE_DEVICE) - qcom,ignore-core-reset-ack: If present then BAM ignores ACK from USB core while performing PIPE RESET - qcom,disable-clk-gating: If present then disable BAM clock gating. - qcom,usb-bam-override-threshold: 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: max mbps in high speed connection for either rx or tx direction. - qcom,usb-bam-max-mbps-superspeed: max mbps in super speed connection for either rx or tx direction. - qcom,reset-bam-on-disconnect: If present then BAM is RESET after disconnecting pipes. - qcom,enable-hsusb-bam-on-boot: If present then BAM is enabled at bootup itself. Example USB BAM controller device node: qcom,usbbam@f9a44000 { compatible = "qcom,usb-bam-msm"; reg = <0xf9a44000 0x11000>; reg-names = "hsusb"; interrupts = <0 135 0>; interrupt-names = "hsusb"; 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,bam-type = <1>; qcom,bam-mode = <0>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0xf9a44000>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-offset = <0x2200>; qcom,data-fifo-size = <0x1e00>; Loading @@ -126,12 +101,9 @@ Example USB BAM controller device node: qcom,pipe1 { label = "hsusb-ipa-in-0"; qcom,usb-bam-mem-type = <0>; qcom,bam-type = <1>; qcom,bam-mode = <0>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0xf9a44000>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-offset = <0x300>; qcom,data-fifo-size = <0x1e00>; Loading arch/arm/boot/dts/qcom/mdm9640.dtsi +111 −137 Original line number Diff line number Diff line Loading @@ -658,70 +658,13 @@ snps,bus-suspend-enable; snps,usb3-u1u2-disable; }; }; android_usb@86000c8 { reg = <0x086000c8 0xc8>; compatible = "qcom,android-usb"; qcom,pm-qos-latency = <101 2001 30001>; }; qusb_phy: qusb@79000 { compatible = "qcom,qusb2phy"; reg = <0x00079000 0x180>, <0x08af8800 0x400>; reg-names = "qusb_phy_base", "qscratch_base"; vdd-supply = <&pmd9635_l4>; vdda18-supply = <&pmd9635_l8>; vdda33-supply = <&pmd9635_l10>; qcom,vdd-voltage-level = <0 1000000 1000000>; qcom,qusb-tune = <0xa06393d5>; phy_type = "utmi"; clocks = <&clock_gcc clk_ln_bb_clk>, <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, <&clock_gcc clk_gcc_qusb2a_phy_reset>; clock-names = "ref_clk", "cfg_ahb_clk", "phy_reset"; }; ssphy: ssphy@78000 { compatible = "qcom,usb-ssphy-qmp"; reg = <0x00078000 0x45c>, <0x0007e000 0x400>; reg-names = "qmp_phy_base", "qmp_ahb2phy_base"; vdd-supply = <&pmd9635_l4>; vdda18-supply = <&pmd9635_l8>; qcom,vdd-voltage-level = <0 1000000 1000000>; qcom,vbus-valid-override; qcom,ext-vbus-id; qcom,override-pll-calibration; clocks = <&clock_gcc clk_gcc_usb3_aux_clk>, <&clock_gcc clk_gcc_usb3_pipe_clk>, <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, <&clock_gcc clk_gcc_usb3_phy_reset>, <&clock_gcc clk_gcc_usb3phy_phy_reset>, <&clock_gcc clk_usb_ss_ldo>; clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk", "phy_reset", "phy_phy_reset", "ldo_clk"; }; dbm_1p5: dbm@8af8000 { compatible = "qcom,usb-dbm-1p5"; reg = <0x08af8000 0x400>; qcom,reset-ep-after-lpm-resume; }; qcom,usbbam@8b04000 { compatible = "qcom,usb-bam-msm"; reg = <0x08b04000 0x1b000>; reg-names = "ssusb"; interrupts = <0 132 0>; interrupt-names = "ssusb"; qcom,bam-type = <0>; qcom,usb-bam-fifo-baseaddr = <0x08601000>; qcom,usb-bam-num-pipes = <16>; qcom,ignore-core-reset-ack; Loading @@ -729,129 +672,160 @@ qcom,usb-bam-override-threshold = <0x4001>; qcom,usb-bam-max-mbps-highspeed = <400>; qcom,usb-bam-max-mbps-superspeed = <3600>; qcom,reset-bam-on-connect; qcom,pipe0 { label = "ssusb-ipa-out-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe1 { label = "ssusb-ipa-in-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe2 { label = "ssusb-qdss-in-0"; qcom,usb-bam-mem-type = <3>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <2>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-physical-address = <0x00884000>; qcom,peer-bam = <0>; qcom,peer-bam-physical-address = <0x00884000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-physical-address = <0x08b04000>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0xC00>; qcom,descriptor-fifo-offset = <0xC00>; qcom,descriptor-fifo-size = <0x400>; qcom,reset-bam-on-connect; }; qcom,pipe3 { label = "ssusb-ipa-out-1"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <1>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <3>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe4 { label = "ssusb-ipa-in-1"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <1>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe5 { label = "ssusb-ipa-out-2"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <2>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <5>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe6 { label = "ssusb-ipa-in-2"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <2>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <4>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe7 { label = "ssusb-ipa-out-3"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <3>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <6>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe8 { label = "ssusb-ipa-in-3"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <3>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <7>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; }; }; android_usb@86000c8 { reg = <0x086000c8 0xc8>; compatible = "qcom,android-usb"; qcom,pm-qos-latency = <101 2001 30001>; }; qusb_phy: qusb@79000 { compatible = "qcom,qusb2phy"; reg = <0x00079000 0x180>, <0x08af8800 0x400>; reg-names = "qusb_phy_base", "qscratch_base"; vdd-supply = <&pmd9635_l4>; vdda18-supply = <&pmd9635_l8>; vdda33-supply = <&pmd9635_l10>; qcom,vdd-voltage-level = <0 1000000 1000000>; qcom,qusb-tune = <0xa06393d5>; phy_type = "utmi"; clocks = <&clock_gcc clk_ln_bb_clk>, <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, <&clock_gcc clk_gcc_qusb2a_phy_reset>; clock-names = "ref_clk", "cfg_ahb_clk", "phy_reset"; }; ssphy: ssphy@78000 { compatible = "qcom,usb-ssphy-qmp"; reg = <0x00078000 0x45c>, <0x0007e000 0x400>; reg-names = "qmp_phy_base", "qmp_ahb2phy_base"; vdd-supply = <&pmd9635_l4>; vdda18-supply = <&pmd9635_l8>; qcom,vdd-voltage-level = <0 1000000 1000000>; qcom,vbus-valid-override; qcom,ext-vbus-id; qcom,override-pll-calibration; clocks = <&clock_gcc clk_gcc_usb3_aux_clk>, <&clock_gcc clk_gcc_usb3_pipe_clk>, <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, <&clock_gcc clk_gcc_usb3_phy_reset>, <&clock_gcc clk_gcc_usb3phy_phy_reset>, <&clock_gcc clk_usb_ss_ldo>; clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk", "phy_reset", "phy_phy_reset", "ldo_clk"; }; dbm_1p5: dbm@8af8000 { compatible = "qcom,usb-dbm-1p5"; reg = <0x08af8000 0x400>; qcom,reset-ep-after-lpm-resume; }; tsens: tsens@4a8000 { compatible = "qcom,mdm9640-tsens"; Loading arch/arm/boot/dts/qcom/msm8939-common.dtsi +5 −8 Original line number Diff line number Diff line Loading @@ -749,30 +749,27 @@ qcom,usbbam@78c4000 { compatible = "qcom,usb-bam-msm"; reg = <0x78c4000 0x15000>; reg-names = "hsusb"; interrupts = <0 135 0>; interrupt-names = "hsusb"; qcom,bam-type = <1>; qcom,usb-bam-num-pipes = <2>; qcom,usb-bam-fifo-baseaddr = <0x08603800>; qcom,ignore-core-reset-ack; qcom,disable-clk-gating; qcom,reset-bam-on-connect; qcom,pipe0 { label = "hsusb-qdss-in-0"; qcom,usb-bam-mem-type = <3>; qcom,bam-type = <1>; qcom,usb-bam-mem-type = <2>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-physical-address = <0x884000>; qcom,peer-bam = <0>; qcom,peer-bam-physical-address = <0x884000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-physical-address = <0x78c4000>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0x600>; qcom,descriptor-fifo-offset = <0x600>; qcom,descriptor-fifo-size = <0x200>; qcom,reset-bam-on-connect; }; }; Loading arch/arm/boot/dts/qcom/msm8952.dtsi +66 −73 Original line number Diff line number Diff line Loading @@ -946,83 +946,13 @@ qcom,has-pronto-hw; }; qcom,usbbam@78c4000 { compatible = "qcom,usb-bam-msm"; reg = <0x78c4000 0x17000>; reg-names = "hsusb"; interrupts = <0 135 0>; interrupt-names = "hsusb"; qcom,usb-bam-num-pipes = <4>; qcom,usb-bam-fifo-baseaddr = <0x08605000>; qcom,ignore-core-reset-ack; qcom,disable-clk-gating; qcom,usb-bam-max-mbps-highspeed = <400>; qcom,pipe0 { label = "hsusb-ipa-out-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <1>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x78c4000>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-disconnect; }; qcom,pipe1 { label = "hsusb-ipa-in-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <1>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x78c4000>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-disconnect; }; qcom,pipe2 { label = "hsusb-qdss-in-0"; qcom,usb-bam-mem-type = <3>; qcom,bam-type = <1>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-physical-address = <0x884000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-physical-address = <0x78c4000>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0xe00>; qcom,descriptor-fifo-offset = <0xe00>; qcom,descriptor-fifo-size = <0x200>; qcom,reset-bam-on-disconnect; }; /* USB BAM pipe (consumer) configuration for accelerated DPL */ qcom,pipe3 { label = "hsusb-dpl-ipa-in-1"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <1>; qcom,dir = <1>; qcom,pipe-num = <1>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x78c4000>; qcom,dst-bam-pipe-index = <3>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-disconnect; }; }; usb_otg: usb@78db000 { compatible = "qcom,hsusb-otg"; reg = <0x78db000 0x400>, <0x6c000 0x200>; reg-names = "core", "phy_csr"; #address-cells = <1>; #size-cells = <1>; ranges; interrupts = <0 134 0>,<0 140 0>; interrupt-names = "core_irq", "async_irq"; Loading Loading @@ -1067,6 +997,69 @@ "xo"; qcom,bus-clk-rate = <350400000 200000000 100000000>; qcom,max-nominal-sysclk-rate = <133330000>; qcom,usbbam@78c4000 { compatible = "qcom,usb-bam-msm"; reg = <0x78c4000 0x17000>; interrupt-parent = <&intc>; interrupts = <0 135 0>; qcom,bam-type = <1>; qcom,usb-bam-num-pipes = <4>; qcom,usb-bam-fifo-baseaddr = <0x08605000>; qcom,ignore-core-reset-ack; qcom,disable-clk-gating; qcom,usb-bam-max-mbps-highspeed = <400>; qcom,reset-bam-on-disconnect; qcom,pipe0 { label = "hsusb-ipa-out-0"; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; qcom,pipe1 { label = "hsusb-ipa-in-0"; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; qcom,pipe2 { label = "hsusb-qdss-in-0"; qcom,usb-bam-mem-type = <2>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <0>; qcom,peer-bam-physical-address = <0x884000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0xe00>; qcom,descriptor-fifo-offset = <0xe00>; qcom,descriptor-fifo-size = <0x200>; }; /* USB BAM pipe (consumer) config for accelerated DPL */ qcom,pipe3 { label = "hsusb-dpl-ipa-in-1"; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <1>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <3>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; }; }; android_usb: android_usb@086000c8 { Loading arch/arm/boot/dts/qcom/msm8996.dtsi +62 −73 Original line number Diff line number Diff line Loading @@ -2066,6 +2066,68 @@ snps,nominal-elastic-buffer; snps,hird_thresh = <0x10>; }; qcom,usbbam@6b04000 { compatible = "qcom,usb-bam-msm"; reg = <0x06b04000 0x1a934>; interrupt-parent = <&intc>; interrupts = <0 132 0>; qcom,bam-type = <0>; qcom,usb-bam-fifo-baseaddr = <0x066bb000>; qcom,usb-bam-num-pipes = <8>; qcom,ignore-core-reset-ack; qcom,disable-clk-gating; qcom,usb-bam-override-threshold = <0x4001>; qcom,usb-bam-max-mbps-highspeed = <400>; qcom,usb-bam-max-mbps-superspeed = <3600>; qcom,reset-bam-on-connect; qcom,pipe0 { label = "ssusb-ipa-out-0"; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; qcom,pipe1 { label = "ssusb-ipa-in-0"; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; qcom,pipe2 { label = "ssusb-qdss-in-0"; qcom,usb-bam-mem-type = <2>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <0>; qcom,peer-bam-physical-address = <0x03084000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0x1800>; qcom,descriptor-fifo-offset = <0x1800>; qcom,descriptor-fifo-size = <0x800>; }; qcom,pipe3 { label = "ssusb-dpl-ipa-in-1"; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <1>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; }; }; usb2s: hsusb@7600000 { Loading Loading @@ -2213,79 +2275,6 @@ qcom,reset-ep-after-lpm-resume; }; qcom,usbbam@6b04000 { compatible = "qcom,usb-bam-msm"; reg = <0x06b04000 0x1a934>; reg-names = "ssusb"; interrupts = <0 132 0>; interrupt-names = "ssusb"; qcom,usb-bam-fifo-baseaddr = <0x066bb000>; qcom,usb-bam-num-pipes = <8>; qcom,ignore-core-reset-ack; qcom,disable-clk-gating; qcom,usb-bam-override-threshold = <0x4001>; qcom,usb-bam-max-mbps-highspeed = <400>; qcom,usb-bam-max-mbps-superspeed = <3600>; qcom,pipe0 { label = "ssusb-ipa-out-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x06b04000>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe1 { label = "ssusb-ipa-in-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x06b04000>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe2 { label = "ssusb-qdss-in-0"; qcom,usb-bam-mem-type = <3>; qcom,bam-type = <0>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-physical-address = <0x03084000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-physical-address = <0x06b04000>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0x1800>; qcom,descriptor-fifo-offset = <0x1800>; qcom,descriptor-fifo-size = <0x800>; qcom,reset-bam-on-connect; }; qcom,pipe3 { label = "ssusb-dpl-ipa-in-1"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,dir = <1>; qcom,pipe-num = <1>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x06b04000>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; }; spmi_bus: qcom,spmi@400f000 { compatible = "qcom,spmi-pmic-arb"; reg = <0x400f000 0x1000>, Loading Loading
Documentation/devicetree/bindings/platform/msm/usb-bam.txt +34 −62 Original line number Diff line number Diff line Loading @@ -7,32 +7,36 @@ and is statically configured with a number of unidirectional pipes. Required properties: - compatible: should be "qcom,usb-bam-msm" - reg : pairs of physical base addresses and region sizes of all the memory mapped BAM devices present - reg-names : Register region name(s), in 1-1 correspondence with the registers in 'reg'. This list should contain at least as many names as the number of unique values given in both 'usb-active-bam' and all the subnodes' 'usb-bam-type' properties. If SSUSB_BAM is used, "ssusb" should be present. If HSUSB_BAM is used, "hsusb" should be present. If HSIC_BAM is used, "hsic" should be present. If a QSCRATCH RAM1 register is designated for providing USB3 private memory to use as a BAM FIFO, specify "qscratch_ram1_reg". - interrupts: IRQ lines for BAM devices - interrupt-names: BAM interrupt name(s), in 1-1 correspondence with 'interrupts' above. If SSUSB_BAM is used, "ssusb" should be present. If HSUSB_BAM is used, "hsusb" should be present. If HSIC_BAM is used, "hsic" should be present. - reg : pair of physical base addresses and region size of BAM device - interrupts: IRQ line for BAM device - qcom,usb-bam-num-pipes: max number of pipes that can be used - qcom,bam-type: BAM type can be one of 0 - SSUSB_BAM 1 - HSUSB_BAM 2 - HSIC_BAM Optional properties: - qcom,usb-bam-fifo-baseaddr: base address for bam pipe's data and descriptor fifos. This can be on chip memory (ocimem) or usb private memory. This 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,ignore-core-reset-ack: If present then BAM ignores ACK from USB core while performing PIPE RESET - qcom,disable-clk-gating: If present then disable BAM clock gating. - qcom,usb-bam-override-threshold: 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: max mbps in high speed connection for either rx or tx direction. - qcom,usb-bam-max-mbps-superspeed: max mbps in super speed connection for either rx or tx direction. - qcom,bam-mode: BAM mode can be one of. 0 - BAM_MODE_DEVICE 1 - BAM_MODE_HOST (If not set will be set by default to BAM_MODE_DEVICE) - qcom,reset-bam-on-connect: 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: If present then BAM is RESET after disconnecting pipes. - qcom,enable-hsusb-bam-on-boot: If present then BAM is enabled at bootup itself. A number of USB BAM pipe parameters are represented as sub-nodes: Loading @@ -40,35 +44,27 @@ Subnode Required: - label: a string describing uniquely the usb bam pipe. The string can be constracted as follows: <core>-<peer>-<direction>-<pipe num>. core options: hsusb, ssusb/dwc3, hsic peer options: qdss, ipa, a2 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: Type of memory used by this PIPE. Can be one of 0 - Uses SPS's dedicated pipe memory 1 - USB's private memory residing @ 'qcom,usb-bam-fifo-baseaddr' 2 - System RAM allocated by driver 3 - OCI memory residing @ 'qcom,usb-bam-fifo-baseaddr' - qcom,bam-type: BAM type can be one of 0 - SSUSB_BAM 1 - HSUSB_BAM 2 - HSIC_BAM 1 - System RAM allocated by driver 2 - OCI memory residing @ 'qcom,usb-bam-fifo-baseaddr' - qcom,dir: pipe direction 0 - from usb (out) 1 - to usb (in) - qcom,pipe-num: pipe number - qcom,peer-bam: peer BAM can be one of 0 - A2_P_BAM 1 - QDSS_P_BAM 2 - IPA_P_BAM 0 - QDSS_P_BAM 1 - IPA_P_BAM - qcom,data-fifo-size: data fifo size - qcom,descriptor-fifo-size: descriptor fifo size Optional Properties for Subnode: - qcom,reset-bam-on-connect: If present then BAM is RESET before connecting pipe. This may be required if BAM peripheral is also reset before connect. - qcom,dst-bam-physical-address: destination BAM physical address - qcom,peer-bam-physical-address: peer BAM's physical address. Not specified for IPA and used only for qdss connection - qcom,dst-bam-pipe-index: destination BAM pipe index - qcom,src-bam-physical-address: source BAM physical address - qcom,src-bam-pipe-index: source BAM pipe index - qcom,data-fifo-offset: data fifo offset address - qcom,descriptor-fifo-offset: descriptor fifo offset address Loading @@ -76,47 +72,26 @@ Optional Properties for Subnode: 0 - BAM2BAM (default if not specified) 1 - SYS2BAM (only supported on UL) Optional properties : - qcom,bam-mode: BAM mode can be one of. 0 - BAM_MODE_DEVICE 1 - BAM_MODE_HOST (If not set will be set by default to BAM_MODE_DEVICE) - qcom,ignore-core-reset-ack: If present then BAM ignores ACK from USB core while performing PIPE RESET - qcom,disable-clk-gating: If present then disable BAM clock gating. - qcom,usb-bam-override-threshold: 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: max mbps in high speed connection for either rx or tx direction. - qcom,usb-bam-max-mbps-superspeed: max mbps in super speed connection for either rx or tx direction. - qcom,reset-bam-on-disconnect: If present then BAM is RESET after disconnecting pipes. - qcom,enable-hsusb-bam-on-boot: If present then BAM is enabled at bootup itself. Example USB BAM controller device node: qcom,usbbam@f9a44000 { compatible = "qcom,usb-bam-msm"; reg = <0xf9a44000 0x11000>; reg-names = "hsusb"; interrupts = <0 135 0>; interrupt-names = "hsusb"; 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,bam-type = <1>; qcom,bam-mode = <0>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0xf9a44000>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-offset = <0x2200>; qcom,data-fifo-size = <0x1e00>; Loading @@ -126,12 +101,9 @@ Example USB BAM controller device node: qcom,pipe1 { label = "hsusb-ipa-in-0"; qcom,usb-bam-mem-type = <0>; qcom,bam-type = <1>; qcom,bam-mode = <0>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0xf9a44000>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-offset = <0x300>; qcom,data-fifo-size = <0x1e00>; Loading
arch/arm/boot/dts/qcom/mdm9640.dtsi +111 −137 Original line number Diff line number Diff line Loading @@ -658,70 +658,13 @@ snps,bus-suspend-enable; snps,usb3-u1u2-disable; }; }; android_usb@86000c8 { reg = <0x086000c8 0xc8>; compatible = "qcom,android-usb"; qcom,pm-qos-latency = <101 2001 30001>; }; qusb_phy: qusb@79000 { compatible = "qcom,qusb2phy"; reg = <0x00079000 0x180>, <0x08af8800 0x400>; reg-names = "qusb_phy_base", "qscratch_base"; vdd-supply = <&pmd9635_l4>; vdda18-supply = <&pmd9635_l8>; vdda33-supply = <&pmd9635_l10>; qcom,vdd-voltage-level = <0 1000000 1000000>; qcom,qusb-tune = <0xa06393d5>; phy_type = "utmi"; clocks = <&clock_gcc clk_ln_bb_clk>, <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, <&clock_gcc clk_gcc_qusb2a_phy_reset>; clock-names = "ref_clk", "cfg_ahb_clk", "phy_reset"; }; ssphy: ssphy@78000 { compatible = "qcom,usb-ssphy-qmp"; reg = <0x00078000 0x45c>, <0x0007e000 0x400>; reg-names = "qmp_phy_base", "qmp_ahb2phy_base"; vdd-supply = <&pmd9635_l4>; vdda18-supply = <&pmd9635_l8>; qcom,vdd-voltage-level = <0 1000000 1000000>; qcom,vbus-valid-override; qcom,ext-vbus-id; qcom,override-pll-calibration; clocks = <&clock_gcc clk_gcc_usb3_aux_clk>, <&clock_gcc clk_gcc_usb3_pipe_clk>, <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, <&clock_gcc clk_gcc_usb3_phy_reset>, <&clock_gcc clk_gcc_usb3phy_phy_reset>, <&clock_gcc clk_usb_ss_ldo>; clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk", "phy_reset", "phy_phy_reset", "ldo_clk"; }; dbm_1p5: dbm@8af8000 { compatible = "qcom,usb-dbm-1p5"; reg = <0x08af8000 0x400>; qcom,reset-ep-after-lpm-resume; }; qcom,usbbam@8b04000 { compatible = "qcom,usb-bam-msm"; reg = <0x08b04000 0x1b000>; reg-names = "ssusb"; interrupts = <0 132 0>; interrupt-names = "ssusb"; qcom,bam-type = <0>; qcom,usb-bam-fifo-baseaddr = <0x08601000>; qcom,usb-bam-num-pipes = <16>; qcom,ignore-core-reset-ack; Loading @@ -729,129 +672,160 @@ qcom,usb-bam-override-threshold = <0x4001>; qcom,usb-bam-max-mbps-highspeed = <400>; qcom,usb-bam-max-mbps-superspeed = <3600>; qcom,reset-bam-on-connect; qcom,pipe0 { label = "ssusb-ipa-out-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe1 { label = "ssusb-ipa-in-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe2 { label = "ssusb-qdss-in-0"; qcom,usb-bam-mem-type = <3>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <2>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-physical-address = <0x00884000>; qcom,peer-bam = <0>; qcom,peer-bam-physical-address = <0x00884000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-physical-address = <0x08b04000>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0xC00>; qcom,descriptor-fifo-offset = <0xC00>; qcom,descriptor-fifo-size = <0x400>; qcom,reset-bam-on-connect; }; qcom,pipe3 { label = "ssusb-ipa-out-1"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <1>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <3>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe4 { label = "ssusb-ipa-in-1"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <1>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe5 { label = "ssusb-ipa-out-2"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <2>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <5>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe6 { label = "ssusb-ipa-in-2"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <2>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <4>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe7 { label = "ssusb-ipa-out-3"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <3>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <6>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe8 { label = "ssusb-ipa-in-3"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <3>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x08b04000>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <7>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; }; }; android_usb@86000c8 { reg = <0x086000c8 0xc8>; compatible = "qcom,android-usb"; qcom,pm-qos-latency = <101 2001 30001>; }; qusb_phy: qusb@79000 { compatible = "qcom,qusb2phy"; reg = <0x00079000 0x180>, <0x08af8800 0x400>; reg-names = "qusb_phy_base", "qscratch_base"; vdd-supply = <&pmd9635_l4>; vdda18-supply = <&pmd9635_l8>; vdda33-supply = <&pmd9635_l10>; qcom,vdd-voltage-level = <0 1000000 1000000>; qcom,qusb-tune = <0xa06393d5>; phy_type = "utmi"; clocks = <&clock_gcc clk_ln_bb_clk>, <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, <&clock_gcc clk_gcc_qusb2a_phy_reset>; clock-names = "ref_clk", "cfg_ahb_clk", "phy_reset"; }; ssphy: ssphy@78000 { compatible = "qcom,usb-ssphy-qmp"; reg = <0x00078000 0x45c>, <0x0007e000 0x400>; reg-names = "qmp_phy_base", "qmp_ahb2phy_base"; vdd-supply = <&pmd9635_l4>; vdda18-supply = <&pmd9635_l8>; qcom,vdd-voltage-level = <0 1000000 1000000>; qcom,vbus-valid-override; qcom,ext-vbus-id; qcom,override-pll-calibration; clocks = <&clock_gcc clk_gcc_usb3_aux_clk>, <&clock_gcc clk_gcc_usb3_pipe_clk>, <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, <&clock_gcc clk_gcc_usb3_phy_reset>, <&clock_gcc clk_gcc_usb3phy_phy_reset>, <&clock_gcc clk_usb_ss_ldo>; clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk", "phy_reset", "phy_phy_reset", "ldo_clk"; }; dbm_1p5: dbm@8af8000 { compatible = "qcom,usb-dbm-1p5"; reg = <0x08af8000 0x400>; qcom,reset-ep-after-lpm-resume; }; tsens: tsens@4a8000 { compatible = "qcom,mdm9640-tsens"; Loading
arch/arm/boot/dts/qcom/msm8939-common.dtsi +5 −8 Original line number Diff line number Diff line Loading @@ -749,30 +749,27 @@ qcom,usbbam@78c4000 { compatible = "qcom,usb-bam-msm"; reg = <0x78c4000 0x15000>; reg-names = "hsusb"; interrupts = <0 135 0>; interrupt-names = "hsusb"; qcom,bam-type = <1>; qcom,usb-bam-num-pipes = <2>; qcom,usb-bam-fifo-baseaddr = <0x08603800>; qcom,ignore-core-reset-ack; qcom,disable-clk-gating; qcom,reset-bam-on-connect; qcom,pipe0 { label = "hsusb-qdss-in-0"; qcom,usb-bam-mem-type = <3>; qcom,bam-type = <1>; qcom,usb-bam-mem-type = <2>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-physical-address = <0x884000>; qcom,peer-bam = <0>; qcom,peer-bam-physical-address = <0x884000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-physical-address = <0x78c4000>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0x600>; qcom,descriptor-fifo-offset = <0x600>; qcom,descriptor-fifo-size = <0x200>; qcom,reset-bam-on-connect; }; }; Loading
arch/arm/boot/dts/qcom/msm8952.dtsi +66 −73 Original line number Diff line number Diff line Loading @@ -946,83 +946,13 @@ qcom,has-pronto-hw; }; qcom,usbbam@78c4000 { compatible = "qcom,usb-bam-msm"; reg = <0x78c4000 0x17000>; reg-names = "hsusb"; interrupts = <0 135 0>; interrupt-names = "hsusb"; qcom,usb-bam-num-pipes = <4>; qcom,usb-bam-fifo-baseaddr = <0x08605000>; qcom,ignore-core-reset-ack; qcom,disable-clk-gating; qcom,usb-bam-max-mbps-highspeed = <400>; qcom,pipe0 { label = "hsusb-ipa-out-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <1>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x78c4000>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-disconnect; }; qcom,pipe1 { label = "hsusb-ipa-in-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <1>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x78c4000>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-disconnect; }; qcom,pipe2 { label = "hsusb-qdss-in-0"; qcom,usb-bam-mem-type = <3>; qcom,bam-type = <1>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-physical-address = <0x884000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-physical-address = <0x78c4000>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0xe00>; qcom,descriptor-fifo-offset = <0xe00>; qcom,descriptor-fifo-size = <0x200>; qcom,reset-bam-on-disconnect; }; /* USB BAM pipe (consumer) configuration for accelerated DPL */ qcom,pipe3 { label = "hsusb-dpl-ipa-in-1"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <1>; qcom,dir = <1>; qcom,pipe-num = <1>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x78c4000>; qcom,dst-bam-pipe-index = <3>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-disconnect; }; }; usb_otg: usb@78db000 { compatible = "qcom,hsusb-otg"; reg = <0x78db000 0x400>, <0x6c000 0x200>; reg-names = "core", "phy_csr"; #address-cells = <1>; #size-cells = <1>; ranges; interrupts = <0 134 0>,<0 140 0>; interrupt-names = "core_irq", "async_irq"; Loading Loading @@ -1067,6 +997,69 @@ "xo"; qcom,bus-clk-rate = <350400000 200000000 100000000>; qcom,max-nominal-sysclk-rate = <133330000>; qcom,usbbam@78c4000 { compatible = "qcom,usb-bam-msm"; reg = <0x78c4000 0x17000>; interrupt-parent = <&intc>; interrupts = <0 135 0>; qcom,bam-type = <1>; qcom,usb-bam-num-pipes = <4>; qcom,usb-bam-fifo-baseaddr = <0x08605000>; qcom,ignore-core-reset-ack; qcom,disable-clk-gating; qcom,usb-bam-max-mbps-highspeed = <400>; qcom,reset-bam-on-disconnect; qcom,pipe0 { label = "hsusb-ipa-out-0"; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; qcom,pipe1 { label = "hsusb-ipa-in-0"; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; qcom,pipe2 { label = "hsusb-qdss-in-0"; qcom,usb-bam-mem-type = <2>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <0>; qcom,peer-bam-physical-address = <0x884000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0xe00>; qcom,descriptor-fifo-offset = <0xe00>; qcom,descriptor-fifo-size = <0x200>; }; /* USB BAM pipe (consumer) config for accelerated DPL */ qcom,pipe3 { label = "hsusb-dpl-ipa-in-1"; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <1>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <3>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; }; }; android_usb: android_usb@086000c8 { Loading
arch/arm/boot/dts/qcom/msm8996.dtsi +62 −73 Original line number Diff line number Diff line Loading @@ -2066,6 +2066,68 @@ snps,nominal-elastic-buffer; snps,hird_thresh = <0x10>; }; qcom,usbbam@6b04000 { compatible = "qcom,usb-bam-msm"; reg = <0x06b04000 0x1a934>; interrupt-parent = <&intc>; interrupts = <0 132 0>; qcom,bam-type = <0>; qcom,usb-bam-fifo-baseaddr = <0x066bb000>; qcom,usb-bam-num-pipes = <8>; qcom,ignore-core-reset-ack; qcom,disable-clk-gating; qcom,usb-bam-override-threshold = <0x4001>; qcom,usb-bam-max-mbps-highspeed = <400>; qcom,usb-bam-max-mbps-superspeed = <3600>; qcom,reset-bam-on-connect; qcom,pipe0 { label = "ssusb-ipa-out-0"; qcom,usb-bam-mem-type = <1>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; qcom,pipe1 { label = "ssusb-ipa-in-0"; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; qcom,pipe2 { label = "ssusb-qdss-in-0"; qcom,usb-bam-mem-type = <2>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <0>; qcom,peer-bam-physical-address = <0x03084000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0x1800>; qcom,descriptor-fifo-offset = <0x1800>; qcom,descriptor-fifo-size = <0x800>; }; qcom,pipe3 { label = "ssusb-dpl-ipa-in-1"; qcom,usb-bam-mem-type = <1>; qcom,dir = <1>; qcom,pipe-num = <1>; qcom,peer-bam = <1>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; }; }; }; usb2s: hsusb@7600000 { Loading Loading @@ -2213,79 +2275,6 @@ qcom,reset-ep-after-lpm-resume; }; qcom,usbbam@6b04000 { compatible = "qcom,usb-bam-msm"; reg = <0x06b04000 0x1a934>; reg-names = "ssusb"; interrupts = <0 132 0>; interrupt-names = "ssusb"; qcom,usb-bam-fifo-baseaddr = <0x066bb000>; qcom,usb-bam-num-pipes = <8>; qcom,ignore-core-reset-ack; qcom,disable-clk-gating; qcom,usb-bam-override-threshold = <0x4001>; qcom,usb-bam-max-mbps-highspeed = <400>; qcom,usb-bam-max-mbps-superspeed = <3600>; qcom,pipe0 { label = "ssusb-ipa-out-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,dir = <0>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,src-bam-physical-address = <0x06b04000>; qcom,src-bam-pipe-index = <1>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe1 { label = "ssusb-ipa-in-0"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x06b04000>; qcom,dst-bam-pipe-index = <0>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; qcom,pipe2 { label = "ssusb-qdss-in-0"; qcom,usb-bam-mem-type = <3>; qcom,bam-type = <0>; qcom,dir = <1>; qcom,pipe-num = <0>; qcom,peer-bam = <1>; qcom,src-bam-physical-address = <0x03084000>; qcom,src-bam-pipe-index = <0>; qcom,dst-bam-physical-address = <0x06b04000>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-offset = <0x0>; qcom,data-fifo-size = <0x1800>; qcom,descriptor-fifo-offset = <0x1800>; qcom,descriptor-fifo-size = <0x800>; qcom,reset-bam-on-connect; }; qcom,pipe3 { label = "ssusb-dpl-ipa-in-1"; qcom,usb-bam-mem-type = <2>; qcom,bam-type = <0>; qcom,dir = <1>; qcom,pipe-num = <1>; qcom,peer-bam = <2>; qcom,dst-bam-physical-address = <0x06b04000>; qcom,dst-bam-pipe-index = <2>; qcom,data-fifo-size = <0x8000>; qcom,descriptor-fifo-size = <0x2000>; qcom,reset-bam-on-connect; }; }; spmi_bus: qcom,spmi@400f000 { compatible = "qcom,spmi-pmic-arb"; reg = <0x400f000 0x1000>, Loading