Skip to content

Commit d7ab730

Browse files
committed
Merge tag 'mfd-3.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-next
Pull MFD update from Samuel Ortiz: "For 3.10 we have a few new MFD drivers for: - The ChromeOS embedded controller which provides keyboard, battery and power management services. This controller is accessible through i2c or SPI. - Silicon Laboratories 476x controller, providing access to their FM chipset and their audio codec. - Realtek's RTS5249, a memory stick, MMC and SD/SDIO PCI based reader. - Nokia's Tahvo power button and watchdog device. This device is very similar to Retu and is thus supported by the same code base. - STMicroelectronics STMPE1801, a keyboard and GPIO controller supported by the stmpe driver. - ST-Ericsson AB8540 and AB8505 power management and voltage converter controllers through the existing ab8500 code. Some other drivers got cleaned up or improved. In particular: - The Linaro/STE guys got the ab8500 driver in sync with their internal code through a series of optimizations, fixes and improvements. - The AS3711 and OMAP USB drivers now have DT support. - The arizona clock and interrupt handling code got improved. - The wm5102 register patch and boot mechanism also got improved." * tag 'mfd-3.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-next: (104 commits) mfd: si476x: Don't use 0bNNN mfd: vexpress: Handle pending config transactions mfd: ab8500: Export ab8500_gpadc_sw_hw_convert properly mfd: si476x: Fix i2c warning mfd: si476x: Add header files and Kbuild plumbing mfd: si476x: Add chip properties handling code mfd: si476x: Add the bulk of the core driver mfd: si476x: Add commands abstraction layer mfd: rtsx: Support RTS5249 mfd: retu: Add Tahvo support mfd: ucb1400: Pass ucb1400-gpio data through ac97 bus mfd: wm8994: Add some OF properties mfd: wm8994: Add device ID data to WM8994 OF device IDs input: Export matrix_keypad_parse_of_params() mfd: tps65090: Add compatible string for charger subnode mfd: db8500-prcmu: Support platform dependant device selection mfd: syscon: Fix warnings when printing resource_size_t of: Add stub of_get_parent for non-OF builds mfd: omap-usb-tll: Convert to devm_ioremap_resource() mfd: omap-usb-host: Convert to devm_ioremap_resource() ...
2 parents 01227a8 + 99f4c6b commit d7ab730

88 files changed

Lines changed: 9044 additions & 1405 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
ChromeOS EC Keyboard
2+
3+
Google's ChromeOS EC Keyboard is a simple matrix keyboard implemented on
4+
a separate EC (Embedded Controller) device. It provides a message for reading
5+
key scans from the EC. These are then converted into keycodes for processing
6+
by the kernel.
7+
8+
This binding is based on matrix-keymap.txt and extends/modifies it as follows:
9+
10+
Required properties:
11+
- compatible: "google,cros-ec-keyb"
12+
13+
Optional properties:
14+
- google,needs-ghost-filter: True to enable a ghost filter for the matrix
15+
keyboard. This is recommended if the EC does not have its own logic or
16+
hardware for this.
17+
18+
19+
Example:
20+
21+
cros-ec-keyb {
22+
compatible = "google,cros-ec-keyb";
23+
keypad,num-rows = <8>;
24+
keypad,num-columns = <13>;
25+
google,needs-ghost-filter;
26+
/*
27+
* Keymap entries take the form of 0xRRCCKKKK where
28+
* RR=Row CC=Column KKKK=Key Code
29+
* The values below are for a US keyboard layout and
30+
* are taken from the Linux driver. Note that the
31+
* 102ND key is not used for US keyboards.
32+
*/
33+
linux,keymap = <
34+
/* CAPSLCK F1 B F10 */
35+
0x0001003a 0x0002003b 0x00030030 0x00040044
36+
/* N = R_ALT ESC */
37+
0x00060031 0x0008000d 0x000a0064 0x01010001
38+
/* F4 G F7 H */
39+
0x0102003e 0x01030022 0x01040041 0x01060023
40+
/* ' F9 BKSPACE L_CTRL */
41+
0x01080028 0x01090043 0x010b000e 0x0200001d
42+
/* TAB F3 T F6 */
43+
0x0201000f 0x0202003d 0x02030014 0x02040040
44+
/* ] Y 102ND [ */
45+
0x0205001b 0x02060015 0x02070056 0x0208001a
46+
/* F8 GRAVE F2 5 */
47+
0x02090042 0x03010029 0x0302003c 0x03030006
48+
/* F5 6 - \ */
49+
0x0304003f 0x03060007 0x0308000c 0x030b002b
50+
/* R_CTRL A D F */
51+
0x04000061 0x0401001e 0x04020020 0x04030021
52+
/* S K J ; */
53+
0x0404001f 0x04050025 0x04060024 0x04080027
54+
/* L ENTER Z C */
55+
0x04090026 0x040b001c 0x0501002c 0x0502002e
56+
/* V X , M */
57+
0x0503002f 0x0504002d 0x05050033 0x05060032
58+
/* L_SHIFT / . SPACE */
59+
0x0507002a 0x05080035 0x05090034 0x050B0039
60+
/* 1 3 4 2 */
61+
0x06010002 0x06020004 0x06030005 0x06040003
62+
/* 8 7 0 9 */
63+
0x06050009 0x06060008 0x0608000b 0x0609000a
64+
/* L_ALT DOWN RIGHT Q */
65+
0x060a0038 0x060b006c 0x060c006a 0x07010010
66+
/* E R W I */
67+
0x07020012 0x07030013 0x07040011 0x07050017
68+
/* U R_SHIFT P O */
69+
0x07060016 0x07070036 0x07080019 0x07090018
70+
/* UP LEFT */
71+
0x070b0067 0x070c0069>;
72+
};
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
AS3711 is an I2C PMIC from Austria MicroSystems with multiple DCDC and LDO power
2+
supplies, a battery charger and an RTC. So far only bindings for the two stepup
3+
DCDC converters are defined. Other DCDC and LDO supplies are configured, using
4+
standard regulator properties, they must belong to a sub-node, called
5+
"regulators" and be called "sd1" to "sd4" and "ldo1" to "ldo8." Stepup converter
6+
configuration should be placed in a subnode, called "backlight."
7+
8+
Compulsory properties:
9+
- compatible : must be "ams,as3711"
10+
- reg : specifies the I2C address
11+
12+
To use the SU1 converter as a backlight source the following two properties must
13+
be provided:
14+
- su1-dev : framebuffer phandle
15+
- su1-max-uA : maximum current
16+
17+
To use the SU2 converter as a backlight source the following two properties must
18+
be provided:
19+
- su2-dev : framebuffer phandle
20+
- su1-max-uA : maximum current
21+
22+
Additionally one of these properties must be provided to select the type of
23+
feedback used:
24+
- su2-feedback-voltage : voltage feedback is used
25+
- su2-feedback-curr1 : CURR1 input used for current feedback
26+
- su2-feedback-curr2 : CURR2 input used for current feedback
27+
- su2-feedback-curr3 : CURR3 input used for current feedback
28+
- su2-feedback-curr-auto: automatic current feedback selection
29+
30+
and one of these to select the over-voltage protection pin
31+
- su2-fbprot-lx-sd4 : LX_SD4 is used for over-voltage protection
32+
- su2-fbprot-gpio2 : GPIO2 is used for over-voltage protection
33+
- su2-fbprot-gpio3 : GPIO3 is used for over-voltage protection
34+
- su2-fbprot-gpio4 : GPIO4 is used for over-voltage protection
35+
36+
If "su2-feedback-curr-auto" is selected, one or more of the following properties
37+
have to be specified:
38+
- su2-auto-curr1 : use CURR1 input for current feedback
39+
- su2-auto-curr2 : use CURR2 input for current feedback
40+
- su2-auto-curr3 : use CURR3 input for current feedback
41+
42+
Example:
43+
44+
as3711@40 {
45+
compatible = "ams,as3711";
46+
reg = <0x40>;
47+
48+
regulators {
49+
sd4 {
50+
regulator-name = "1.215V";
51+
regulator-min-microvolt = <1215000>;
52+
regulator-max-microvolt = <1235000>;
53+
};
54+
ldo2 {
55+
regulator-name = "2.8V CPU";
56+
regulator-min-microvolt = <2800000>;
57+
regulator-max-microvolt = <2800000>;
58+
regulator-always-on;
59+
regulator-boot-on;
60+
};
61+
};
62+
63+
backlight {
64+
compatible = "ams,as3711-bl";
65+
su2-dev = <&lcdc>;
66+
su2-max-uA = <36000>;
67+
su2-feedback-curr-auto;
68+
su2-fbprot-gpio4;
69+
su2-auto-curr1;
70+
su2-auto-curr2;
71+
su2-auto-curr3;
72+
};
73+
};
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
ChromeOS Embedded Controller
2+
3+
Google's ChromeOS EC is a Cortex-M device which talks to the AP and
4+
implements various function such as keyboard and battery charging.
5+
6+
The EC can be connect through various means (I2C, SPI, LPC) and the
7+
compatible string used depends on the inteface. Each connection method has
8+
its own driver which connects to the top level interface-agnostic EC driver.
9+
Other Linux driver (such as cros-ec-keyb for the matrix keyboard) connect to
10+
the top-level driver.
11+
12+
Required properties (I2C):
13+
- compatible: "google,cros-ec-i2c"
14+
- reg: I2C slave address
15+
16+
Required properties (SPI):
17+
- compatible: "google,cros-ec-spi"
18+
- reg: SPI chip select
19+
20+
Required properties (LPC):
21+
- compatible: "google,cros-ec-lpc"
22+
- reg: List of (IO address, size) pairs defining the interface uses
23+
24+
25+
Example for I2C:
26+
27+
i2c@12CA0000 {
28+
cros-ec@1e {
29+
reg = <0x1e>;
30+
compatible = "google,cros-ec-i2c";
31+
interrupts = <14 0>;
32+
interrupt-parent = <&wakeup_eint>;
33+
wakeup-source;
34+
};
35+
36+
37+
Example for SPI:
38+
39+
spi@131b0000 {
40+
ec@0 {
41+
compatible = "google,cros-ec-spi";
42+
reg = <0x0>;
43+
interrupts = <14 0>;
44+
interrupt-parent = <&wakeup_eint>;
45+
wakeup-source;
46+
spi-max-frequency = <5000000>;
47+
controller-data {
48+
cs-gpio = <&gpf0 3 4 3 0>;
49+
samsung,spi-cs;
50+
samsung,spi-feedback-delay = <2>;
51+
};
52+
};
53+
};
54+
55+
56+
Example for LPC is not supplied as it is not yet implemented.
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
OMAP HS USB Host
2+
3+
Required properties:
4+
5+
- compatible: should be "ti,usbhs-host"
6+
- reg: should contain one register range i.e. start and length
7+
- ti,hwmods: must contain "usb_host_hs"
8+
9+
Optional properties:
10+
11+
- num-ports: number of USB ports. Usually this is automatically detected
12+
from the IP's revision register but can be overridden by specifying
13+
this property. A maximum of 3 ports are supported at the moment.
14+
15+
- portN-mode: String specifying the port mode for port N, where N can be
16+
from 1 to 3. If the port mode is not specified, that port is treated
17+
as unused. When specified, it must be one of the following.
18+
"ehci-phy",
19+
"ehci-tll",
20+
"ehci-hsic",
21+
"ohci-phy-6pin-datse0",
22+
"ohci-phy-6pin-dpdm",
23+
"ohci-phy-3pin-datse0",
24+
"ohci-phy-4pin-dpdm",
25+
"ohci-tll-6pin-datse0",
26+
"ohci-tll-6pin-dpdm",
27+
"ohci-tll-3pin-datse0",
28+
"ohci-tll-4pin-dpdm",
29+
"ohci-tll-2pin-datse0",
30+
"ohci-tll-2pin-dpdm",
31+
32+
- single-ulpi-bypass: Must be present if the controller contains a single
33+
ULPI bypass control bit. e.g. OMAP3 silicon <= ES2.1
34+
35+
Required properties if child node exists:
36+
37+
- #address-cells: Must be 1
38+
- #size-cells: Must be 1
39+
- ranges: must be present
40+
41+
Properties for children:
42+
43+
The OMAP HS USB Host subsystem contains EHCI and OHCI controllers.
44+
See Documentation/devicetree/bindings/usb/omap-ehci.txt and
45+
omap3-ohci.txt
46+
47+
Example for OMAP4:
48+
49+
usbhshost: usbhshost@4a064000 {
50+
compatible = "ti,usbhs-host";
51+
reg = <0x4a064000 0x800>;
52+
ti,hwmods = "usb_host_hs";
53+
#address-cells = <1>;
54+
#size-cells = <1>;
55+
ranges;
56+
57+
usbhsohci: ohci@4a064800 {
58+
compatible = "ti,ohci-omap3", "usb-ohci";
59+
reg = <0x4a064800 0x400>;
60+
interrupt-parent = <&gic>;
61+
interrupts = <0 76 0x4>;
62+
};
63+
64+
usbhsehci: ehci@4a064c00 {
65+
compatible = "ti,ehci-omap", "usb-ehci";
66+
reg = <0x4a064c00 0x400>;
67+
interrupt-parent = <&gic>;
68+
interrupts = <0 77 0x4>;
69+
};
70+
};
71+
72+
&usbhshost {
73+
port1-mode = "ehci-phy";
74+
port2-mode = "ehci-tll";
75+
port3-mode = "ehci-phy";
76+
};
77+
78+
&usbhsehci {
79+
phys = <&hsusb1_phy 0 &hsusb3_phy>;
80+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
OMAP HS USB Host TLL (Transceiver-Less Interface)
2+
3+
Required properties:
4+
5+
- compatible : should be "ti,usbhs-tll"
6+
- reg : should contain one register range i.e. start and length
7+
- interrupts : should contain the TLL module's interrupt
8+
- ti,hwmod : must contain "usb_tll_hs"
9+
10+
Example:
11+
12+
usbhstll: usbhstll@4a062000 {
13+
compatible = "ti,usbhs-tll";
14+
reg = <0x4a062000 0x1000>;
15+
interrupts = <78>;
16+
ti,hwmods = "usb_tll_hs";
17+
};

Documentation/devicetree/bindings/sound/wm8994.txt

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,70 @@ on the board).
55

66
Required properties:
77

8-
- compatible : "wlf,wm1811", "wlf,wm8994", "wlf,wm8958"
8+
- compatible : One of "wlf,wm1811", "wlf,wm8994" or "wlf,wm8958".
99

1010
- reg : the I2C address of the device for I2C, the chip select
1111
number for SPI.
1212

13+
- gpio-controller : Indicates this device is a GPIO controller.
14+
- #gpio-cells : Must be 2. The first cell is the pin number and the
15+
second cell is used to specify optional parameters (currently unused).
16+
17+
- AVDD2-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply, CPVDD-supply,
18+
SPKVDD1-supply, SPKVDD2-supply : power supplies for the device, as covered
19+
in Documentation/devicetree/bindings/regulator/regulator.txt
20+
21+
Optional properties:
22+
23+
- interrupts : The interrupt line the IRQ signal for the device is
24+
connected to. This is optional, if it is not connected then none
25+
of the interrupt related properties should be specified.
26+
- interrupt-controller : These devices contain interrupt controllers
27+
and may provide interrupt services to other devices if they have an
28+
interrupt line connected.
29+
- interrupt-parent : The parent interrupt controller.
30+
- #interrupt-cells: the number of cells to describe an IRQ, this should be 2.
31+
The first cell is the IRQ number.
32+
The second cell is the flags, encoded as the trigger masks from
33+
Documentation/devicetree/bindings/interrupts.txt
34+
35+
- wlf,gpio-cfg : A list of GPIO configuration register values. If absent,
36+
no configuration of these registers is performed. If any value is
37+
over 0xffff then the register will be left as default. If present 11
38+
values must be supplied.
39+
40+
- wlf,micbias-cfg : Two MICBIAS register values for WM1811 or
41+
WM8958. If absent the register defaults will be used.
42+
43+
- wlf,ldo1ena : GPIO specifier for control of LDO1ENA input to device.
44+
- wlf,ldo2ena : GPIO specifier for control of LDO2ENA input to device.
45+
46+
- wlf,lineout1-se : If present LINEOUT1 is in single ended mode.
47+
- wlf,lineout2-se : If present LINEOUT2 is in single ended mode.
48+
49+
- wlf,lineout1-feedback : If present LINEOUT1 has common mode feedback
50+
connected.
51+
- wlf,lineout2-feedback : If present LINEOUT2 has common mode feedback
52+
connected.
53+
54+
- wlf,ldoena-always-driven : If present LDOENA is always driven.
55+
1356
Example:
1457

1558
codec: wm8994@1a {
1659
compatible = "wlf,wm8994";
1760
reg = <0x1a>;
61+
62+
gpio-controller;
63+
#gpio-cells = <2>;
64+
65+
lineout1-se;
66+
67+
AVDD2-supply = <&regulator>;
68+
CPVDD-supply = <&regulator>;
69+
DBVDD1-supply = <&regulator>;
70+
DBVDD2-supply = <&regulator>;
71+
DBVDD3-supply = <&regulator>;
72+
SPKVDD1-supply = <&regulator>;
73+
SPKVDD2-supply = <&regulator>;
1874
};

arch/arm/mach-imx/Kconfig

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -466,8 +466,6 @@ config MACH_MX31ADS_WM1133_EV1
466466
depends on MACH_MX31ADS
467467
depends on MFD_WM8350_I2C
468468
depends on REGULATOR_WM8350 = y
469-
select MFD_WM8350_CONFIG_MODE_0
470-
select MFD_WM8352_CONFIG_MODE_0
471469
help
472470
Include support for the Wolfson Microelectronics 1133-EV1 PMU
473471
and audio module for the MX31ADS platform.

arch/arm/mach-s3c64xx/Kconfig

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,10 +200,7 @@ endchoice
200200
config SMDK6410_WM1190_EV1
201201
bool "Support Wolfson Microelectronics 1190-EV1 PMIC card"
202202
depends on MACH_SMDK6410
203-
select MFD_WM8350_CONFIG_MODE_0
204-
select MFD_WM8350_CONFIG_MODE_3
205203
select MFD_WM8350_I2C
206-
select MFD_WM8352_CONFIG_MODE_0
207204
select REGULATOR
208205
select REGULATOR_WM8350
209206
select SAMSUNG_GPIO_EXTRA64

0 commit comments

Comments
 (0)