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

Commit c5a33b90 authored by Jeyaprakash Soundrapandian's avatar Jeyaprakash Soundrapandian Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Merge remote-tracking branch 'quic/msm-4.9' into topic branch" into dev/msm-4.9-camx

parents 263a87d0 6db77bde
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -182,6 +182,11 @@ DMA_ATTR_FORCE_COHERENT

When passed to a DMA map call the DMA_ATTR_FORCE_COHERENT DMA
attribute can be used to force a buffer to be mapped as IO coherent.

When the DMA_ATTR_FORCE_COHERENT attribute is set during a map call ensure
that it is also set during for the matching unmap call to ensure that the
correct cache maintenance is carried out.

This DMA attribute is only currently supported for arm64 stage 1 IOMMU
mappings.

@@ -193,5 +198,10 @@ attribute can be used to force a buffer to not be mapped as IO
coherent.
The DMA_ATTR_FORCE_NON_COHERENT DMA attribute overrides the buffer IO
coherency configuration set by making the device IO coherent.

When the DMA_ATTR_FORCE_NON_COHERENT attribute is set during a map call
ensure that it is also set during for the matching unmap call to ensure
that the correct cache maintenance is carried out.

This DMA attribute is only currently supported for arm64 stage 1 IOMMU
mappings.
+257 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc. Haptics driver

QPNP (Qualcomm Technologies, Inc. Plug N Play) Haptics is a peripheral on some
QTI PMICs. It can be interfaced with the host processor via SPMI or I2C bus.

Haptics peripheral can support different actuators or vibrators,
1. Eccentric Rotation Mass (ERM)
2. Linear Resonant Actuator (LRA)

Also, it can support multiple modes of operation: Direct, Buffer, PWM or Audio.

Haptics device is described under a single level of node.

Properties:

- compatible
  Usage:      required
  Value type: <string>
  Definition: "qcom,qpnp-haptics".

- reg
  Usage:      required
  Value type: <u32>
  Definition: Base address of haptics peripheral.

- interrupts
  Usage:      required
  Value type: <prop-encoded-array>
  Definition: Peripheral interrupt specifier.

- interrupt-names
  Usage:      required
  Value type: <stringlist>
  Definition: Interrupt names.  This list must match up 1-to-1 with the
		interrupts specified in the 'interrupts' property. Currently
		supported interrupts are short-circuit and play.

- qcom,pmic-revid
  Usage:      required
  Value type: <phandle>
  Definition: Should specify the phandle of PMIC's revid module. This is used to
		identify the PMIC subtype.

- qcom,pmic-misc
  Usage:      optional
  Value type: <phandle>
  Definition: Should specify the phandle of PMIC's misc module. This is used to
		read the clock trim error register under MISC peripheral.

- qcom,misc-clk-trim-error-reg
  Usage:      optional
  Value type: <u32>
  Definition: Register offset in MISC peripheral to read the clock trim error.
		If this is specified, then qcom,pmic-misc should be specified.

- qcom,actuator-type
  Usage:      optional
  Value type: <u32>
  Definition: Allowed values are 0 for LRA and 1 for ERM. If this is not
		specified, then LRA type will be used by default.

- qcom,play-mode
  Usage:      optional
  Value type: <string>
  Definition: Allowed values are: "direct", "buffer", "pwm", "auto". If not
		specified for LRA actuator, auto mode will be selected by
		default.

- qcom,wave-shape
  Usage:      optional
  Value type: <string>
  Definition: Wave shape to be played. Allowed values: "sine" or "square".
		Default value is "square".

- qcom,wave-play-rate-us
  Usage:      optional
  Value type: <u32>
  Definition: Wave sample duration in microseconds. This should match with
		the frequency the vibrator supports.
		Allowed values are: 0 to 20475. Default value is 5715.

- qcom,max-play-time-us
  Usage:      optional
  Value type: <u32>
  Definition: Maximum play time supported in microseconds. Default value is
		15000.

- qcom,vmax-mv
  Usage:      optional
  Value type: <u32>
  Definition: Maximum output voltage in millivolts. Value specified here will
		be rounded off to the closest multiple of 116 mV.
		Allowed values: 0 to 3596. Default value is 3596.

- qcom,ilim-ma
  Usage:      optional
  Value type: <u32>
  Definition: Output current limit in mA. Allowed values: 400 or 800. Default
		value is 400.

- qcom,en-brake
  Usage:      optional
  Value type: <empty>
  Definition: Enables internal reverse braking.

- qcom,brake-pattern
  Usage:      optional
  Value type: <prop-encoded-array>
  Definition: Brake pattern to be applied. If specified, should be having
		4 elements. Allowed values for each element are:
		0, 1: Vmax/4, 2: Vmax/2, 3: Vmax.

- qcom,sc-dbc-cycles
  Usage:      optional
  Value type: <u32>
  Definition: Short circuit debounce cycles for internal PWM.
		Allowed values: 0, 8, 16 or 32.

Following properties are specific only to LRA vibrators.

- qcom,lra-auto-res-mode
  Usage:      optional
  Value type: <string>
  Definition: Auto resonance method. Allowed values are:
		For pmi8998 and chips earlier,
		"none" : No auto resonance
		"zxd" : Zero crossing detection method
		"qwd" : Quarter wave drive method
		"max-qwd" : Maximum QWD
		"zxd-eop" : ZXD + End of Pattern
		For pm660,
		"zxd" : Zero crossing detection method
		"qwd" : Quarter wave drive method

- qcom,lra-high-z
  Usage:      optional
  Value type: <string>
  Definition: High Z configuration for auto resonance. Allowed values are:
		"none", "opt1", "opt2" and "opt3".
		For pm660, "opt0" is valid value for 1 LRA period.

- qcom,lra-res-cal-period
  Usage:      optional
  Value type: <u32>
  Definition: Auto resonance calibration period. Allowed values are:
		For pmi8998 and chips earlier: 4, 8, 16, and 32.
		For pm660: 4, 8, 16, 32, 64, 128 and 256.

- qcom,lra-qwd-drive-duration
  Usage:      optional
  Value type: <u32>
  Definition: LRA drive duration in QWD mode. Applies only for pm660 currently.
		Allowed values are: 0 and 1, for 1/4 and 3/8 LRA period.
		respectively.

- qcom,lra-calibrate-at-eop
  Usage:      optional
  Value type: <u32>
  Definition: Enables calibration at end of pattern. Applies only for pm660
		currently. Allowed values are: 0 and 1.

- qcom,auto-res-err-recovery-hw
  Usage:      optional
  Value type: <empty>
  Definition: Enables Hardware auto resonance error recovery. Applies only for
		pm660 currently.

- qcom,drive-period-code-max-variation-pct
  Usage:      optional
  Value type: <u32>
  Definition: Maximum allowed variation of LRA drive period code in percentage
		above which RATE_CFG registers will not be updated by SW when
		auto resonance is enabled and auto resonance error correction
		algorithm is running. If not specified, default value is 25%.

- qcom,drive-period-code-min-variation-pct
  Usage:      optional
  Value type: <u32>
  Definition: Minimum allowed variation of LRA drive period code in percentage
		below which RATE_CFG registers will not be updated by SW when
		auto resonance is enabled and auto resonance error correction
		algorithm is running. If not specified, default value is 25%.

Following properties are applicable only when "qcom,play-mode" is set to
"buffer".

- qcom,wave-rep-cnt
  Usage:      optional
  Value type: <u32>
  Definition: Repetition count for wave form.
		Allowed values are: 1, 2, 4, 8, 16, 32, 64 and 128. Default
		value is 1.

- qcom,wave-samp-rep-cnt
  Usage:      optional
  Value type: <u32>
  Definition: Repetition count for each sample of wave form. Allowed values
		are: 1, 2, 4 and 8. Default value is 1.

- qcom,wave-samples
  Usage:      optional
  Value type: <prop-encoded-array>
  Definition: Wave samples in an array of 8 elements. Each element takes the
		following representation, bit 0: unused, bits[5:1] : amplitude,
		bit 6: overdrive, bit 7: sign. Default sample value is 0x3E.

Following properties are applicable only when "qcom,play-mode" is set to
"pwm".

- pwms
  Usage:      required, if "qcom,play-mode" is set to "pwm".
  Value type: <phandle>
  Definition: PWM device that is feeding its output to Haptics.

- qcom,period-us
  Usage:      required, if "qcom,play-mode" is set to "pwm".
  Value type: <u32>
  Definition: PWM period in us.

- qcom,duty-us
  Usage:      required, if "qcom,play-mode" is set to "pwm".
  Value type: <u32>
  Definition: PWM duty cycle in us.

- qcom,ext-pwm-freq-khz
  Usage:      optional
  Value type: <u32>
  Definition: Frequency for external PWM in KHz.
		Allowed values are: 25, 50, 75 and 100.

- qcom,ext-pwm-dtest-line
  Usage:      optional
  Value type: <u32>
  Definition: DTEST line which is used for external PWM.

Example:
	qcom,haptics@c000 {
		compatible = "qcom,qpnp-haptics";
		reg = <0xc000 0x100>;
		interrupts = <0x3 0xc0 0x0 IRQ_TYPE_EDGE_RISING>,
			     <0x3 0xc0 0x1 IRQ_TYPE_EDGE_BOTH>;
		interrupt-names = "hap-sc-irq", "hap-play-irq";
		qcom,pmic-revid = <&pmi8998_revid>;
		qcom,pmic-misc = <&pmi8998_misc>;
		qcom,misc-clk-trim-error-reg = <0xf3>;
		qcom,actuator-type = <0>;
		qcom,play-mode = "direct";
		qcom,vmax-mv = <3200>;
		qcom,ilim-ma = <800>;
		qcom,sc-dbc-cycles = <8>;
		qcom,wave-play-rate-us = <6667>;
		qcom,en-brake;
		qcom,brake-pattern = <0x3 0x0 0x0 0x0>;
		qcom,lra-high-z = "opt1";
		qcom,lra-auto-res-mode = "qwd";
		qcom,lra-res-cal-period = <4>;
	};
+1 −37
Original line number Diff line number Diff line
@@ -6,20 +6,11 @@ Venus
Required properties:
- compatible : one of:
	- "qcom,msm-vidc"
- qcom,max-hw-load: The maximum load the hardware can support expressed in units
  of macroblocks per second. The load is a reflection of hardware capability
  rather than a performance guarantee. Performance is guaranteed only up to
  advertised capability of the chipset.
- qcom,max-hq-mbs-per-frame : Max no of mbs per frame beyond which
    "High Quality" encoding is not supported.
- qcom,max-hq-frames-per-sec : Max no of frames per second beyond which
    "High Quality" encoding is not supported.
        - "qcom,sdm845-vidc" : Invokes driver specific data for SDM845.

Optional properties:
- reg : offset and length of the register set for the device.
- interrupts : should contain the vidc interrupt.
- qcom,platform-version : mask and shift of the platform version bits
    in efuse register.
- qcom,reg-presets : list of offset-value pairs for registers to be written.
  The offsets are from the base offset specified in 'reg'. This is mainly
  used for QoS, VBIF, etc. presets for video.
@@ -64,20 +55,9 @@ Optional properties:
       macro block in low power mode.
       the required frequency to get the final frequency, the factor is
       represented in Q16 format.
- qcom,sw-power-collapse = A bool indicating if video hardware core can be
  power collapsed in idle state.
- qcom,never-unload-fw = A bool indicating if video firmware should be not be
  unloaded after all active sessions have closed.  Once a new session starts up
  after this, the firmware will be ready to go.  This should be set on platforms
  that desire low-latency video startup and don't mind "leakage" of some memory.
- qcom,use-non-secure-pil = A bool indicating which type of pil to use to load
  the fw.
- qcom,fw-bias = The address at which venus fw is loaded (manually).
- qcom,enable-thermal-mitigation = A bool to enable thermal mitigation when
  thermal run away occurs.
- qcom,hfi-version = The hfi packetization version supported by venus firmware.
  If hfi version is not specified, then packetization type will default to
  legacy.
- qcom,vidc-iommu-domains = node containing individual domain nodes, each with:
     - a unique domain name for the domain node (e.g vidc,domain-ns)
     - qcom,vidc-domain-phandle: phandle for the domain as defined in
@@ -97,13 +77,6 @@ Optional properties:
           internal persist = 0x200
           internal persist1 = 0x400
           internal cmd queue = 0x800
- qcom,pm-qos-latency-us = The latency used to vote for QOS power manager. This
value is typically max(latencies of every cluster at all power levels) + 1
- qcom,max-secure-instances = An int containing max number of concurrent secure
  instances supported, accounting for venus and system wide limitations like
  memory, performance etc.
- qcom,debug-timeout = A bool indicating that FW errors such as SYS_ERROR,
  SESSION_ERROR and timeouts will be treated as Fatal.
- cache-slice-names = An array of supported cache slice names by llcc
- cache-slices = An array of supported cache slice ids corresponding
  to cache-slice-names by llcc
@@ -171,25 +144,16 @@ Example:
		venus-supply = <&gdsc>;
		venus-core0-supply = <&gdsc1>;
		venus-core1-supply = <&gdsc2>;
		qcom,hfi-version = "3xx";
		qcom,reg-presets = <0x80004 0x1>,
			<0x80178 0x00001FFF>;
		qcom,qdss-presets = <0xFC307000 0x1000>,
			<0xFC322000 0x1000>;
		qcom,max-hw-load = <1224450>; /* 4k @ 30 + 1080p @ 30*/
		qcom,never-unload-fw;
		clock-names = "foo_clk", "bar_clk", "baz_clk";
		qcom,clock-configs = <0x3 0x1 0x0>;
		qcom,sw-power-collapse;
		qcom,buffer-type-tz-usage-table = <0x1 0x1>,
						<0x1fe 0x2>;
		qcom,enable-thermal-mitigation;
		qcom,use-non-secure-pil;
		qcom,use_dynamic_bw_update;
		qcom,fw-bias = <0xe000000>;
		qcom,allowed-clock-rates = <200000000 300000000 400000000>;
		qcom,max-hq-mbs-per-frame = <8160>;
		qcom,max-hq-frames-per-sec = <60>;
		msm_vidc_cb1: msm_vidc_cb1 {
			compatible = "qcom,msm-vidc,context-bank";
			label = "venus_ns";
+13 −0
Original line number Diff line number Diff line
* Scheduler Energy Driver

Scheduler Energy Driver updates capacities in the scheduler group energy array.
The array contains power cost at each CPU operating points so energy aware
scheduler (EAS) can utilize it for task placement.

Required properties:
- compatible:		Must be "sched-energy"

Example:
	energy-costs {
		compatible = "sched-energy";
	}
+8 −1
Original line number Diff line number Diff line
@@ -7,7 +7,6 @@ Required properties :
	"core_base" : usb controller register set
- interrupts: IRQ lines used by this controller
- interrupt-names : Interrupt resource entries are :
	"hs_phy_irq" : Interrupt from HS PHY for asynchronous events in LPM.
	"pwr_event_irq" : Interrupt to controller for asynchronous events in LPM.
	Used for SS-USB power events.
 - clocks: a list of phandles to the controller clocks. Use as per
@@ -36,6 +35,12 @@ Optional properties :
- interrupt-names : Optional interrupt resource entries are:
    "pmic_id_irq" : Interrupt from PMIC for external ID pin notification.
    "ss_phy_irq"  : Interrupt from super speed phy for wake up notification.
    "hs_phy_irq" : Interrupt from HS PHY for asynchronous events in LPM.
    "dp_hs_phy_irq" : Interrupt from HS PHY for asynchronous events in LPM
    going through PDC. (use qcom,use-pdc-interrupts property)
    "dm_hs_phy_irq" : Interrupt from HS PHY for asynchronous events in LPM
    going through PDC. (use qcom,use-pdc-interrupts property)

 - clocks: a list of phandles to the controller clocks. Use as per
   Documentation/devicetree/bindings/clock/clock-bindings.txt
 - clock-names: Names of the clocks in 1-1 correspondence with the "clocks"
@@ -57,6 +62,8 @@ Optional properties :
- qcom,core-clk-rate: If present, indicates clock frequency to be set for USB master clock.
- qcom,core-clk-rate-hs: If present, indicates min core clock frequency required to support
  hs speed.
- qcom,use-pdc-interrupts: It present, it configures provided PDC IRQ with required
  configuration for wakeup functionality.
- extcon: phandles to external connector devices. First phandle should point to
	  external connector, which provide "USB" cable events, the second
	  should point to external connector device, which provide "USB-HOST"
Loading