mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
- New Drivers
- Add Cirrus Logic Madera Codec (CS47L35, CS47L85 and CS47L90/91) driver
- Add ChromeOS EC CEC driver
- Add ROHM BD71837 PMIC driver
- New Device Support
- Add support for Dialog Semi DA9063L PMIC variant to DA9063
- Add support for Intel Ice Lake to Intel-PLSS-PCI
- Add support for X-Powers AXP806 to AXP20x
- New Functionality
- Add support for USB Charging to the ChromeOS Embedded Controller
- Add support for HDMI CEC to the ChromeOS Embedded Controller
- Add support for HDMI CEC to Intel HDMI
- Add support for accessory detection to Madera devices
- Allow individual pins to be configured via DT' wlf,csnaddr-pd
- Provide legacy platform specific EEPROM/Watchdog commands; rave-sp
- Fix-ups
- Trivial renaming/spelling fixes; cros_ec, da9063-*
- Convert to Managed Resources (devm_*); da9063-*, ti_am335x_tscadc
- Transition to helper macros/functions; da9063-*
- Constify; kempld-core
- Improve error path/messages; wm8994-core
- Disable IRQs locally instead of relying on USB subsystem; dln2
- Remove unused code; rave-sp
- New exports; sec-core
- Bug Fixes
- Fix possible false I2C transaction error; arizona-core
- Fix declared memory area size; hi655x-pmic
- Fix checksum type; rave-sp
- Fix incorrect default serial port configuration: rave-sp
- Fix incorrect coherent DMA mask for sub-devices; sm501
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEdrbJNaO+IJqU8IdIUa+KL4f8d2EFAlt6fm8ACgkQUa+KL4f8
d2H8qA/8CLIKKEyc3CiQIF4LqmOPn+P20gSlnNdDFGHV+ZpVryL6qKItDy76nbQS
+GrPCmhADDn7N224ENlv4TYsB1txr7iZvyNr6W7F0fbdTLq5Fl2+6WIB3NnopPPK
MGhzR2jikfuYGwEG+BG3efvTnrjoi+NPbNPHDdoegOiy/Q1R8PhjMKh10xWo3pgG
0TeZVg61ztfewAiebieMixNz+ehzFKK959Lsa7neV2ZsstBbM8B44UpXmLF5JLYe
SR1ai5etSPBLxEeTXxlE+oG+fnDWk9Eyile7z1Nwg4et9OiXdyqAXBoA+BNDj2N2
N8vHuU79pSra+XGbka/7Kyz8sXjb4u92mJlc1wDcsCF+hX+wGEmwkEUb0S4YEtOH
1POi4YuIq0WF1oLSgCla/Pui0OQPIZaT31XhInYLV7rAX+MPgH0cUuLDsmzcg4ut
C6RvoSzWiGA2JVqlALExSDtAkWUoZLjYkqnPYmZwGs25xsGUqJmiw1E73HI0OWr/
EJuKQbeq/bOmRPqbbwO7z7peZJHOt6j344VCXBdP/sB7d/lR1sEGpxC03MIogHrA
BuiPyfDXTF1NB/+ZPBFbSG2Xhcg51yL4ddRa1sMntP6J4Ht1dW7TOpLI21Yu3eRp
jzKnA9DRa/LPUvoR1y+C2LxDeBcT5qFMg4mZedOgio/C0vCXvus=
=4Yj4
-----END PGP SIGNATURE-----
Merge tag 'mfd-next-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
Pull MFD updates from Lee Jones:
"New Drivers:
- Add Cirrus Logic Madera Codec (CS47L35, CS47L85 and CS47L90/91) driver
- Add ChromeOS EC CEC driver
- Add ROHM BD71837 PMIC driver
New Device Support:
- Add support for Dialog Semi DA9063L PMIC variant to DA9063
- Add support for Intel Ice Lake to Intel-PLSS-PCI
- Add support for X-Powers AXP806 to AXP20x
New Functionality:
- Add support for USB Charging to the ChromeOS Embedded Controller
- Add support for HDMI CEC to the ChromeOS Embedded Controller
- Add support for HDMI CEC to Intel HDMI
- Add support for accessory detection to Madera devices
- Allow individual pins to be configured via DT' wlf,csnaddr-pd
- Provide legacy platform specific EEPROM/Watchdog commands; rave-sp
Fix-upsL
- Trivial renaming/spelling fixes; cros_ec, da9063-*
- Convert to Managed Resources (devm_*); da9063-*, ti_am335x_tscadc
- Transition to helper macros/functions; da9063-*
- Constify; kempld-core
- Improve error path/messages; wm8994-core
- Disable IRQs locally instead of relying on USB subsystem; dln2
- Remove unused code; rave-sp
- New exports; sec-core
Bug Fixes:
- Fix possible false I2C transaction error; arizona-core
- Fix declared memory area size; hi655x-pmic
- Fix checksum type; rave-sp
- Fix incorrect default serial port configuration: rave-sp
- Fix incorrect coherent DMA mask for sub-devices; sm501"
* tag 'mfd-next-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (60 commits)
mfd: madera: Add register definitions for accessory detect
mfd: sm501: Set coherent_dma_mask when creating subdevices
mfd: bd71837: Devicetree bindings for ROHM BD71837 PMIC
mfd: bd71837: Core driver for ROHM BD71837 PMIC
media: platform: cros-ec-cec: Fix dependency on MFD_CROS_EC
mfd: sec-core: Export OF module alias table
mfd: as3722: Disable auto-power-on when AC OK
mfd: axp20x: Support AXP806 in I2C mode
mfd: axp20x: Add self-working mode support for AXP806
dt-bindings: mfd: axp20x: Add "self-working" mode for AXP806
mfd: wm8994: Allow to configure CS/ADDR Pulldown from dts
mfd: wm8994: Allow to configure Speaker Mode Pullup from dts
mfd: rave-sp: Emulate CMD_GET_STATUS on device that don't support it
mfd: rave-sp: Add legacy watchdog ping command translation
mfd: rave-sp: Add legacy EEPROM access command translation
mfd: rave-sp: Initialize flow control and parity of the port
mfd: rave-sp: Fix incorrectly specified checksum type
mfd: rave-sp: Remove unused defines
mfd: hi655x: Fix regmap area declared size for hi655x
mfd: ti_am335x_tscadc: Fix struct clk memory leak
...
This commit is contained in:
commit
532c2b926d
77 changed files with 16124 additions and 460 deletions
|
|
@ -20,6 +20,8 @@ Optional properties:
|
|||
- ams,enable-internal-i2c-pullup: Boolean property, to enable internal pullup on
|
||||
i2c scl/sda pins. Missing this will disable internal pullup on i2c
|
||||
scl/sda lines.
|
||||
- ams,enable-ac-ok-power-on: Boolean property, to enable exit out of power off
|
||||
mode with AC_OK pin (pin enabled in power off mode).
|
||||
|
||||
Optional submodule and their properties:
|
||||
=======================================
|
||||
|
|
|
|||
|
|
@ -44,8 +44,11 @@ Optional properties:
|
|||
board is driving OTG VBus or not.
|
||||
(axp221 / axp223 / axp803/ axp813 only)
|
||||
|
||||
- x-powers,master-mode: Boolean (axp806 only). Set this when the PMIC is
|
||||
wired for master mode. The default is slave mode.
|
||||
- x-powers,self-working-mode and
|
||||
x-powers,master-mode: Boolean (axp806 only). Set either of these when the
|
||||
PMIC is wired for self-working mode or master mode.
|
||||
If neither is set then slave mode is assumed.
|
||||
This corresponds to how the MODESET pin is wired.
|
||||
|
||||
- <input>-supply: a phandle to the regulator supply node. May be omitted if
|
||||
inputs are unregulated, such as using the IPSOUT output
|
||||
|
|
|
|||
102
Documentation/devicetree/bindings/mfd/madera.txt
Normal file
102
Documentation/devicetree/bindings/mfd/madera.txt
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
Cirrus Logic Madera class audio codecs Multi-Functional Device
|
||||
|
||||
These devices are audio SoCs with extensive digital capabilities and a range
|
||||
of analogue I/O.
|
||||
|
||||
See also the child driver bindings in:
|
||||
bindings/pinctrl/cirrus,madera-pinctrl.txt
|
||||
bindings/regulator/arizona-regulator.txt
|
||||
bindings/sound/madera.txt
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : One of the following chip-specific strings:
|
||||
"cirrus,cs47l35"
|
||||
"cirrus,cs47l85"
|
||||
"cirrus,cs47l90"
|
||||
"cirrus,cs47l91"
|
||||
"cirrus,wm1840"
|
||||
|
||||
- reg : I2C slave address when connected using I2C, chip select number when
|
||||
using SPI.
|
||||
|
||||
- DCVDD-supply : Power supply for the device as defined in
|
||||
bindings/regulator/regulator.txt
|
||||
Mandatory on CS47L35, CS47L90, CS47L91
|
||||
Optional on CS47L85, WM1840
|
||||
|
||||
- AVDD-supply, DBVDD1-supply, DBVDD2-supply, CPVDD1-supply, CPVDD2-supply :
|
||||
Power supplies for the device
|
||||
|
||||
- DBVDD3-supply, DBVDD4-supply : Power supplies for the device
|
||||
(CS47L85, CS47L90, CS47L91, WM1840)
|
||||
|
||||
- SPKVDDL-supply, SPKVDDR-supply : Power supplies for the device
|
||||
(CS47L85, WM1840)
|
||||
|
||||
- SPKVDD-supply : Power supply for the device
|
||||
(CS47L35)
|
||||
|
||||
- interrupt-controller : Indicates that this device is an interrupt controller
|
||||
|
||||
- #interrupt-cells: the number of cells to describe an IRQ, must be 2.
|
||||
The first cell is the IRQ number.
|
||||
The second cell is the flags, encoded as the trigger masks from
|
||||
bindings/interrupt-controller/interrupts.txt
|
||||
|
||||
- gpio-controller : Indicates this device is a GPIO controller.
|
||||
|
||||
- #gpio-cells : Must be 2. The first cell is the pin number. The second cell
|
||||
is reserved for future use and must be zero
|
||||
|
||||
- interrupt-parent : The parent interrupt controller.
|
||||
|
||||
- interrupts : The interrupt line the /IRQ signal for the device is
|
||||
connected to.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- MICVDD-supply : Power supply, only need to be specified if
|
||||
powered externally
|
||||
|
||||
- reset-gpios : One entry specifying the GPIO controlling /RESET.
|
||||
As defined in bindings/gpio.txt.
|
||||
Although optional, it is strongly recommended to use a hardware reset
|
||||
|
||||
- MICBIASx : Initial data for the MICBIAS regulators, as covered in
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
One for each MICBIAS generator (MICBIAS1, MICBIAS2, ...)
|
||||
(all codecs)
|
||||
|
||||
One for each output pin (MICBIAS1A, MIBCIAS1B, MICBIAS2A, ...)
|
||||
(all except CS47L85, WM1840)
|
||||
|
||||
The following following additional property is supported for the generator
|
||||
nodes:
|
||||
- cirrus,ext-cap : Set to 1 if the MICBIAS has external decoupling
|
||||
capacitors attached.
|
||||
|
||||
Optional child nodes:
|
||||
micvdd : Node containing initialization data for the micvdd regulator
|
||||
See bindings/regulator/arizona-regulator.txt
|
||||
|
||||
ldo1 : Node containing initialization data for the LDO1 regulator
|
||||
See bindings/regulator/arizona-regulator.txt
|
||||
(cs47l85, wm1840)
|
||||
|
||||
Example:
|
||||
|
||||
cs47l85@0 {
|
||||
compatible = "cirrus,cs47l85";
|
||||
reg = <0>;
|
||||
|
||||
reset-gpios = <&gpio 0>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <&host_irq1>;
|
||||
interrupt-parent = <&gic>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
62
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt
Normal file
62
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
* ROHM BD71837 Power Management Integrated Circuit bindings
|
||||
|
||||
BD71837MWV is a programmable Power Management IC for powering single-core,
|
||||
dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is optimized for
|
||||
low BOM cost and compact solution footprint. It integrates 8 Buck
|
||||
egulators and 7 LDOs to provide all the power rails required by the SoC and
|
||||
the commonly used peripherals.
|
||||
|
||||
Datasheet for PMIC is available at:
|
||||
https://www.rohm.com/datasheet/BD71837MWV/bd71837mwv-e
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "rohm,bd71837".
|
||||
- reg : I2C slave address.
|
||||
- interrupt-parent : Phandle to the parent interrupt controller.
|
||||
- interrupts : The interrupt line the device is connected to.
|
||||
- clocks : The parent clock connected to PMIC. If this is missing
|
||||
32768 KHz clock is assumed.
|
||||
- #clock-cells : Should be 0.
|
||||
- regulators: : List of child nodes that specify the regulators.
|
||||
Please see ../regulator/rohm,bd71837-regulator.txt
|
||||
|
||||
Optional properties:
|
||||
- clock-output-names : Should contain name for output clock.
|
||||
|
||||
Example:
|
||||
|
||||
/* external oscillator node */
|
||||
osc: oscillator {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <1>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "osc";
|
||||
};
|
||||
|
||||
pmic: pmic@4b {
|
||||
compatible = "rohm,bd71837";
|
||||
reg = <0x4b>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <29 GPIO_ACTIVE_LOW>;
|
||||
interrupt-names = "irq";
|
||||
#clock-cells = <0>;
|
||||
clocks = <&osc 0>;
|
||||
clock-output-names = "bd71837-32k-out";
|
||||
|
||||
regulators {
|
||||
buck1: BUCK1 {
|
||||
regulator-name = "buck1";
|
||||
regulator-min-microvolt = <700000>;
|
||||
regulator-max-microvolt = <1300000>;
|
||||
regulator-boot-on;
|
||||
regulator-ramp-delay = <1250>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Clock consumer node */
|
||||
rtc@0 {
|
||||
compatible = "company,my-rtc";
|
||||
clock-names = "my-clock";
|
||||
clocks = <&pmic>;
|
||||
};
|
||||
|
|
@ -22,7 +22,7 @@ Required properties:
|
|||
The valid regulator-compatible values are:
|
||||
tps65910: vrtc, vio, vdd1, vdd2, vdd3, vdig1, vdig2, vpll, vdac, vaux1,
|
||||
vaux2, vaux33, vmmc, vbb
|
||||
tps65911: vrtc, vio, vdd1, vdd3, vddctrl, ldo1, ldo2, ldo3, ldo4, ldo5,
|
||||
tps65911: vrtc, vio, vdd1, vdd2, vddctrl, ldo1, ldo2, ldo3, ldo4, ldo5,
|
||||
ldo6, ldo7, ldo8
|
||||
|
||||
- xxx-supply: Input voltage supply regulator.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,99 @@
|
|||
Cirrus Logic Madera class audio codecs pinctrl driver
|
||||
|
||||
The Cirrus Logic Madera codecs provide a number of GPIO functions for
|
||||
interfacing to external hardware and to provide logic outputs to other devices.
|
||||
Certain groups of GPIO pins also have an alternate function, normally as an
|
||||
audio interface.
|
||||
|
||||
The set of available GPIOs, functions and alternate function groups differs
|
||||
between codecs so refer to the datasheet for the codec for further information
|
||||
on what is supported on that device.
|
||||
|
||||
The properties for this driver exist within the parent MFD driver node.
|
||||
|
||||
See also
|
||||
the core bindings for the parent MFD driver:
|
||||
Documentation/devicetree/bindings/mfd/madera.txt
|
||||
|
||||
the generic pinmix bindings:
|
||||
Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
|
||||
|
||||
Required properties of parent mfd node:
|
||||
- pinctrl-names : must be "default"
|
||||
- pinctrl-0 : a phandle to the node containing the subnodes containing default
|
||||
configurations
|
||||
|
||||
Required subnodes:
|
||||
One subnode is required to contain the default settings. It contains an
|
||||
arbitrary number of configuration subnodes, one for each group or pin
|
||||
configuration you want to apply as a default.
|
||||
|
||||
Required properties of configuration subnodes:
|
||||
- groups : name of one pin group to configure. One of:
|
||||
aif1, aif2, aif3, aif4, mif1, mif2, mif3, pdmspk1, pdmspk2,
|
||||
dmic4, dmic5, dmic6,
|
||||
gpio1, gpio2, ..., gpio40
|
||||
The gpioN groups select the single pin of this name for configuration
|
||||
|
||||
Optional properties of configuration subnodes:
|
||||
Any configuration option not explicitly listed in the dts will be left at
|
||||
chip default setting.
|
||||
|
||||
- function : name of function to assign to this group. One of:
|
||||
aif1, aif2, aif3, aif4, mif1, mif2, mif3, pdmspk1, pdmspk2,
|
||||
dmic3, dmic4, dmic5, dmic6,
|
||||
io, dsp-gpio, irq1, irq2,
|
||||
fll1-clk, fll1-lock, fll2-clk, fll2-lock, fll3-clk, fll3-lock,
|
||||
fllao-clk, fllao-lock,
|
||||
opclk, opclk-async, pwm1, pwm2, spdif,
|
||||
asrc1-in1-lock, asrc1-in2-lock, asrc2-in1-lock, asrc2-in2-lock,
|
||||
spkl-short-circuit, spkr-short-circuit, spk-shutdown,
|
||||
spk-overheat-shutdown, spk-overheat-warn,
|
||||
timer1-sts, timer2-sts, timer3-sts, timer4-sts, timer5-sts, timer6-sts,
|
||||
timer7-sts, timer8-sts,
|
||||
log1-fifo-ne, log2-fifo-ne, log3-fifo-ne, log4-fifo-ne, log5-fifo-ne,
|
||||
log6-fifo-ne, log7-fifo-ne, log8-fifo-ne,
|
||||
|
||||
- bias-disable : disable pull-up and pull-down
|
||||
- bias-bus-hold : enable buskeeper
|
||||
- bias-pull-up : output is pulled-up
|
||||
- bias-pull-down : output is pulled-down
|
||||
- drive-push-pull : CMOS output
|
||||
- drive-open-drain : open-drain output
|
||||
- drive-strength : drive strength in mA. Valid values are 4 or 8
|
||||
- input-schmitt-enable : enable schmitt-trigger mode
|
||||
- input-schmitt-disable : disable schmitt-trigger mode
|
||||
- input-debounce : A value of 0 disables debounce, a value !=0 enables
|
||||
debounce
|
||||
- output-low : set the pin to output mode with low level
|
||||
- output-high : set the pin to output mode with high level
|
||||
|
||||
Example:
|
||||
|
||||
cs47l85@0 {
|
||||
compatible = "cirrus,cs47l85";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&cs47l85_defaults>;
|
||||
|
||||
cs47l85_defaults: cs47l85-gpio-defaults {
|
||||
aif1 {
|
||||
groups = "aif1";
|
||||
function = "aif1";
|
||||
bias-bus-hold;
|
||||
};
|
||||
|
||||
aif2 {
|
||||
groups = "aif2";
|
||||
function = "aif2";
|
||||
bias-bus-hold;
|
||||
};
|
||||
|
||||
opclk {
|
||||
groups = "gpio1";
|
||||
function = "opclk";
|
||||
bias-pull-up;
|
||||
drive-strength = <8>;
|
||||
};
|
||||
};
|
||||
};
|
||||
Loading…
Reference in a new issue