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 0x3F000000 is used indicating apps can use 6 pipes from 24-29. - 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. 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>; };