Skip to content

Commit 8645f09

Browse files
committed
Merge tag 'mfd-next-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
Pull mfd updates from Lee Jones: "New Drivers: - Add support for IQS620A/621/622/624/625 Azoteq IQS62X Sensors New Device Support: - Add support for ADC, IRQ, Regulator, RTC and WDT to Ricoh RN5T618 PMIC - Add support for Comet Lake to Intel LPSS New Functionality: - Add support for Charger Detection to Spreadtrum SC27xx PMICs - Add support for Interrupt Polarity to Dialog Semi DA9062/61 PMIC - Add ACPI enumeration support to Diolan DLN2 USB Adaptor Fix-ups: - Device Tree; iqs62x, rn5t618, cros_ec_dev, stm32-lptimer, rohm,bd71837, rohm,bd71847 - I2C registration; rn5t618 - Kconfig; MFD_CPCAP, AB8500_CORE, MFD_WM8994, MFD_WM97xx, MFD_STPMIC1 - Use flexible-array members; omap-usb-tll, qcom-pm8xxx - Remove unnecessary casts; omap-usb-host, omap-usb-tll - Power (suspend/resume/poweroff) enhancements; rk808 - Improve error/sanity checking; dln2 - Use snprintf(); aat2870-core Bug Fixes: - Fix PCI IDs in intel-lpss-pci" * tag 'mfd-next-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (33 commits) mfd: intel-lpss: Fix Intel Elkhart Lake LPSS I2C input clock mfd: aat2870: Use scnprintf() for avoiding potential buffer overflow mfd: dln2: Allow to be enumerated via ACPI mfd: da9062: Add support for interrupt polarity defined in device tree dt-bindings: bd718x7: Yamlify and add BD71850 mfd: dln2: Fix sanity checking for endpoints mfd: intel-lpss: Add Intel Comet Lake PCH-V PCI IDs mfd: sc27xx: Add USB charger type detection support dt-bindings: mfd: Document STM32 low power timer bindings mfd: rk808: Convert RK805 to shutdown/suspend hooks mfd: rk808: Reduce shutdown duplication mfd: rk808: Stop using syscore ops mfd: rk808: Ensure suspend/resume hooks always work mfd: rk808: Always use poweroff when requested mfd: omap: Remove useless cast for driver.name mfd: Kconfig: Fix some misspelling of the word functionality mfd: pm8xxx: Replace zero-length array with flexible-array member mfd: omap-usb-tll: Replace zero-length array with flexible-array member mfd: cpcap: Fix compile if MFD_CORE is not selected mfd: cros_ec: Check DT node for usbpd-notify add ...
2 parents b574beb + d2923aa commit 8645f09

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+4688
-379
lines changed
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/input/iqs62x-keys.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Azoteq IQS620A/621/622/624/625 Keys and Switches
8+
9+
maintainers:
10+
- Jeff LaBundy <[email protected]>
11+
12+
description: |
13+
The Azoteq IQS620A, IQS621, IQS622, IQS624 and IQS625 multi-function sensors
14+
feature a variety of self-capacitive, mutual-inductive and Hall-effect sens-
15+
ing capabilities that can facilitate a variety of contactless key and switch
16+
applications.
17+
18+
These functions are collectively represented by a "keys" child node from the
19+
parent MFD driver. See Documentation/devicetree/bindings/mfd/iqs62x.yaml for
20+
further details and examples. Sensor hardware configuration (self-capacitive
21+
vs. mutual-inductive, etc.) is selected based on the device's firmware.
22+
23+
properties:
24+
compatible:
25+
enum:
26+
- azoteq,iqs620a-keys
27+
- azoteq,iqs621-keys
28+
- azoteq,iqs622-keys
29+
- azoteq,iqs624-keys
30+
- azoteq,iqs625-keys
31+
32+
linux,keycodes:
33+
allOf:
34+
- $ref: /schemas/types.yaml#/definitions/uint32-array
35+
- minItems: 1
36+
maxItems: 16
37+
description: |
38+
Specifies the numeric keycodes associated with each available touch or
39+
proximity event according to the following table. An 'x' indicates the
40+
event is supported for a given device. Specify 0 for unused events.
41+
42+
-------------------------------------------------------------------------
43+
| # | Event | IQS620A | IQS621 | IQS622 | IQS624 | IQS625 |
44+
-------------------------------------------------------------------------
45+
| 0 | CH0 Touch | x | x | x | x | x |
46+
| | Antenna 1 Touch* | x | | | | |
47+
-------------------------------------------------------------------------
48+
| 1 | CH0 Proximity | x | x | x | x | x |
49+
| | Antenna 1 Prox.* | x | | | | |
50+
-------------------------------------------------------------------------
51+
| 2 | CH1 Touch | x | x | x | x | x |
52+
| | Ant. 1 Deep Touch* | x | | | | |
53+
-------------------------------------------------------------------------
54+
| 3 | CH1 Proximity | x | x | x | x | x |
55+
-------------------------------------------------------------------------
56+
| 4 | CH2 Touch | x | | | | |
57+
-------------------------------------------------------------------------
58+
| 5 | CH2 Proximity | x | | | | |
59+
| | Antenna 2 Prox.* | x | | | | |
60+
-------------------------------------------------------------------------
61+
| 6 | Metal (+) Touch** | x | x | | | |
62+
| | Ant. 2 Deep Touch* | x | | | | |
63+
-------------------------------------------------------------------------
64+
| 7 | Metal (+) Prox.** | x | x | | | |
65+
| | Antenna 2 Touch* | x | | | | |
66+
-------------------------------------------------------------------------
67+
| 8 | Metal (-) Touch** | x | x | | | |
68+
-------------------------------------------------------------------------
69+
| 9 | Metal (-) Prox.** | x | x | | | |
70+
-------------------------------------------------------------------------
71+
| 10 | SAR Active*** | x | | x | | |
72+
-------------------------------------------------------------------------
73+
| 11 | SAR Quick Rel.*** | x | | x | | |
74+
-------------------------------------------------------------------------
75+
| 12 | SAR Movement*** | x | | x | | |
76+
-------------------------------------------------------------------------
77+
| 13 | SAR Filter Halt*** | x | | x | | |
78+
-------------------------------------------------------------------------
79+
| 14 | Wheel Up | | | | x | |
80+
-------------------------------------------------------------------------
81+
| 15 | Wheel Down | | | | x | |
82+
-------------------------------------------------------------------------
83+
* Two-channel SAR. Replaces CH0-2 plus metal touch and proximity events
84+
if enabled via firmware.
85+
** "+" and "-" refer to the polarity of a channel's delta (LTA - counts),
86+
where "LTA" is defined as the channel's long-term average.
87+
*** One-channel SAR. Replaces CH0-2 touch and proximity events if enabled
88+
via firmware.
89+
90+
patternProperties:
91+
"^hall-switch-(north|south)$":
92+
type: object
93+
description:
94+
Represents north/south-field Hall-effect sensor touch or proximity
95+
events. Note that north/south-field orientation is reversed on the
96+
IQS620AXzCSR device due to its flip-chip package.
97+
98+
properties:
99+
linux,code:
100+
$ref: /schemas/types.yaml#/definitions/uint32
101+
description: Numeric switch code associated with the event.
102+
103+
azoteq,use-prox:
104+
$ref: /schemas/types.yaml#/definitions/flag
105+
description:
106+
If present, specifies that Hall-effect sensor reporting should
107+
use the device's wide-range proximity threshold instead of its
108+
close-range touch threshold (default).
109+
110+
required:
111+
- linux,code
112+
113+
additionalProperties: false
114+
115+
if:
116+
properties:
117+
compatible:
118+
contains:
119+
enum:
120+
- azoteq,iqs624-keys
121+
- azoteq,iqs625-keys
122+
then:
123+
patternProperties:
124+
"^hall-switch-(north|south)$": false
125+
126+
required:
127+
- compatible
128+
- linux,keycodes
129+
130+
additionalProperties: false
131+
132+
...
Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/mfd/iqs62x.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Azoteq IQS620A/621/622/624/625 Multi-Function Sensors
8+
9+
maintainers:
10+
- Jeff LaBundy <[email protected]>
11+
12+
description: |
13+
The Azoteq IQS620A, IQS621, IQS622, IQS624 and IQS625 multi-function sensors
14+
integrate multiple sensing technologies in a single package.
15+
16+
Link to datasheets: https://www.azoteq.com/
17+
18+
properties:
19+
compatible:
20+
enum:
21+
- azoteq,iqs620a
22+
- azoteq,iqs621
23+
- azoteq,iqs622
24+
- azoteq,iqs624
25+
- azoteq,iqs625
26+
27+
reg:
28+
maxItems: 1
29+
30+
interrupts:
31+
maxItems: 1
32+
33+
firmware-name:
34+
$ref: /schemas/types.yaml#/definitions/string
35+
description:
36+
Specifies the name of the calibration and configuration file selected by
37+
the driver. If this property is omitted, the name is chosen based on the
38+
device name with ".bin" as the extension (e.g. iqs620a.bin for IQS620A).
39+
40+
keys:
41+
$ref: ../input/iqs62x-keys.yaml
42+
43+
pwm:
44+
$ref: ../pwm/iqs620a-pwm.yaml
45+
46+
required:
47+
- compatible
48+
- reg
49+
- interrupts
50+
51+
additionalProperties: false
52+
53+
examples:
54+
- |
55+
/*
56+
* Dual capacitive buttons with proximity-activated function, unipolar lid
57+
* switch and panel-mounted LED.
58+
*/
59+
#include <dt-bindings/input/input.h>
60+
#include <dt-bindings/interrupt-controller/irq.h>
61+
62+
i2c {
63+
#address-cells = <1>;
64+
#size-cells = <0>;
65+
66+
iqs620a@44 {
67+
compatible = "azoteq,iqs620a";
68+
reg = <0x44>;
69+
interrupt-parent = <&gpio>;
70+
interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
71+
72+
keys {
73+
compatible = "azoteq,iqs620a-keys";
74+
75+
linux,keycodes = <KEY_SELECT>,
76+
<KEY_MENU>,
77+
<KEY_OK>,
78+
<KEY_MENU>;
79+
80+
hall-switch-south {
81+
linux,code = <SW_LID>;
82+
azoteq,use-prox;
83+
};
84+
};
85+
86+
iqs620a_pwm: pwm {
87+
compatible = "azoteq,iqs620a-pwm";
88+
#pwm-cells = <2>;
89+
};
90+
};
91+
};
92+
93+
pwmleds {
94+
compatible = "pwm-leds";
95+
96+
panel {
97+
pwms = <&iqs620a_pwm 0 1000000>;
98+
max-brightness = <255>;
99+
};
100+
};
101+
102+
- |
103+
/* Single inductive button with bipolar dock/tablet-mode switch. */
104+
#include <dt-bindings/input/input.h>
105+
#include <dt-bindings/interrupt-controller/irq.h>
106+
107+
i2c {
108+
#address-cells = <1>;
109+
#size-cells = <0>;
110+
111+
iqs620a@44 {
112+
compatible = "azoteq,iqs620a";
113+
reg = <0x44>;
114+
interrupt-parent = <&gpio>;
115+
interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
116+
117+
firmware-name = "iqs620a_coil.bin";
118+
119+
keys {
120+
compatible = "azoteq,iqs620a-keys";
121+
122+
linux,keycodes = <0>,
123+
<0>,
124+
<0>,
125+
<0>,
126+
<0>,
127+
<0>,
128+
<KEY_MUTE>;
129+
130+
hall-switch-north {
131+
linux,code = <SW_DOCK>;
132+
};
133+
134+
hall-switch-south {
135+
linux,code = <SW_TABLET_MODE>;
136+
};
137+
};
138+
};
139+
};
140+
141+
- |
142+
/* Dual capacitive buttons with volume knob. */
143+
#include <dt-bindings/input/input.h>
144+
#include <dt-bindings/interrupt-controller/irq.h>
145+
146+
i2c {
147+
#address-cells = <1>;
148+
#size-cells = <0>;
149+
150+
iqs624@44 {
151+
compatible = "azoteq,iqs624";
152+
reg = <0x44>;
153+
interrupt-parent = <&gpio>;
154+
interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
155+
156+
keys {
157+
compatible = "azoteq,iqs624-keys";
158+
159+
linux,keycodes = <BTN_0>,
160+
<0>,
161+
<BTN_1>,
162+
<0>,
163+
<0>,
164+
<0>,
165+
<0>,
166+
<0>,
167+
<0>,
168+
<0>,
169+
<0>,
170+
<0>,
171+
<0>,
172+
<0>,
173+
<KEY_VOLUMEUP>,
174+
<KEY_VOLUMEDOWN>;
175+
};
176+
};
177+
};
178+
179+
...

Documentation/devicetree/bindings/mfd/rn5t618.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ Required properties:
1515
- reg: the I2C slave address of the device
1616

1717
Optional properties:
18+
- interrupts: interrupt mapping for IRQ
19+
See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
1820
- system-power-controller:
1921
See Documentation/devicetree/bindings/power/power-controller.txt
2022

@@ -32,6 +34,8 @@ Example:
3234
pmic@32 {
3335
compatible = "ricoh,rn5t618";
3436
reg = <0x32>;
37+
interrupt-parent = <&gpio5>;
38+
interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
3539
system-power-controller;
3640

3741
regulators {

0 commit comments

Comments
 (0)