MSM MHI MSM MHI enables communication with a device over a PCIe link using the Modem Host Interface protocol. The bindings referred to below, enable the correct configuration of the interface and required sideband signals. ============== Node Structure ============== Main node properties: - compatible Usage: required Value type: Definition: "qcom,mhi" - qcom,pci-dev_id Usage: optional Value type: Definition: Device id reported by modem - qcom,pci-domain Usage: required Value type: Definition: PCIE root complex device connected to - qcom,pci-bus Usage: required Value type: Definition: PCIE bus device connected to - qcom,pci-slot Usage: required Value type: Definition: PCIE slot (dev_id/function) device connected to - esoc-names Usage: optional Value type: Definition: esoc name for the device - esoc-0 Usage: required if "esoc-names" is defined Value type: phandle Definition: A phandle pointing to the esoc node. - qcom,msm-bus,name Usage: required if MHI is bus master Value type: string Definition: string representing the client name - qcom,msm-bus,num-cases Usage: required if MHI is bus master Value type: Definition: Number of use cases MHI support. Must be set to 2. - qcom,msm-bus,num-paths Usage: required if MHI is bus master Value type: Definition: Total number of master-slave pairs. Must be set to one. - qcom,msm-bus,vectors-KBps Usage: required if MHI is bus master Value type: Array of Definition: Array of tuples which define the bus bandwidth requirements. Each tuple is of length 4, values are master-id, slave-id, arbitrated bandwidth in KBps, and instantaneous bandwidth in KBps. - mhi-chan-cfg-# Usage: required Value type: Array of Definition: mhi channel configuration parameters for platform defined as below : A = chan number B = maximum descriptors C = event ring associated with channel D = flags defined by mhi_macros.h GET_CHAN_PROPS - mhi-event-rings Usage: required Value type: Definition: Number of event rings device support - mhi-event-cfg-# Usage: required Value type: Array of Definition: mhi event ring configuration parameters for platform defined as below : A = maximum event descriptors B = MSI associated with event C = interrupt moderation (see MHI specification) D = Associated channel E = priority of the event ring. 0 being the highest. F = flags defined by mhi_macros.h GET_EV_PROPS - qcom,mhi-address-window Usage: required Value type: Array of Definition: start DDR address and ending DDR address device can access. - qcom,mhi-manage-boot Usage: optional Value type: bool Definition: Determine whether MHI host manages firmware download to device. - qcom,mhi-fw-image Usage: required if MHI host managing firmware download process Value type: string Definition: firmware image name - qcom,mhi-max-sbl Usage: required if MHI host managing firmware download process Value type: Definition: Maximum size in bytes SBL image device support. - qcom,mhi-sg-size Usage: required if MHI host managing firmware download process Value type: Definition: Segment size in bytes for each segment in bytes. - qcom,mhi-bb-required Usage: optional Value type: bool Definition: Determine whether MHI device require bounce buffer during active transfer. If true, during channel open host will pre-allocate transfer buffers. ======== Example: ======== mhi: qcom,mhi { compatible = "qcom,mhi"; qcom,pci-dev_id = <0x0301>; qcom,pci-domain = <2>; qcom,pci-bus = <4>; qcom,pci-slot = <0>; qcom,mhi-address-window = <0x0 0x80000000 0x0 0xbfffffff>; esoc-names = "mdm"; esoc-0 = <&mdm1>; qcom,msm-bus,name = "mhi"; qcom,msm-bus,num-cases = <2>; qcom,msm-bus,num-paths = <1>; qcom,msm-bus,vectors-KBps = <100 512 0 0>, <100 512 1200000000 1200000000>; mhi-event-rings = <1>; mhi-chan-cfg-102 = <0x66 0x80 0x5 0x62>; mhi-event-cfg-0 = <0x80 0x0 0x0 0x0 0 1 0x11>; };