Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd4baeef authored by Mugata, Sreenivasa Rao's avatar Mugata, Sreenivasa Rao
Browse files

Merge commit 'e7f634dd' into kernel.lnx.4.9.r27-rel



Change-Id: I6c4cc3166d9ef90f95c9fe2bc71c823063405e82
Signed-off-by: default avatarMugata, Sreenivasa Rao <smugat@codeaurora.org>
parents 0177d2dd e7f634dd
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -314,6 +314,8 @@ memory-hotplug.txt
	- Hotpluggable memory support, how to use and current status.
	- Hotpluggable memory support, how to use and current status.
metag/
metag/
	- directory with info about Linux on Meta architecture.
	- directory with info about Linux on Meta architecture.
mhi.txt
	- Modem Host Interface
mips/
mips/
	- directory with info about Linux on MIPS architecture.
	- directory with info about Linux on MIPS architecture.
misc-devices/
misc-devices/
+320 −0
Original line number Original line Diff line number Diff line
MHI Host Interface

MHI used by the host to control and communicate with modem over
high speed peripheral bus.

==============
Node Structure
==============

Main node properties:

- mhi,max-channels
  Usage: required
  Value type: <u32>
  Definition: Maximum number of channels supported by this controller

- mhi,timeout
  Usage: optional
  Value type: <u32>
  Definition: Maximum timeout in ms wait for state and cmd completion

- mhi,use-bb
  Usage: optional
  Value type: <bool>
  Definition: Set true, if PCIe controller does not have full access to host
	DDR, and we're using a dedicated memory pool like cma, or
	carveout pool. Pool must support atomic allocation.

- mhi,buffer-len
  Usage: optional
  Value type: <bool>
  Definition: MHI automatically pre-allocate buffers for some channel.
	Set the length of buffer size to allocate. If not default
	size MHI_MAX_MTU will be used.

============================
mhi channel node properties:
============================

- reg
  Usage: required
  Value type: <u32>
  Definition: physical channel number

- label
  Usage: required
  Value type: <string>
  Definition: given name for the channel

- mhi,num-elements
  Usage: optional
  Value type: <u32>
  Definition: Number of elements transfer ring support

- mhi,event-ring
  Usage: required
  Value type: <u32>
  Definition: Event ring index associated with this channel

- mhi,chan-dir
  Usage: required
  Value type: <u32>
  Definition: Channel direction as defined by enum dma_data_direction
	0 = Bidirectional data transfer
	1 = UL data transfer
	2 = DL data transfer
	3 = No direction, not a regular data transfer channel

- mhi,ee
  Usage: required
  Value type: <u32>
  Definition: Channel execution enviornment (EE) mask as defined by enum
	mhi_ch_ee_mask
		BIT(0) = Channel supported in PBL EE
		BIT(1) = Channel supported in SBL EE
		BIT(2) = Channel supported in AMSS EE
		BIT(3) = Channel supported in RDDM EE
		BIT(4) = Channel supported in WFW EE
		BIT(5) = Channel supported in PTHRU EE
		BIT(6) = Channel supported in EDL EE

- mhi,pollcfg
  Usage: optional
  Value type: <u32>
  Definition: MHI poll configuration, valid only when burst mode is enabled
	0 = Use default (device specific) polling configuration
	For UL channels, value specifies the timer to poll MHI context in
	milliseconds.
	For DL channels, the threshold to poll the MHI context in multiple of
	eight ring element.

- mhi,data-type
  Usage: required
  Value type: <u32>
  Definition: Data transfer type accepted as defined by enum MHI_XFER_TYPE
	0 = accept cpu address for buffer
	1 = accept skb
	2 = accept scatterlist
	3 = offload channel, does not accept any transfer type
	4 = accept pre-mapped buffers
	5 = rsc channel type, accept pre-mapped buffers

- mhi,doorbell-mode
  Usage: required
  Value type: <u32>
  Definition: Channel doorbell mode configuration as defined by enum
	MHI_BRSTMODE
	2 = burst mode disabled
	3 = burst mode enabled

- mhi,lpm-notify
  Usage: optional
  Value type: <bool>
  Definition: This channel master require low power mode enter and exit
  notifications from mhi bus master.

- mhi,offload-chan
  Usage: optional
  Value type: <bool>
  Definition: Client managed channel, MHI host only involved in setting up
	the data path, not involved in active data path.

- mhi,db-mode-switch
  Usage: optional
  Value type: <bool>
  Definition: Must switch to doorbell mode whenever MHI M0 state transition
	happens.

- mhi,auto-queue
  Usage: optional
  Value type: <bool>
  Definition: MHI bus driver will pre-allocate buffers for this channel and
	queue to hardware. If set, client not allowed to queue buffers. Valid
	only for downlink direction.

- mhi,auto-start
  Usage: optional
  Value type: <bool>
  Definition: MHI host driver to automatically start channels once mhi device
	driver probe is complete. This should be only set true if initial
	handshake iniaitead by external modem.

- mhi,wake-capable
  Usage: optional
  Value type: <bool>
  Definition: Time sensitive data channel, host should process all pending data
	before system suspend.

- mhi,chan-type
  Usage: optional
  Value type: <u32>
  Definition: By default, chan-type is same as 'chan,dir' property except
	in some special channels, chan type supplement chan direction.
	3 = default no direction, or inbound coalesced channel

==========================
mhi event node properties:
==========================

- mhi,num-elements
  Usage: required
  Value type: <u32>
  Definition: Number of elements event ring support

- mhi,intmod
  Usage: required
  Value type: <u32>
  Definition: interrupt moderation time in ms

- mhi,msi
  Usage: required
  Value type: <u32>
  Definition: MSI associated with this event ring

- mhi,chan
  Usage: optional
  Value type: <u32>
  Definition: Dedicated channel number, if it's a dedicated event ring

- mhi,priority
  Usage: required
  Value type: <u32>
  Definition: Event ring priority, set to 1 for now

- mhi,brstmode
  Usage: required
  Value type: <u32>
  Definition: Event doorbell mode configuration as defined by
	enum MHI_BRSTMODE
		2 = burst mode disabled
		3 = burst mode enabled

- mhi,data-type
  Usage: optional
  Value type: <u32>
  Definition: Type of data this event ring will process as defined
	by enum mhi_er_data_type
		0 = process data packets (default)
		1 = process mhi control packets

- mhi,hw-ev
  Usage: optional
  Value type: <bool>
  Definition: Event ring associated with hardware channels

- mhi,client-manage
  Usage: optional
  Value type: <bool>
  Definition: Client manages the event ring (use by napi_poll)

- mhi,offload
  Usage: optional
  Value type: <bool>
  Definition: Event ring associated with offload channel


Children node properties:

MHI drivers that require DT can add driver specific information as a child node.

- mhi,chan
  Usage: Required
  Value type: <string>
  Definition: Channel name

========
Example:
========
mhi_controller {
	mhi,max-channels = <105>;

	mhi_chan@0 {
		reg = <0>;
		label = "LOOPBACK";
		mhi,num-elements = <64>;
		mhi,event-ring = <2>;
		mhi,chan-dir = <1>;
		mhi,data-type = <0>;
		mhi,doorbell-mode = <2>;
		mhi,ee = <0x4>;
	};

	mhi_chan@1 {
		reg = <1>;
		label = "LOOPBACK";
		mhi,num-elements = <64>;
		mhi,event-ring = <2>;
		mhi,chan-dir = <2>;
		mhi,data-type = <0>;
		mhi,doorbell-mode = <2>;
		mhi,ee = <0x4>;
	};

	mhi_event@0 {
		mhi,num-elements = <32>;
		mhi,intmod = <1>;
		mhi,msi = <1>;
		mhi,chan = <0>;
		mhi,priority = <1>;
		mhi,bstmode = <2>;
		mhi,data-type = <1>;
	};

	mhi_event@1 {
		mhi,num-elements = <256>;
		mhi,intmod = <1>;
		mhi,msi = <2>;
		mhi,chan = <0>;
		mhi,priority = <1>;
		mhi,bstmode = <2>;
	};

	mhi,timeout = <500>;

	children_node {
		mhi,chan = "LOOPBACK"
		<driver specific properties>
	};
};

================
Children Devices
================

MHI netdev properties

- mhi,chan
  Usage: required
  Value type: <string>
  Definition: Channel name MHI netdev support

- mhi,mru
  Usage: required
  Value type: <u32>
  Definition: Largest packet size interface can receive in bytes.

- mhi,interface-name
  Usage: optional
  Value type: <string>
  Definition: Interface name to be given so clients can identify it

- aliases
  Usage: required
  Value type: <string>
  Definition: mhi net_device should have numbered alias in the alias node,
	in the form of mhi_netdevN, N = 0, 1..n for each network interface.

========
Example:
========

aliases {
	mhi_netdev0 = &mhi_netdev_0;
};

mhi_netdev_0: mhi_rmnet@0 {
	mhi,chan = "IP_HW0";
	mhi,interface-name = "rmnet_mhi";
	mhi,mru = <0x4000>;
};
+1 −0
Original line number Original line Diff line number Diff line
@@ -89,6 +89,7 @@ memory allocation over a PCIe bridge
                                monitoring of holb via IPA uc is required.
                                monitoring of holb via IPA uc is required.
- qcom,wlan-ce-db-over-pcie: Boolean context flag to represent WLAN CE DB
- qcom,wlan-ce-db-over-pcie: Boolean context flag to represent WLAN CE DB
				over pcie bus or not.
				over pcie bus or not.
- qcom,use-xbl-boot: Boolean to indicate XBL boot loading for IPA FW


IPA pipe sub nodes (A2 static pipes configurations):
IPA pipe sub nodes (A2 static pipes configurations):


+2 −2
Original line number Original line Diff line number Diff line
@@ -2580,7 +2580,7 @@ Example:
				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
				<&afe_proxy_tx>, <&incall_record_rx>,
				<&afe_proxy_tx>, <&incall_record_rx>,
				<&incall_record_tx>, <&incall_music_rx>,
				<&incall_record_tx>, <&incall_music_rx>,
				<&dai_sec_auxpcm>;
				<&dai_sec_auxpcm>, <&incall_music_dl_rx>;
		asoc-cpu-names = "msm-dai-q6-auxpcm.1",
		asoc-cpu-names = "msm-dai-q6-auxpcm.1",
				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
				"msm-dai-stub-dev.4", "msm-dai-stub-dev.5",
				"msm-dai-stub-dev.4", "msm-dai-stub-dev.5",
@@ -2589,7 +2589,7 @@ Example:
				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
				"msm-dai-q6-auxpcm.2";
				"msm-dai-q6-auxpcm.2", "msm-dai-q6-dev.32774";
	};
	};


* SDX ASoC Auto Machine driver
* SDX ASoC Auto Machine driver
+2 −0
Original line number Original line Diff line number Diff line
@@ -191,6 +191,8 @@ Optional properties :
	both "USB" and "USB-HOST" events.
	both "USB" and "USB-HOST" events.
- qcom,phy-id-high-as-peripheral: If present, specifies device to switch to device mode
- qcom,phy-id-high-as-peripheral: If present, specifies device to switch to device mode
	if PHY ID state is high or host mode if PHY ID state is low.
	if PHY ID state is high or host mode if PHY ID state is low.
- qcom,enumeration-check-for-sdp: If present, start timer for SDP charger to check enumeration
	happen or not.


Example HSUSB OTG controller device node :
Example HSUSB OTG controller device node :
	usb@f9690000 {
	usb@f9690000 {
Loading