12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- Qualcomm Technologies,Inc SLIMBUS controller
- Qualcomm Technologies,Inc implements 2 type of slimbus controllers:
- 1. "qcom,slim-msm": This controller is used if applications processor
- driver is controlling slimbus master component. This driver is
- responsible for communicating with slave HW directly using
- messaging interface, and doing data channel management. Driver
- also communicates with satellite component (driver implemented
- by other execution environment, such as ADSP) to get its
- requirements for data channel and bandwidth requirements.
- 2. "qcom,slim-ngd": This controller is used if applications processor
- driver is controlling slimbus satellite component (also known as
- Non-ported Generic Device, or NGD). This is light-weight slimbus
- controller responsible for communicating with slave HW directly
- over bus messaging interface, and communicating with master component
- (driver residing on other execution environment, such as ADSP)
- for bandwidth and data channel management.
- Required properties:
- - reg : Offset and length of the register region(s) for the device
- - reg-names : Register region name(s) referenced in reg above
- Required register resource entries are:
- "slimbus_physical": Physical adderss of controller register blocks
- "slimbus_bam_physical": Physical address of Bus Access Module (BAM)
- for this controller
- - compatible : should be "qcom,slim-msm" if this is master component driver
- - compatible : should be "qcom,slim-ngd" if this is satellite component driver
- - cell-index : SLIMBUS number used for this controller
- - interrupts : Interrupt numbers used by this controller
- - interrupt-names : Required interrupt resource entries are:
- "slimbus_irq" : Interrupt for SLIMBUS core
- "slimbus_bam_irq" : Interrupt for controller core's BAM
- Optional property:
- - reg entry for slew rate : If slew rate control register is provided, this
- entry should be used.
- - reg-name for slew rate: "slimbus_slew_reg"
- - qcom,min-clk-gear : Minimum clock gear at which this controller can be run
- (range: 1-10)
- Default value will be 1 if this entry is not specified
- - qcom,max-clk-gear: Maximum clock gear at which this controller can be run
- (range: 1-10)
- Default value will be 10 if this entry is not specified
- - qcom,rxreg-access: This boolean indicates that slimbus RX should use direct
- register access to receive data. This flag is only needed if
- BAM pipe is not available to receive data from slimbus
- - qcom,apps-ch-pipes: This value represents BAM pipe-mask used by application
- processor for data channels. If this property is not defined,
- default mask of 0 is used indicating that application
- processor does not use BAM pipes for data channels.
- - qcom,ea-pc: This value represents product code (PC) field of enumeration
- address (EA) for the QTI slimbus controller hardware.
- This value is needed if data-channels originating from apps
- are to be used, so that application processor can query
- logical address of the ported generic device to be used.
- Other than PC, fields of EA are same across platforms.
- - qcom,slim-mdm: This value provides the identifier of slimbus component on
- external mdm. This property enables the slimbus driver to
- register and receive subsytem restart notification from mdm
- and follow appropriate steps to ensure communication on the bus
- can be resumed after mdm-restart.
- - qcom,subsys-name: This value provides the subsystem name where slimbus master
- is present. This property enables the slimbus driver to
- register and receive subsytem restart notification from subsystem
- and follow appropriate steps to ensure communication on the bus
- can be resumed after subsytem restart. By default slimbus driver
- register with ADSP subsystem.
- - qcom,iommu-s1-bypass: Boolean flag to bypass IOMMU stage 1 translation.
- Optional subnodes:
- qcom,iommu_slim_ctrl_cb : Child node representing the Slimbus controller
- context bank.
- Subnode Required properties:
- - compatible : Must be "qcom,slim-ctrl-cb";
- - iommus : A list of phandle and IOMMU specifier pairs that
- describe the IOMMU master interfaces of the device.
- Example:
- slim@fe12f000 {
- cell-index = <1>;
- compatible = "qcom,slim-msm";
- reg = <0xfe12f000 0x35000>,
- <0xfe104000 0x20000>;
- reg-names = "slimbus_physical", "slimbus_bam_physical";
- interrupts = <0 163 0 0 164 0>;
- interrupt-names = "slimbus_irq", "slimbus_bam_irq";
- qcom,min-clk-gear = <10>;
- qcom,rxreg-access;
- qcom,apps-ch-pipes = <0x60000000>;
- qcom,ea-pc = <0x30>;
- iommu_slim_ctrl_cb: qcom,iommu_slim_ctrl_cb {
- compatible = "qcom,iommu-slim-ctrl-cb";
- iommus = <&apps_smmu 0x1 0x0>;
- };
- };
|