mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
- New Drivers
- Add support for the Cirrus Logic CS42L43 Audio CODEC - Fix-ups - Make use of specific printk() format tags for various optimisations - Kconfig / module modifications / tweaking - Simplify obtaining resources (memory, device data) using unified API helpers - Bunch of Device Tree additions, conversions and adaptions - Convert a bunch of Regmap configurations to use the Maple Tree cache - Ensure correct includes are present and remove some that are not required - Remove superfluous code - Reduce amount of cycles spent in critical sections - Omit the use of redundant casts and if relevant replace with better ones - Swap out raw_spin_{un}lock_irq{save,restore}() for spin_{un}lock_irq{save,restore}() - Bug Fixes - Repair theoretical deadlock situation - Fix some link-time dependencies - Use more appropriate datatype when casting -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEdrbJNaO+IJqU8IdIUa+KL4f8d2EFAmT14v8ACgkQUa+KL4f8 d2F+jw/+MqR0pdOuHiwRAWkPB+Zpk1+aOySF/gZynViSv0aVA/IGXvdTiXSvueut toCcA5LvfrEHzo4wOHF2NeHIs9ogGjuCPRhYTEnBWv8pRkD3fLI2x9nDCxrr6uje 6vvCoDZ8klHcjNw8AJTM/37UFCiqrN9EYb4aoKFVhc1331Fxhc3vYxPbCWr7MZyn A3AVpM5pHeS0+/huwwCwX44azYc8wdBMrqQ5t0FB/YNyndz2Sd0WBUbxqiSn+i94 p6J7xhP8mG2JveCcezxX7ixVta4rkinGnlSNjt3ej41OTr4rbMCY55CHuyR3KnL2 KtRm8MqFofnOUqMGr8LH21mVm6QgLEel19QsG4HVkIKSAJ7xWnPS9Gw7RzUhKGJP gHPqrwjgbzqyPBj5oCnVHiSuqjpnzYyMG1zUSYFzMY1eTe98fdHwAKHqsAQO9Zgp lFACynrGIFfcjbV2PKbmshBUdpX2rk5aM/QdOFN4/8X6oaxgzFndWBhKTJew5Jir ZRoTFONzdZRCK23YB7k4AncEYwy0fdsbNLuOJFHk3nHxmrTllpnXn1fcDL/H+vsF 3CGe7RBxRkzU06Sq4SlLBbqj5H4eeyyq8pP3kRF7y7KsI9G3GLeEW69LNkqYANxf 3tkC7MKt3qZp6UHx47gAqNaCS/cniF3rsLe7LgwTaxqg1+LNIbU= =MNYe -----END PGP SIGNATURE----- Merge tag 'mfd-next-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull NFD updates from Lee Jones: "New Drivers: - Add support for the Cirrus Logic CS42L43 Audio CODEC Fix-ups: - Make use of specific printk() format tags for various optimisations - Kconfig / module modifications / tweaking - Simplify obtaining resources (memory, device data) using unified API helpers - Bunch of Device Tree additions, conversions and adaptions - Convert a bunch of Regmap configurations to use the Maple Tree cache - Ensure correct includes are present and remove some that are not required - Remove superfluous code - Reduce amount of cycles spent in critical sections - Omit the use of redundant casts and if relevant replace with better ones - Swap out raw_spin_{un}lock_irq{save,restore}() for spin_{un}lock_irq{save,restore}() Bug Fixes: - Repair theoretical deadlock situation - Fix some link-time dependencies - Use more appropriate datatype when casting" * tag 'mfd-next-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (70 commits) mfd: mc13xxx: Simplify device data fetching in probe() mfd: rz-mtu3: Replace raw_spin_lock->spin_lock() mfd: rz-mtu3: Reduce critical sections mfd: mxs-lradc: Fix Wvoid-pointer-to-enum-cast warning mfd: wm31x: Fix Wvoid-pointer-to-enum-cast warning mfd: wm8994: Fix Wvoid-pointer-to-enum-cast warning mfd: tc3589: Fix Wvoid-pointer-to-enum-cast warning mfd: lp87565: Fix Wvoid-pointer-to-enum-cast warning mfd: hi6421-pmic: Fix Wvoid-pointer-to-enum-cast warning mfd: max77541: Fix Wvoid-pointer-to-enum-cast warning mfd: max14577: Fix Wvoid-pointer-to-enum-cast warning mfd: stmpe: Fix Wvoid-pointer-to-enum-cast warning mfd: rn5t618: Remove redundant of_match_ptr() mfd: lochnagar-i2c: Remove redundant of_match_ptr() mfd: stpmic1: Remove redundant of_match_ptr() mfd: act8945a: Remove redundant of_match_ptr() mfd: rsmu_spi: Remove redundant of_match_ptr() mfd: altera-a10sr: Remove redundant of_match_ptr() mfd: rsmu_i2c: Remove redundant of_match_ptr() mfd: tc3589x: Remove redundant of_match_ptr() ...
This commit is contained in:
commit
d8723062a2
@ -1,41 +0,0 @@
|
||||
* STMPE Keypad
|
||||
|
||||
Required properties:
|
||||
- compatible : "st,stmpe-keypad"
|
||||
- linux,keymap : See ./matrix-keymap.txt
|
||||
|
||||
Optional properties:
|
||||
- debounce-interval : Debouncing interval time in milliseconds
|
||||
- st,scan-count : Scanning cycles elapsed before key data is updated
|
||||
- st,no-autorepeat : If specified device will not autorepeat
|
||||
- keypad,num-rows : See ./matrix-keymap.txt
|
||||
- keypad,num-columns : See ./matrix-keymap.txt
|
||||
|
||||
Example:
|
||||
|
||||
stmpe_keypad {
|
||||
compatible = "st,stmpe-keypad";
|
||||
|
||||
debounce-interval = <64>;
|
||||
st,scan-count = <8>;
|
||||
st,no-autorepeat;
|
||||
|
||||
linux,keymap = <0x205006b
|
||||
0x4010074
|
||||
0x3050072
|
||||
0x1030004
|
||||
0x502006a
|
||||
0x500000a
|
||||
0x5008b
|
||||
0x706001c
|
||||
0x405000b
|
||||
0x6070003
|
||||
0x3040067
|
||||
0x303006c
|
||||
0x60400e7
|
||||
0x602009e
|
||||
0x4020073
|
||||
0x5050002
|
||||
0x4030069
|
||||
0x3020008>;
|
||||
};
|
@ -1,108 +0,0 @@
|
||||
STMPE Touchscreen
|
||||
----------------
|
||||
|
||||
Required properties:
|
||||
- compatible: "st,stmpe-ts"
|
||||
|
||||
Optional properties:
|
||||
- st,ave-ctrl : Sample average control
|
||||
0 -> 1 sample
|
||||
1 -> 2 samples
|
||||
2 -> 4 samples
|
||||
3 -> 8 samples
|
||||
- st,touch-det-delay : Touch detect interrupt delay (recommended is 3)
|
||||
0 -> 10 us
|
||||
1 -> 50 us
|
||||
2 -> 100 us
|
||||
3 -> 500 us
|
||||
4 -> 1 ms
|
||||
5 -> 5 ms
|
||||
6 -> 10 ms
|
||||
7 -> 50 ms
|
||||
- st,settling : Panel driver settling time (recommended is 2)
|
||||
0 -> 10 us
|
||||
1 -> 100 us
|
||||
2 -> 500 us
|
||||
3 -> 1 ms
|
||||
4 -> 5 ms
|
||||
5 -> 10 ms
|
||||
6 -> 50 ms
|
||||
7 -> 100 ms
|
||||
- st,fraction-z : Length of the fractional part in z (recommended is 7)
|
||||
(fraction-z ([0..7]) = Count of the fractional part)
|
||||
- st,i-drive : current limit value of the touchscreen drivers
|
||||
0 -> 20 mA (typical 35mA max)
|
||||
1 -> 50 mA (typical 80 mA max)
|
||||
|
||||
Optional properties common with MFD (deprecated):
|
||||
- st,sample-time : ADC conversion time in number of clock.
|
||||
0 -> 36 clocks
|
||||
1 -> 44 clocks
|
||||
2 -> 56 clocks
|
||||
3 -> 64 clocks
|
||||
4 -> 80 clocks (recommended)
|
||||
5 -> 96 clocks
|
||||
6 -> 124 clocks
|
||||
- st,mod-12b : ADC Bit mode
|
||||
0 -> 10bit ADC
|
||||
1 -> 12bit ADC
|
||||
- st,ref-sel : ADC reference source
|
||||
0 -> internal
|
||||
1 -> external
|
||||
- st,adc-freq : ADC Clock speed
|
||||
0 -> 1.625 MHz
|
||||
1 -> 3.25 MHz
|
||||
2 || 3 -> 6.5 MHz
|
||||
|
||||
Node should be child node of stmpe node to which it belongs.
|
||||
|
||||
Note that common ADC settings of stmpe_touchscreen (child) will take precedence
|
||||
over the settings done in MFD.
|
||||
|
||||
Example:
|
||||
|
||||
stmpe811@41 {
|
||||
compatible = "st,stmpe811";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_touch_int>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x41>;
|
||||
interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-parent = <&gpio4>;
|
||||
interrupt-controller;
|
||||
id = <0>;
|
||||
blocks = <0x5>;
|
||||
irq-trigger = <0x1>;
|
||||
/* Common ADC settings */
|
||||
/* 3.25 MHz ADC clock speed */
|
||||
st,adc-freq = <1>;
|
||||
/* 12-bit ADC */
|
||||
st,mod-12b = <1>;
|
||||
/* internal ADC reference */
|
||||
st,ref-sel = <0>;
|
||||
/* ADC converstion time: 80 clocks */
|
||||
st,sample-time = <4>;
|
||||
|
||||
stmpe_touchscreen {
|
||||
compatible = "st,stmpe-ts";
|
||||
reg = <0>;
|
||||
/* 8 sample average control */
|
||||
st,ave-ctrl = <3>;
|
||||
/* 5 ms touch detect interrupt delay */
|
||||
st,touch-det-delay = <5>;
|
||||
/* 1 ms panel driver settling time */
|
||||
st,settling = <3>;
|
||||
/* 7 length fractional part in z */
|
||||
st,fraction-z = <7>;
|
||||
/*
|
||||
* 50 mA typical 80 mA max touchscreen drivers
|
||||
* current limit value
|
||||
*/
|
||||
st,i-drive = <1>;
|
||||
};
|
||||
stmpe_adc {
|
||||
compatible = "st,stmpe-adc";
|
||||
st,norequest-mask = <0x0F>;
|
||||
};
|
||||
};
|
@ -34,6 +34,9 @@ patternProperties:
|
||||
- allwinner,sun6i-a31-clock-reset
|
||||
- fixed-factor-clock
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
@ -55,25 +58,17 @@ patternProperties:
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 2
|
||||
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@ -85,25 +80,17 @@ patternProperties:
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@ -119,9 +106,6 @@ patternProperties:
|
||||
offset of the bit controlling this particular gate in
|
||||
the register.
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
@ -129,16 +113,11 @@ patternProperties:
|
||||
minItems: 1
|
||||
maxItems: 32
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@ -150,9 +129,6 @@ patternProperties:
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 4
|
||||
description: >
|
||||
@ -162,16 +138,11 @@ patternProperties:
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@ -183,16 +154,8 @@ patternProperties:
|
||||
"#reset-cells":
|
||||
const: 1
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#reset-cells"
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
@ -57,25 +57,17 @@ patternProperties:
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@ -91,9 +83,6 @@ patternProperties:
|
||||
offset of the bit controlling this particular gate in
|
||||
the register.
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
@ -101,16 +90,11 @@ patternProperties:
|
||||
minItems: 1
|
||||
maxItems: 32
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#clock-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-output-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@ -122,34 +106,8 @@ patternProperties:
|
||||
"#reset-cells":
|
||||
const: 1
|
||||
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- "#reset-cells"
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: allwinner,sun8i-a23-codec-analog
|
||||
|
||||
then:
|
||||
properties:
|
||||
# Already checked in the main schema
|
||||
compatible: true
|
||||
|
||||
phandle: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
@ -6,6 +6,7 @@ at boot time according to the device tree.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "atmel,sama5d2-flexcom"
|
||||
or "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom"
|
||||
- reg: Should be the offset/length value for Flexcom dedicated
|
||||
I/O registers (without USART, TWI or SPI registers).
|
||||
- clocks: Should be the Flexcom peripheral clock from PMC.
|
||||
|
@ -6,6 +6,7 @@ Required properties:
|
||||
- compatible: Should be one of the following:
|
||||
"atmel,at91sam9260-gpbr", "syscon"
|
||||
"microchip,sam9x60-gpbr", "syscon"
|
||||
"microchip,sam9x7-gpbr", "microchip,sam9x60-gpbr", "syscon"
|
||||
- reg: contains offset/length value of the GPBR memory
|
||||
region.
|
||||
|
||||
|
@ -8,6 +8,7 @@ Required properties:
|
||||
"atmel,sama5d3-hlcdc"
|
||||
"atmel,sama5d4-hlcdc"
|
||||
"microchip,sam9x60-hlcdc"
|
||||
"microchip,sam9x75-xlcdc"
|
||||
- reg: base address and size of the HLCDC device registers.
|
||||
- clock-names: the name of the 3 clocks requested by the HLCDC device.
|
||||
Should contain "periph_clk", "sys_clk" and "slow_clk".
|
||||
|
@ -14,6 +14,7 @@ Required properties:
|
||||
"atmel,at91sam9x5-matrix", "syscon"
|
||||
"atmel,sama5d3-matrix", "syscon"
|
||||
"microchip,sam9x60-matrix", "syscon"
|
||||
"microchip,sam9x7-matrix", "atmel,at91sam9x5-matrix", "syscon"
|
||||
- reg: Contains offset/length value of the Bus Matrix
|
||||
memory region.
|
||||
|
||||
|
@ -10,6 +10,7 @@ Required properties:
|
||||
"atmel,sama5d3-smc", "syscon"
|
||||
"atmel,sama5d2-smc", "syscon"
|
||||
"microchip,sam9x60-smc", "syscon"
|
||||
"microchip,sam9x7-smc", "atmel,at91sam9260-smc", "syscon"
|
||||
- reg: Contains offset/length value of the SMC memory
|
||||
region.
|
||||
|
||||
|
@ -35,7 +35,7 @@ patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm63xx-gpio.yaml"
|
||||
$ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
@ -44,7 +44,7 @@ patternProperties:
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm6318-pinctrl.yaml"
|
||||
$ref: /schemas/pinctrl/brcm,bcm6318-pinctrl.yaml
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
|
@ -35,7 +35,7 @@ patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm63xx-gpio.yaml"
|
||||
$ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
@ -44,7 +44,7 @@ patternProperties:
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm63268-pinctrl.yaml"
|
||||
$ref: /schemas/pinctrl/brcm,bcm63268-pinctrl.yaml
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
|
@ -35,7 +35,7 @@ patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm63xx-gpio.yaml"
|
||||
$ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
@ -44,7 +44,7 @@ patternProperties:
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm6328-pinctrl.yaml"
|
||||
$ref: /schemas/pinctrl/brcm,bcm6328-pinctrl.yaml
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
|
@ -35,7 +35,7 @@ patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm63xx-gpio.yaml"
|
||||
$ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
@ -44,7 +44,7 @@ patternProperties:
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm6358-pinctrl.yaml"
|
||||
$ref: /schemas/pinctrl/brcm,bcm6358-pinctrl.yaml
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
|
@ -35,7 +35,7 @@ patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm63xx-gpio.yaml"
|
||||
$ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
@ -44,7 +44,7 @@ patternProperties:
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm6362-pinctrl.yaml"
|
||||
$ref: /schemas/pinctrl/brcm,bcm6362-pinctrl.yaml
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
|
@ -35,7 +35,7 @@ patternProperties:
|
||||
"^gpio@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../gpio/brcm,bcm63xx-gpio.yaml"
|
||||
$ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
|
||||
description:
|
||||
GPIO controller for the SoC GPIOs. This child node definition
|
||||
should follow the bindings specified in
|
||||
@ -44,7 +44,7 @@ patternProperties:
|
||||
"^pinctrl@[0-9a-f]+$":
|
||||
# Child node
|
||||
type: object
|
||||
$ref: "../pinctrl/brcm,bcm6368-pinctrl.yaml"
|
||||
$ref: /schemas/pinctrl/brcm,bcm6368-pinctrl.yaml
|
||||
description:
|
||||
Pin controller for the SoC pins. This child node definition
|
||||
should follow the bindings specified in
|
||||
|
@ -31,12 +31,17 @@ properties:
|
||||
charger:
|
||||
$ref: /schemas/power/supply/maxim,max77693.yaml
|
||||
|
||||
connector:
|
||||
$ref: /schemas/connector/usb-connector.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
led:
|
||||
$ref: /schemas/leds/maxim,max77693.yaml
|
||||
|
||||
max77693-muic:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
deprecated: true
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
@ -45,6 +50,21 @@ properties:
|
||||
required:
|
||||
- compatible
|
||||
|
||||
muic:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max77693-muic
|
||||
|
||||
connector:
|
||||
$ref: /schemas/connector/usb-connector.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
motor-driver:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
@ -107,6 +127,38 @@ examples:
|
||||
};
|
||||
};
|
||||
|
||||
muic {
|
||||
compatible = "maxim,max77693-muic";
|
||||
|
||||
connector {
|
||||
compatible = "samsung,usb-connector-11pin",
|
||||
"usb-b-connector";
|
||||
label = "micro-USB";
|
||||
type = "micro";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
muic_to_usb: endpoint {
|
||||
remote-endpoint = <&usb_to_muic>;
|
||||
};
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
|
||||
muic_to_mhl: endpoint {
|
||||
remote-endpoint = <&mhl_to_muic>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
motor-driver {
|
||||
compatible = "maxim,max77693-haptic";
|
||||
haptic-supply = <&ldo26_reg>;
|
||||
|
@ -41,6 +41,7 @@ properties:
|
||||
- qcom,pm660
|
||||
- qcom,pm660l
|
||||
- qcom,pm7250b
|
||||
- qcom,pm7550ba
|
||||
- qcom,pm7325
|
||||
- qcom,pm8004
|
||||
- qcom,pm8005
|
||||
@ -70,6 +71,8 @@ properties:
|
||||
- qcom,pm8994
|
||||
- qcom,pm8998
|
||||
- qcom,pma8084
|
||||
- qcom,pmc8180
|
||||
- qcom,pmc8180c
|
||||
- qcom,pmd9635
|
||||
- qcom,pmi632
|
||||
- qcom,pmi8950
|
||||
@ -88,6 +91,7 @@ properties:
|
||||
- qcom,pms405
|
||||
- qcom,pmx55
|
||||
- qcom,pmx65
|
||||
- qcom,pmx75
|
||||
- qcom,smb2351
|
||||
- const: qcom,spmi-pmic
|
||||
|
||||
@ -127,7 +131,7 @@ patternProperties:
|
||||
|
||||
"^audio-codec@[0-9a-f]+$":
|
||||
type: object
|
||||
additionalProperties: true # FIXME qcom,pm8916-wcd-analog-codec binding not converted yet
|
||||
$ref: /schemas/sound/qcom,pm8916-wcd-analog-codec.yaml#
|
||||
|
||||
"^charger@[0-9a-f]+$":
|
||||
type: object
|
||||
|
@ -130,7 +130,6 @@ dependencies:
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
|
297
Documentation/devicetree/bindings/mfd/st,stmpe.yaml
Normal file
297
Documentation/devicetree/bindings/mfd/st,stmpe.yaml
Normal file
@ -0,0 +1,297 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mfd/st,stmpe.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: STMicroelectonics Port Expander (STMPE)
|
||||
|
||||
description: STMicroelectronics Port Expander (STMPE) is a series of slow
|
||||
bus controllers for various expanded peripherals such as GPIO, keypad,
|
||||
touchscreen, ADC, PWM or rotator. It can contain one or several different
|
||||
peripherals connected to SPI or I2C.
|
||||
|
||||
maintainers:
|
||||
- Linus Walleij <linus.walleij@linaro.org>
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- st,stmpe601
|
||||
- st,stmpe801
|
||||
- st,stmpe811
|
||||
- st,stmpe1600
|
||||
- st,stmpe1601
|
||||
- st,stmpe2401
|
||||
- st,stmpe2403
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
vcc-supply: true
|
||||
|
||||
vio-supply: true
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
wakeup-source: true
|
||||
|
||||
st,autosleep-timeout:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 4, 16, 32, 64, 128, 256, 512, 1024 ]
|
||||
description: Time idle before going to automatic sleep to save power
|
||||
|
||||
st,sample-time:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 0, 1, 2, 3, 4, 5, 6 ]
|
||||
description: |
|
||||
Sample time per iteration
|
||||
0 = 36 clock ticks
|
||||
1 = 44 clock ticks
|
||||
2 = 56 clock ticks
|
||||
3 = 64 clock ticks
|
||||
4 = 80 clock ticks - recommended
|
||||
5 = 96 clock ticks
|
||||
6 = 124 clock ticks
|
||||
|
||||
st,mod-12b:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 0, 1 ]
|
||||
description: ADC bit mode 0 = 10bit ADC, 1 = 12bit ADC
|
||||
|
||||
st,ref-sel:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 0, 1 ]
|
||||
description: ADC reference source 0 = internal, 1 = external
|
||||
|
||||
st,adc-freq:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 0, 1, 2, 3 ]
|
||||
description: |
|
||||
ADC clock speed
|
||||
0 = 1.625 MHz
|
||||
1 = 3.25 MHz
|
||||
2, 3 = 6.5 MHz
|
||||
|
||||
adc:
|
||||
type: object
|
||||
$ref: /schemas/iio/adc/st,stmpe-adc.yaml#
|
||||
|
||||
gpio:
|
||||
type: object
|
||||
$ref: /schemas/gpio/st,stmpe-gpio.yaml#
|
||||
|
||||
keyboard-controller:
|
||||
type: object
|
||||
$ref: /schemas/input/matrix-keymap.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: st,stmpe-keypad
|
||||
|
||||
debounce-interval:
|
||||
description: Debouncing interval in milliseconds
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
st,no-autorepeat:
|
||||
description: If present, the keys will not autorepeat when pressed
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
|
||||
st,scan-count:
|
||||
description: Scanning cycles elapsed before key data is updated
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- linux,keymap
|
||||
|
||||
pwm:
|
||||
type: object
|
||||
$ref: /schemas/pwm/pwm.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: st,stmpe-pwm
|
||||
|
||||
"#pwm-cells":
|
||||
const: 2
|
||||
|
||||
touchscreen:
|
||||
type: object
|
||||
$ref: /schemas/input/touchscreen/touchscreen.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: st,stmpe-ts
|
||||
|
||||
st,ave-ctrl:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 0, 1, 2, 3 ]
|
||||
description: |
|
||||
Sample average control
|
||||
0 = 1 sample
|
||||
1 = 2 samples
|
||||
2 = 4 samples
|
||||
3 = 8 samples
|
||||
|
||||
st,touch-det-delay:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
|
||||
description: |
|
||||
Touch detection delay
|
||||
0 = 10 us
|
||||
1 = 50 us
|
||||
2 = 100 us
|
||||
3 = 500 us - recommended
|
||||
4 = 1 ms
|
||||
5 = 5 ms
|
||||
6 = 10 ms
|
||||
7 = 50 ms
|
||||
|
||||
st,settling:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
|
||||
description: |
|
||||
Panel driver settling time
|
||||
0 = 10 us
|
||||
1 = 100 us
|
||||
2 = 500 us - recommended
|
||||
3 = 1 ms
|
||||
4 = 5 ms
|
||||
5 = 10 ms
|
||||
6 = 50 ms
|
||||
7 = 100 ms
|
||||
|
||||
st,fraction-z:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
|
||||
description: Length of the fractional part in z, recommended is 7
|
||||
(fraction-z ([0..7]) = Count of the fractional part)
|
||||
|
||||
st,i-drive:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 0, 1 ]
|
||||
description: |
|
||||
current limit value of the touchscreen drivers
|
||||
0 = 20 mA (typical 35 mA max)
|
||||
1 = 50 mA (typical 80 mA max)
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port-expander@43 {
|
||||
compatible = "st,stmpe2401";
|
||||
reg = <0x43>;
|
||||
reset-gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
|
||||
interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-parent = <&gpio>;
|
||||
vcc-supply = <&db8500_vsmps2_reg>;
|
||||
vio-supply = <&db8500_vsmps2_reg>;
|
||||
wakeup-source;
|
||||
st,autosleep-timeout = <1024>;
|
||||
|
||||
gpio {
|
||||
compatible = "st,stmpe-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
st,norequest-mask = <0xf0f002>;
|
||||
};
|
||||
|
||||
keyboard-controller {
|
||||
compatible = "st,stmpe-keypad";
|
||||
debounce-interval = <64>;
|
||||
st,scan-count = <8>;
|
||||
st,no-autorepeat;
|
||||
keypad,num-rows = <8>;
|
||||
keypad,num-columns = <8>;
|
||||
linux,keymap = <
|
||||
MATRIX_KEY(0x00, 0x00, KEY_1)
|
||||
MATRIX_KEY(0x00, 0x01, KEY_2)
|
||||
MATRIX_KEY(0x00, 0x02, KEY_3)
|
||||
MATRIX_KEY(0x00, 0x03, KEY_4)
|
||||
MATRIX_KEY(0x00, 0x04, KEY_5)
|
||||
MATRIX_KEY(0x00, 0x05, KEY_6)
|
||||
MATRIX_KEY(0x00, 0x06, KEY_7)
|
||||
MATRIX_KEY(0x00, 0x07, KEY_8)
|
||||
MATRIX_KEY(0x00, 0x08, KEY_9)
|
||||
MATRIX_KEY(0x00, 0x09, KEY_0)
|
||||
>;
|
||||
};
|
||||
|
||||
pwm {
|
||||
compatible = "st,stmpe-pwm";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
port-expander@41 {
|
||||
compatible = "st,stmpe811";
|
||||
reg = <0x41>;
|
||||
interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-parent = <&gpio>;
|
||||
st,adc-freq = <1>;
|
||||
st,mod-12b = <1>;
|
||||
st,ref-sel = <0>;
|
||||
st,sample-time = <4>;
|
||||
|
||||
adc {
|
||||
compatible = "st,stmpe-adc";
|
||||
st,norequest-mask = <0x0f>;
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
|
||||
gpio {
|
||||
compatible = "st,stmpe-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
pwm {
|
||||
compatible = "st,stmpe-pwm";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
|
||||
touchscreen {
|
||||
compatible = "st,stmpe-ts";
|
||||
st,ave-ctrl = <3>;
|
||||
st,touch-det-delay = <5>;
|
||||
st,settling = <3>;
|
||||
st,fraction-z = <7>;
|
||||
st,i-drive = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
@ -106,6 +106,7 @@ properties:
|
||||
const: st,stpmic1-regulators
|
||||
|
||||
ldo3:
|
||||
$ref: /schemas/regulator/regulator.yaml
|
||||
type: object
|
||||
|
||||
properties:
|
||||
@ -128,6 +129,7 @@ properties:
|
||||
additionalProperties: false
|
||||
|
||||
ldo4:
|
||||
$ref: /schemas/regulator/regulator.yaml
|
||||
type: object
|
||||
|
||||
properties:
|
||||
@ -142,11 +144,14 @@ properties:
|
||||
regulator-name: true
|
||||
regulator-boot-on: true
|
||||
regulator-always-on: true
|
||||
regulator-min-microvolt: true
|
||||
regulator-max-microvolt: true
|
||||
regulator-over-current-protection: true
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
vref_ddr:
|
||||
$ref: /schemas/regulator/regulator.yaml
|
||||
type: object
|
||||
|
||||
properties:
|
||||
@ -165,6 +170,7 @@ properties:
|
||||
additionalProperties: false
|
||||
|
||||
boost:
|
||||
$ref: /schemas/regulator/regulator.yaml
|
||||
type: object
|
||||
|
||||
properties:
|
||||
@ -187,10 +193,8 @@ properties:
|
||||
"^(buck[1-4]|ldo[1-6]|vref_ddr|boost|pwr_sw[1-2])-supply$":
|
||||
description: STPMIC1 voltage regulators supplies
|
||||
|
||||
"^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])$":
|
||||
$ref: ../regulator/regulator.yaml
|
||||
|
||||
"^ldo[1-2,5-6]$":
|
||||
$ref: /schemas/regulator/regulator.yaml
|
||||
type: object
|
||||
|
||||
properties:
|
||||
@ -213,6 +217,7 @@ properties:
|
||||
additionalProperties: false
|
||||
|
||||
"^buck[1-4]$":
|
||||
$ref: /schemas/regulator/regulator.yaml
|
||||
type: object
|
||||
|
||||
properties:
|
||||
@ -237,6 +242,7 @@ properties:
|
||||
additionalProperties: false
|
||||
|
||||
"^pwr_sw[1-2]$":
|
||||
$ref: /schemas/regulator/regulator.yaml
|
||||
type: object
|
||||
|
||||
properties:
|
||||
|
@ -72,44 +72,52 @@ properties:
|
||||
main voltage domain for the chip.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_varm:
|
||||
description: The voltage for the ARM Cortex A-9 CPU.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_vmodem:
|
||||
description: The voltage for the modem subsystem.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_vpll:
|
||||
description: The voltage for the phase locked loop clocks.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_vsmps1:
|
||||
description: Also known as VIO12, is a step-down voltage regulator
|
||||
for 1.2V I/O. SMPS means System Management Power Source.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_vsmps2:
|
||||
description: Also known as VIO18, is a step-down voltage regulator
|
||||
for 1.8V I/O. SMPS means System Management Power Source.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_vsmps3:
|
||||
description: This is a step-down voltage regulator
|
||||
for 0.87 thru 1.875V I/O. SMPS means System Management Power Source.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_vrf1:
|
||||
description: RF transceiver voltage regulator.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_sva_mmdsp:
|
||||
description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP)
|
||||
@ -117,18 +125,21 @@ properties:
|
||||
for video encoding and decoding.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_sva_mmdsp_ret:
|
||||
description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP)
|
||||
voltage regulator for retention mode.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_sva_pipe:
|
||||
description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP)
|
||||
voltage regulator for the data pipe.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_sia_mmdsp:
|
||||
description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP)
|
||||
@ -136,18 +147,21 @@ properties:
|
||||
for image encoding and decoding.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_sia_mmdsp_ret:
|
||||
description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP)
|
||||
voltage regulator for retention mode.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_sia_pipe:
|
||||
description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP)
|
||||
voltage regulator for the data pipe.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_sga:
|
||||
description: Smart Graphics Accelerator (SGA) voltage regulator.
|
||||
@ -155,6 +169,7 @@ properties:
|
||||
accelerator block.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_b2r2_mcde:
|
||||
description: Blit Blend Rotate and Rescale (B2R2), and Multi-Channel
|
||||
@ -162,28 +177,33 @@ properties:
|
||||
blocks.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_esram12:
|
||||
description: Embedded Static RAM (ESRAM) 1 and 2 voltage regulator.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_esram12_ret:
|
||||
description: Embedded Static RAM (ESRAM) 1 and 2 voltage regulator for
|
||||
retention mode.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_esram34:
|
||||
description: Embedded Static RAM (ESRAM) 3 and 4 voltage regulator.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
db8500_esram34_ret:
|
||||
description: Embedded Static RAM (ESRAM) 3 and 4 voltage regulator for
|
||||
retention mode.
|
||||
type: object
|
||||
$ref: ../regulator/regulator.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
@ -1,42 +0,0 @@
|
||||
* ST Microelectronics STMPE Multi-Functional Device
|
||||
|
||||
STMPE is an MFD device which may expose the following inbuilt devices: gpio,
|
||||
keypad, touchscreen, adc, pwm, rotator.
|
||||
|
||||
Required properties:
|
||||
- compatible : "st,stmpe[610|801|811|1600|1601|2401|2403]"
|
||||
- reg : I2C/SPI address of the device
|
||||
|
||||
Optional properties:
|
||||
- interrupts : The interrupt outputs from the controller
|
||||
- interrupt-controller : Marks the device node as an interrupt controller
|
||||
- wakeup-source : Marks the input device as wakable
|
||||
- st,autosleep-timeout : Valid entries (ms); 4, 16, 32, 64, 128, 256, 512 and 1024
|
||||
- irq-gpio : If present, which GPIO to use for event IRQ
|
||||
|
||||
Optional properties for devices with touch and ADC (STMPE811|STMPE610):
|
||||
- st,sample-time : ADC conversion time in number of clock.
|
||||
0 -> 36 clocks 4 -> 80 clocks (recommended)
|
||||
1 -> 44 clocks 5 -> 96 clocks
|
||||
2 -> 56 clocks 6 -> 124 clocks
|
||||
3 -> 64 clocks
|
||||
- st,mod-12b : ADC Bit mode
|
||||
0 -> 10bit ADC 1 -> 12bit ADC
|
||||
- st,ref-sel : ADC reference source
|
||||
0 -> internal 1 -> external
|
||||
- st,adc-freq : ADC Clock speed
|
||||
0 -> 1.625 MHz 2 || 3 -> 6.5 MHz
|
||||
1 -> 3.25 MHz
|
||||
|
||||
Example:
|
||||
|
||||
stmpe1601: stmpe1601@40 {
|
||||
compatible = "st,stmpe1601";
|
||||
reg = <0x40>;
|
||||
interrupts = <26 0x4>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupt-controller;
|
||||
|
||||
wakeup-source;
|
||||
st,autosleep-timeout = <1024>;
|
||||
};
|
14
MAINTAINERS
14
MAINTAINERS
@ -21796,6 +21796,20 @@ S: Maintained
|
||||
F: Documentation/hwmon/tps546d24.rst
|
||||
F: drivers/hwmon/pmbus/tps546d24.c
|
||||
|
||||
TQ SYSTEMS BOARD & DRIVER SUPPORT
|
||||
L: linux@ew.tq-group.com
|
||||
S: Supported
|
||||
W: https://www.tq-group.com/en/products/tq-embedded/
|
||||
F: arch/arm/boot/dts/imx*mba*.dts*
|
||||
F: arch/arm/boot/dts/imx*tqma*.dts*
|
||||
F: arch/arm/boot/dts/mba*.dtsi
|
||||
F: arch/arm64/boot/dts/freescale/imx*mba*.dts*
|
||||
F: arch/arm64/boot/dts/freescale/imx*tqma*.dts*
|
||||
F: arch/arm64/boot/dts/freescale/mba*.dtsi
|
||||
F: drivers/gpio/gpio-tqmx86.c
|
||||
F: drivers/mfd/tqmx86.c
|
||||
F: drivers/watchdog/tqmx86_wdt.c
|
||||
|
||||
TRACING
|
||||
M: Steven Rostedt <rostedt@goodmis.org>
|
||||
M: Masami Hiramatsu <mhiramat@kernel.org>
|
||||
|
@ -92,7 +92,7 @@ config MICROCHIP_TCB_CAPTURE
|
||||
|
||||
config RZ_MTU3_CNT
|
||||
tristate "Renesas RZ/G2L MTU3a counter driver"
|
||||
depends on RZ_MTU3 || COMPILE_TEST
|
||||
depends on RZ_MTU3
|
||||
help
|
||||
Enable support for MTU3a counter driver found on Renesas RZ/G2L alike
|
||||
SoCs. This IP supports both 16-bit and 32-bit phase counting mode
|
||||
|
@ -1220,7 +1220,7 @@ config MFD_RC5T583
|
||||
different functionality of the device.
|
||||
|
||||
config MFD_RK8XX
|
||||
bool
|
||||
tristate
|
||||
select MFD_CORE
|
||||
|
||||
config MFD_RK8XX_I2C
|
||||
@ -1371,8 +1371,9 @@ config MFD_SC27XX_PMIC
|
||||
and it also adds the irq_chip parts for handling the PMIC chip events.
|
||||
|
||||
config RZ_MTU3
|
||||
bool "Renesas RZ/G2L MTU3a core driver"
|
||||
tristate "Renesas RZ/G2L MTU3a core driver"
|
||||
depends on (ARCH_RZG2L && OF) || COMPILE_TEST
|
||||
select MFD_CORE
|
||||
help
|
||||
Select this option to enable Renesas RZ/G2L MTU3a core driver for
|
||||
the Multi-Function Timer Pulse Unit 3 (MTU3a) hardware available
|
||||
|
@ -21,7 +21,6 @@
|
||||
#include <linux/mfd/abx500/ab8500.h>
|
||||
#include <linux/mfd/dbx500-prcmu.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
/*
|
||||
* Interrupt register offsets
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
static const struct mfd_cell act8945a_devs[] = {
|
||||
@ -68,7 +68,7 @@ MODULE_DEVICE_TABLE(of, act8945a_of_match);
|
||||
static struct i2c_driver act8945a_i2c_driver = {
|
||||
.driver = {
|
||||
.name = "act8945a",
|
||||
.of_match_table = of_match_ptr(act8945a_of_match),
|
||||
.of_match_table = act8945a_of_match,
|
||||
},
|
||||
.probe = act8945a_i2c_probe,
|
||||
.id_table = act8945a_i2c_id,
|
||||
|
@ -163,7 +163,7 @@ static struct spi_driver altr_a10sr_spi_driver = {
|
||||
.probe = altr_a10sr_spi_probe,
|
||||
.driver = {
|
||||
.name = "altr_a10sr",
|
||||
.of_match_table = of_match_ptr(altr_a10sr_spi_of_match),
|
||||
.of_match_table = altr_a10sr_spi_of_match,
|
||||
},
|
||||
.id_table = altr_a10sr_spi_ids,
|
||||
};
|
||||
|
@ -14,8 +14,7 @@
|
||||
#include <linux/mfd/syscon.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
|
@ -15,7 +15,6 @@
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#define ATC260X_CHIP_REV_MAX 31
|
||||
|
@ -83,7 +83,6 @@ static int atmel_hlcdc_probe(struct platform_device *pdev)
|
||||
struct atmel_hlcdc_regmap *hregmap;
|
||||
struct device *dev = &pdev->dev;
|
||||
struct atmel_hlcdc *hlcdc;
|
||||
struct resource *res;
|
||||
|
||||
hregmap = devm_kzalloc(dev, sizeof(*hregmap), GFP_KERNEL);
|
||||
if (!hregmap)
|
||||
@ -93,8 +92,7 @@ static int atmel_hlcdc_probe(struct platform_device *pdev)
|
||||
if (!hlcdc)
|
||||
return -ENOMEM;
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
hregmap->regs = devm_ioremap_resource(dev, res);
|
||||
hregmap->regs = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(hregmap->regs))
|
||||
return PTR_ERR(hregmap->regs);
|
||||
|
||||
|
@ -342,7 +342,7 @@ static const struct regmap_config axp152_regmap_config = {
|
||||
.wr_table = &axp152_writeable_table,
|
||||
.volatile_table = &axp152_volatile_table,
|
||||
.max_register = AXP152_PWM1_DUTY_CYCLE,
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
|
||||
static const struct regmap_config axp192_regmap_config = {
|
||||
@ -360,7 +360,7 @@ static const struct regmap_config axp20x_regmap_config = {
|
||||
.wr_table = &axp20x_writeable_table,
|
||||
.volatile_table = &axp20x_volatile_table,
|
||||
.max_register = AXP20X_OCV(AXP20X_OCV_MAX),
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
|
||||
static const struct regmap_config axp22x_regmap_config = {
|
||||
@ -369,7 +369,7 @@ static const struct regmap_config axp22x_regmap_config = {
|
||||
.wr_table = &axp22x_writeable_table,
|
||||
.volatile_table = &axp22x_volatile_table,
|
||||
.max_register = AXP22X_BATLOW_THRES1,
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
|
||||
static const struct regmap_config axp288_regmap_config = {
|
||||
@ -378,7 +378,7 @@ static const struct regmap_config axp288_regmap_config = {
|
||||
.wr_table = &axp288_writeable_table,
|
||||
.volatile_table = &axp288_volatile_table,
|
||||
.max_register = AXP288_FG_TUNE5,
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
|
||||
static const struct regmap_config axp313a_regmap_config = {
|
||||
@ -396,7 +396,7 @@ static const struct regmap_config axp806_regmap_config = {
|
||||
.wr_table = &axp806_writeable_table,
|
||||
.volatile_table = &axp806_volatile_table,
|
||||
.max_register = AXP806_REG_ADDR_EXT,
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
|
||||
static const struct regmap_config axp15060_regmap_config = {
|
||||
@ -405,7 +405,7 @@ static const struct regmap_config axp15060_regmap_config = {
|
||||
.wr_table = &axp15060_writeable_table,
|
||||
.volatile_table = &axp15060_volatile_table,
|
||||
.max_register = AXP15060_IRQ2_STATE,
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
|
||||
#define INIT_REGMAP_IRQ(_variant, _irq, _off, _mask) \
|
||||
|
@ -14,7 +14,6 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/moduleparam.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/platform_data/cros_ec_chardev.h>
|
||||
#include <linux/platform_data/cros_ec_commands.h>
|
||||
|
@ -1249,7 +1249,7 @@ const struct regmap_config cs47l15_16bit_spi_regmap = {
|
||||
.readable_reg = &cs47l15_16bit_readable_register,
|
||||
.volatile_reg = &cs47l15_16bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
.reg_defaults = cs47l15_reg_default,
|
||||
.num_reg_defaults = ARRAY_SIZE(cs47l15_reg_default),
|
||||
};
|
||||
@ -1264,7 +1264,7 @@ const struct regmap_config cs47l15_16bit_i2c_regmap = {
|
||||
.readable_reg = &cs47l15_16bit_readable_register,
|
||||
.volatile_reg = &cs47l15_16bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
.reg_defaults = cs47l15_reg_default,
|
||||
.num_reg_defaults = ARRAY_SIZE(cs47l15_reg_default),
|
||||
};
|
||||
@ -1281,7 +1281,7 @@ const struct regmap_config cs47l15_32bit_spi_regmap = {
|
||||
.readable_reg = &cs47l15_32bit_readable_register,
|
||||
.volatile_reg = &cs47l15_32bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(cs47l15_32bit_spi_regmap);
|
||||
|
||||
@ -1295,6 +1295,6 @@ const struct regmap_config cs47l15_32bit_i2c_regmap = {
|
||||
.readable_reg = &cs47l15_32bit_readable_register,
|
||||
.volatile_reg = &cs47l15_32bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(cs47l15_32bit_i2c_regmap);
|
||||
|
@ -1616,7 +1616,7 @@ const struct regmap_config cs47l24_spi_regmap = {
|
||||
.readable_reg = cs47l24_readable_register,
|
||||
.volatile_reg = cs47l24_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
.reg_defaults = cs47l24_reg_default,
|
||||
.num_reg_defaults = ARRAY_SIZE(cs47l24_reg_default),
|
||||
};
|
||||
|
@ -1498,7 +1498,7 @@ const struct regmap_config cs47l35_16bit_spi_regmap = {
|
||||
.readable_reg = cs47l35_16bit_readable_register,
|
||||
.volatile_reg = cs47l35_16bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
.reg_defaults = cs47l35_reg_default,
|
||||
.num_reg_defaults = ARRAY_SIZE(cs47l35_reg_default),
|
||||
};
|
||||
@ -1515,7 +1515,7 @@ const struct regmap_config cs47l35_16bit_i2c_regmap = {
|
||||
.readable_reg = cs47l35_16bit_readable_register,
|
||||
.volatile_reg = cs47l35_16bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
.reg_defaults = cs47l35_reg_default,
|
||||
.num_reg_defaults = ARRAY_SIZE(cs47l35_reg_default),
|
||||
};
|
||||
@ -1534,7 +1534,7 @@ const struct regmap_config cs47l35_32bit_spi_regmap = {
|
||||
.readable_reg = cs47l35_32bit_readable_register,
|
||||
.volatile_reg = cs47l35_32bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(cs47l35_32bit_spi_regmap);
|
||||
|
||||
@ -1550,6 +1550,6 @@ const struct regmap_config cs47l35_32bit_i2c_regmap = {
|
||||
.readable_reg = cs47l35_32bit_readable_register,
|
||||
.volatile_reg = cs47l35_32bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(cs47l35_32bit_i2c_regmap);
|
||||
|
@ -2836,7 +2836,7 @@ const struct regmap_config cs47l85_16bit_spi_regmap = {
|
||||
.readable_reg = cs47l85_16bit_readable_register,
|
||||
.volatile_reg = cs47l85_16bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
.reg_defaults = cs47l85_reg_default,
|
||||
.num_reg_defaults = ARRAY_SIZE(cs47l85_reg_default),
|
||||
};
|
||||
@ -2853,7 +2853,7 @@ const struct regmap_config cs47l85_16bit_i2c_regmap = {
|
||||
.readable_reg = cs47l85_16bit_readable_register,
|
||||
.volatile_reg = cs47l85_16bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
.reg_defaults = cs47l85_reg_default,
|
||||
.num_reg_defaults = ARRAY_SIZE(cs47l85_reg_default),
|
||||
};
|
||||
@ -2872,7 +2872,7 @@ const struct regmap_config cs47l85_32bit_spi_regmap = {
|
||||
.readable_reg = cs47l85_32bit_readable_register,
|
||||
.volatile_reg = cs47l85_32bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(cs47l85_32bit_spi_regmap);
|
||||
|
||||
@ -2888,6 +2888,6 @@ const struct regmap_config cs47l85_32bit_i2c_regmap = {
|
||||
.readable_reg = cs47l85_32bit_readable_register,
|
||||
.volatile_reg = cs47l85_32bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(cs47l85_32bit_i2c_regmap);
|
||||
|
@ -2539,7 +2539,7 @@ const struct regmap_config cs47l90_16bit_spi_regmap = {
|
||||
.readable_reg = cs47l90_16bit_readable_register,
|
||||
.volatile_reg = cs47l90_16bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
.reg_defaults = cs47l90_reg_default,
|
||||
.num_reg_defaults = ARRAY_SIZE(cs47l90_reg_default),
|
||||
};
|
||||
@ -2556,7 +2556,7 @@ const struct regmap_config cs47l90_16bit_i2c_regmap = {
|
||||
.readable_reg = cs47l90_16bit_readable_register,
|
||||
.volatile_reg = cs47l90_16bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
.reg_defaults = cs47l90_reg_default,
|
||||
.num_reg_defaults = ARRAY_SIZE(cs47l90_reg_default),
|
||||
};
|
||||
@ -2575,7 +2575,7 @@ const struct regmap_config cs47l90_32bit_spi_regmap = {
|
||||
.readable_reg = cs47l90_32bit_readable_register,
|
||||
.volatile_reg = cs47l90_32bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(cs47l90_32bit_spi_regmap);
|
||||
|
||||
@ -2591,6 +2591,6 @@ const struct regmap_config cs47l90_32bit_i2c_regmap = {
|
||||
.readable_reg = cs47l90_32bit_readable_register,
|
||||
.volatile_reg = cs47l90_32bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(cs47l90_32bit_i2c_regmap);
|
||||
|
@ -1890,7 +1890,7 @@ const struct regmap_config cs47l92_16bit_spi_regmap = {
|
||||
.readable_reg = &cs47l92_16bit_readable_register,
|
||||
.volatile_reg = &cs47l92_16bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
.reg_defaults = cs47l92_reg_default,
|
||||
.num_reg_defaults = ARRAY_SIZE(cs47l92_reg_default),
|
||||
};
|
||||
@ -1907,7 +1907,7 @@ const struct regmap_config cs47l92_16bit_i2c_regmap = {
|
||||
.readable_reg = &cs47l92_16bit_readable_register,
|
||||
.volatile_reg = &cs47l92_16bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
.reg_defaults = cs47l92_reg_default,
|
||||
.num_reg_defaults = ARRAY_SIZE(cs47l92_reg_default),
|
||||
};
|
||||
@ -1926,7 +1926,7 @@ const struct regmap_config cs47l92_32bit_spi_regmap = {
|
||||
.readable_reg = &cs47l92_32bit_readable_register,
|
||||
.volatile_reg = &cs47l92_32bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(cs47l92_32bit_spi_regmap);
|
||||
|
||||
@ -1942,6 +1942,6 @@ const struct regmap_config cs47l92_32bit_i2c_regmap = {
|
||||
.readable_reg = &cs47l92_32bit_readable_register,
|
||||
.volatile_reg = &cs47l92_32bit_volatile_register,
|
||||
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.cache_type = REGCACHE_MAPLE,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(cs47l92_32bit_i2c_regmap);
|
||||
|
@ -13,14 +13,11 @@
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/of.h>
|
||||
|
||||
#include <linux/mfd/da9052/da9052.h>
|
||||
#include <linux/mfd/da9052/reg.h>
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#endif
|
||||
|
||||
/* I2C safe register check */
|
||||
static inline bool i2c_safe_reg(unsigned char reg)
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <linux/mfd/da9055/core.h>
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/mfd/core.h>
|
||||
|
@ -109,14 +109,12 @@ static int exynos_lpass_probe(struct platform_device *pdev)
|
||||
struct device *dev = &pdev->dev;
|
||||
struct exynos_lpass *lpass;
|
||||
void __iomem *base_top;
|
||||
struct resource *res;
|
||||
|
||||
lpass = devm_kzalloc(dev, sizeof(*lpass), GFP_KERNEL);
|
||||
if (!lpass)
|
||||
return -ENOMEM;
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
base_top = devm_ioremap_resource(dev, res);
|
||||
base_top = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(base_top))
|
||||
return PTR_ERR(base_top);
|
||||
|
||||
|
@ -59,7 +59,7 @@ static int hi6421_pmic_probe(struct platform_device *pdev)
|
||||
id = of_match_device(of_hi6421_pmic_match, &pdev->dev);
|
||||
if (!id)
|
||||
return -EINVAL;
|
||||
type = (enum hi6421_type)id->data;
|
||||
type = (uintptr_t)id->data;
|
||||
|
||||
pmic = devm_kzalloc(&pdev->dev, sizeof(*pmic), GFP_KERNEL);
|
||||
if (!pmic)
|
||||
|
@ -16,7 +16,7 @@
|
||||
#include <linux/mfd/hi655x-pmic.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
@ -100,8 +100,7 @@ static int hi655x_pmic_probe(struct platform_device *pdev)
|
||||
return -ENOMEM;
|
||||
pmic->dev = dev;
|
||||
|
||||
pmic->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
base = devm_ioremap_resource(dev, pmic->res);
|
||||
base = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(base))
|
||||
return PTR_ERR(base);
|
||||
|
||||
@ -163,7 +162,7 @@ MODULE_DEVICE_TABLE(of, hi655x_pmic_match);
|
||||
static struct platform_driver hi655x_pmic_driver = {
|
||||
.driver = {
|
||||
.name = "hi655x-pmic",
|
||||
.of_match_table = of_match_ptr(hi655x_pmic_match),
|
||||
.of_match_table = hi655x_pmic_match,
|
||||
},
|
||||
.probe = hi655x_pmic_probe,
|
||||
.remove = hi655x_pmic_remove,
|
||||
|
@ -78,8 +78,6 @@ EXPORT_SYMBOL(ipaq_micro_tx_msg);
|
||||
|
||||
static void micro_rx_msg(struct ipaq_micro *micro, u8 id, int len, u8 *data)
|
||||
{
|
||||
int i;
|
||||
|
||||
dev_dbg(micro->dev, "RX msg: %02x, %d bytes\n", id, len);
|
||||
|
||||
spin_lock(µ->lock);
|
||||
@ -131,10 +129,7 @@ static void micro_rx_msg(struct ipaq_micro *micro, u8 id, int len, u8 *data)
|
||||
break;
|
||||
default:
|
||||
dev_err(micro->dev,
|
||||
"unknown msg %d [%d] ", id, len);
|
||||
for (i = 0; i < len; ++i)
|
||||
pr_cont("0x%02x ", data[i]);
|
||||
pr_cont("\n");
|
||||
"unknown msg %d [%d] %*ph\n", id, len, len, data);
|
||||
}
|
||||
spin_unlock(µ->lock);
|
||||
}
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include <linux/mfd/iqs62x.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/notifier.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/slab.h>
|
||||
|
@ -379,7 +379,7 @@ static int lochnagar_i2c_probe(struct i2c_client *i2c)
|
||||
static struct i2c_driver lochnagar_i2c_driver = {
|
||||
.driver = {
|
||||
.name = "lochnagar",
|
||||
.of_match_table = of_match_ptr(lochnagar_of_match),
|
||||
.of_match_table = lochnagar_of_match,
|
||||
.suppress_bind_attrs = true,
|
||||
},
|
||||
.probe = lochnagar_i2c_probe,
|
||||
|
@ -7,8 +7,8 @@
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#include <linux/mfd/lp873x.h>
|
||||
|
@ -92,7 +92,7 @@ static int lp87565_probe(struct i2c_client *client)
|
||||
|
||||
of_id = of_match_device(of_lp87565_match_table, &client->dev);
|
||||
if (of_id)
|
||||
lp87565->dev_type = (enum lp87565_device_type)of_id->data;
|
||||
lp87565->dev_type = (uintptr_t)of_id->data;
|
||||
|
||||
i2c_set_clientdata(client, lp87565);
|
||||
|
||||
|
@ -10,7 +10,6 @@
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#include <linux/mfd/madera/core.h>
|
||||
|
@ -9,7 +9,6 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
||||
|
@ -402,8 +402,7 @@ static int max14577_i2c_probe(struct i2c_client *i2c)
|
||||
|
||||
of_id = of_match_device(max14577_dt_match, &i2c->dev);
|
||||
if (of_id)
|
||||
max14577->dev_type =
|
||||
(enum maxim_device_type)of_id->data;
|
||||
max14577->dev_type = (uintptr_t)of_id->data;
|
||||
} else {
|
||||
max14577->dev_type = id->driver_data;
|
||||
}
|
||||
|
@ -173,7 +173,7 @@ static int max77541_probe(struct i2c_client *client)
|
||||
i2c_set_clientdata(client, max77541);
|
||||
max77541->i2c = client;
|
||||
|
||||
max77541->id = (enum max7754x_ids)device_get_match_data(dev);
|
||||
max77541->id = (uintptr_t)device_get_match_data(dev);
|
||||
if (!max77541->id)
|
||||
max77541->id = (enum max7754x_ids)id->driver_data;
|
||||
|
||||
|
@ -30,7 +30,6 @@
|
||||
#include <linux/mfd/max77620.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
|
@ -20,7 +20,6 @@
|
||||
#include <linux/mfd/max77686-private.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
static const struct mfd_cell max77686_devs[] = {
|
||||
{ .name = "max77686-pmic", },
|
||||
|
@ -13,7 +13,7 @@
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/max77693-common.h>
|
||||
#include <linux/mfd/max77843-private.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
static const struct mfd_cell max77843_devs[] = {
|
||||
|
@ -15,7 +15,6 @@
|
||||
#include <linux/mfd/max8907.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
|
@ -17,7 +17,6 @@
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/max8925.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_platform.h>
|
||||
|
||||
static const struct resource bk_resources[] = {
|
||||
{ 0x84, 0x84, "mode control", IORESOURCE_REG, },
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
@ -12,7 +12,6 @@
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/mutex.h>
|
||||
|
@ -53,7 +53,6 @@ static const struct regmap_config mc13xxx_regmap_i2c_config = {
|
||||
|
||||
static int mc13xxx_i2c_probe(struct i2c_client *client)
|
||||
{
|
||||
const struct i2c_device_id *id = i2c_client_get_device_id(client);
|
||||
struct mc13xxx *mc13xxx;
|
||||
int ret;
|
||||
|
||||
@ -73,13 +72,7 @@ static int mc13xxx_i2c_probe(struct i2c_client *client)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (client->dev.of_node) {
|
||||
const struct of_device_id *of_id =
|
||||
of_match_device(mc13xxx_dt_ids, &client->dev);
|
||||
mc13xxx->variant = of_id->data;
|
||||
} else {
|
||||
mc13xxx->variant = (void *)id->driver_data;
|
||||
}
|
||||
mc13xxx->variant = i2c_get_match_data(client);
|
||||
|
||||
return mc13xxx_common_init(&client->dev);
|
||||
}
|
||||
|
@ -3,6 +3,8 @@
|
||||
// Copyright (c) 2020 MediaTek Inc.
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/mfd/mt6357/core.h>
|
||||
#include <linux/mfd/mt6357/registers.h>
|
||||
#include <linux/mfd/mt6358/core.h>
|
||||
@ -11,9 +13,6 @@
|
||||
#include <linux/mfd/mt6359/registers.h>
|
||||
#include <linux/mfd/mt6397/core.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
@ -6,9 +6,10 @@
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/mt6323/core.h>
|
||||
|
@ -3,10 +3,9 @@
|
||||
// Copyright (c) 2019 MediaTek Inc.
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/suspend.h>
|
||||
|
@ -142,7 +142,7 @@ static int mxs_lradc_probe(struct platform_device *pdev)
|
||||
if (!of_id)
|
||||
return -EINVAL;
|
||||
|
||||
lradc->soc = (enum mxs_lradc_id)of_id->data;
|
||||
lradc->soc = (uintptr_t)of_id->data;
|
||||
|
||||
lradc->clk = devm_clk_get(&pdev->dev, NULL);
|
||||
if (IS_ERR(lradc->clk)) {
|
||||
|
@ -534,7 +534,6 @@ static int usbhs_omap_probe(struct platform_device *pdev)
|
||||
struct device *dev = &pdev->dev;
|
||||
struct usbhs_omap_platform_data *pdata = dev_get_platdata(dev);
|
||||
struct usbhs_hcd_omap *omap;
|
||||
struct resource *res;
|
||||
int ret = 0;
|
||||
int i;
|
||||
bool need_logic_fck;
|
||||
@ -569,8 +568,7 @@ static int usbhs_omap_probe(struct platform_device *pdev)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
omap->uhh_base = devm_ioremap_resource(dev, res);
|
||||
omap->uhh_base = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(omap->uhh_base))
|
||||
return PTR_ERR(omap->uhh_base);
|
||||
|
||||
|
@ -200,15 +200,13 @@ static unsigned ohci_omap3_fslsmode(enum usbhs_omap_port_mode mode)
|
||||
static int usbtll_omap_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
struct resource *res;
|
||||
struct usbtll_omap *tll;
|
||||
void __iomem *base;
|
||||
int i, nch, ver;
|
||||
|
||||
dev_dbg(dev, "starting TI HSUSB TLL Controller\n");
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
base = devm_ioremap_resource(dev, res);
|
||||
base = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(base))
|
||||
return PTR_ERR(base);
|
||||
|
||||
|
@ -18,7 +18,8 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/palmas.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_platform.h>
|
||||
|
||||
static const struct regmap_config palmas_regmap_config[PALMAS_NUM_CLIENTS] = {
|
||||
{
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include <linux/irq.h>
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
#include <linux/regmap.h>
|
||||
|
@ -103,8 +103,9 @@ static int
|
||||
pm8xxx_config_irq(struct pm_irq_chip *chip, unsigned int bp, unsigned int cp)
|
||||
{
|
||||
int rc;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock(&chip->pm_irq_lock);
|
||||
spin_lock_irqsave(&chip->pm_irq_lock, flags);
|
||||
rc = regmap_write(chip->regmap, SSBI_REG_ADDR_IRQ_BLK_SEL, bp);
|
||||
if (rc) {
|
||||
pr_err("Failed Selecting Block %d rc=%d\n", bp, rc);
|
||||
@ -116,7 +117,7 @@ pm8xxx_config_irq(struct pm_irq_chip *chip, unsigned int bp, unsigned int cp)
|
||||
if (rc)
|
||||
pr_err("Failed Configuring IRQ rc=%d\n", rc);
|
||||
bail:
|
||||
spin_unlock(&chip->pm_irq_lock);
|
||||
spin_unlock_irqrestore(&chip->pm_irq_lock, flags);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -321,6 +322,7 @@ static int pm8xxx_irq_get_irqchip_state(struct irq_data *d,
|
||||
struct pm_irq_chip *chip = irq_data_get_irq_chip_data(d);
|
||||
unsigned int pmirq = irqd_to_hwirq(d);
|
||||
unsigned int bits;
|
||||
unsigned long flags;
|
||||
int irq_bit;
|
||||
u8 block;
|
||||
int rc;
|
||||
@ -331,7 +333,7 @@ static int pm8xxx_irq_get_irqchip_state(struct irq_data *d,
|
||||
block = pmirq / 8;
|
||||
irq_bit = pmirq % 8;
|
||||
|
||||
spin_lock(&chip->pm_irq_lock);
|
||||
spin_lock_irqsave(&chip->pm_irq_lock, flags);
|
||||
rc = regmap_write(chip->regmap, SSBI_REG_ADDR_IRQ_BLK_SEL, block);
|
||||
if (rc) {
|
||||
pr_err("Failed Selecting Block %d rc=%d\n", block, rc);
|
||||
@ -346,7 +348,7 @@ static int pm8xxx_irq_get_irqchip_state(struct irq_data *d,
|
||||
|
||||
*state = !!(bits & BIT(irq_bit));
|
||||
bail:
|
||||
spin_unlock(&chip->pm_irq_lock);
|
||||
spin_unlock_irqrestore(&chip->pm_irq_lock, flags);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
@ -18,7 +18,7 @@
|
||||
#include <linux/mfd/rave-sp.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/serdev.h>
|
||||
#include <asm/unaligned.h>
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include <linux/mfd/rk808.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reboot.h>
|
||||
|
||||
|
@ -277,7 +277,7 @@ static SIMPLE_DEV_PM_OPS(rn5t618_i2c_dev_pm_ops,
|
||||
static struct i2c_driver rn5t618_i2c_driver = {
|
||||
.driver = {
|
||||
.name = "rn5t618",
|
||||
.of_match_table = of_match_ptr(rn5t618_of_match),
|
||||
.of_match_table = rn5t618_of_match,
|
||||
.pm = &rn5t618_i2c_dev_pm_ops,
|
||||
},
|
||||
.probe = rn5t618_i2c_probe,
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include <linux/mfd/rohm-bd71828.h>
|
||||
#include <linux/mfd/rohm-generic.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include <linux/mfd/rohm-bd718x7.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
#include <linux/mfd/rohm-bd957x.h>
|
||||
#include <linux/mfd/rohm-generic.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
|
@ -277,7 +277,7 @@ MODULE_DEVICE_TABLE(of, rsmu_i2c_of_match);
|
||||
static struct i2c_driver rsmu_i2c_driver = {
|
||||
.driver = {
|
||||
.name = "rsmu-i2c",
|
||||
.of_match_table = of_match_ptr(rsmu_i2c_of_match),
|
||||
.of_match_table = rsmu_i2c_of_match,
|
||||
},
|
||||
.probe = rsmu_i2c_probe,
|
||||
.remove = rsmu_i2c_remove,
|
||||
|
@ -262,7 +262,7 @@ MODULE_DEVICE_TABLE(of, rsmu_spi_of_match);
|
||||
static struct spi_driver rsmu_spi_driver = {
|
||||
.driver = {
|
||||
.name = "rsmu-spi",
|
||||
.of_match_table = of_match_ptr(rsmu_spi_of_match),
|
||||
.of_match_table = rsmu_spi_of_match,
|
||||
},
|
||||
.probe = rsmu_spi_probe,
|
||||
.remove = rsmu_spi_remove,
|
||||
|
@ -10,9 +10,9 @@
|
||||
*/
|
||||
|
||||
#include <linux/err.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/rt5033.h>
|
||||
#include <linux/mfd/rt5033-private.h>
|
||||
|
@ -11,7 +11,9 @@
|
||||
#include <linux/irq.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/rz-mtu3.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/reset.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
@ -20,7 +22,7 @@
|
||||
struct rz_mtu3_priv {
|
||||
void __iomem *mmio;
|
||||
struct reset_control *rstc;
|
||||
raw_spinlock_t lock;
|
||||
spinlock_t lock;
|
||||
};
|
||||
|
||||
/******* MTU3 registers (original offset is +0x1200) *******/
|
||||
@ -174,11 +176,11 @@ void rz_mtu3_shared_reg_update_bit(struct rz_mtu3_channel *ch, u16 offset,
|
||||
struct rz_mtu3_priv *priv = mtu->priv_data;
|
||||
unsigned long tmdr, flags;
|
||||
|
||||
raw_spin_lock_irqsave(&priv->lock, flags);
|
||||
spin_lock_irqsave(&priv->lock, flags);
|
||||
tmdr = rz_mtu3_shared_reg_read(ch, offset);
|
||||
__assign_bit(pos, &tmdr, !!val);
|
||||
rz_mtu3_shared_reg_write(ch, offset, tmdr);
|
||||
raw_spin_unlock_irqrestore(&priv->lock, flags);
|
||||
spin_unlock_irqrestore(&priv->lock, flags);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rz_mtu3_shared_reg_update_bit);
|
||||
|
||||
@ -250,16 +252,17 @@ static void rz_mtu3_start_stop_ch(struct rz_mtu3_channel *ch, bool start)
|
||||
u16 offset;
|
||||
u8 bitpos;
|
||||
|
||||
/* start stop register shared by multiple timer channels */
|
||||
raw_spin_lock_irqsave(&priv->lock, flags);
|
||||
|
||||
offset = rz_mtu3_get_tstr_offset(ch);
|
||||
bitpos = rz_mtu3_get_tstr_bit_pos(ch);
|
||||
|
||||
/* start stop register shared by multiple timer channels */
|
||||
spin_lock_irqsave(&priv->lock, flags);
|
||||
|
||||
tstr = rz_mtu3_shared_reg_read(ch, offset);
|
||||
__assign_bit(bitpos, &tstr, start);
|
||||
rz_mtu3_shared_reg_write(ch, offset, tstr);
|
||||
|
||||
raw_spin_unlock_irqrestore(&priv->lock, flags);
|
||||
spin_unlock_irqrestore(&priv->lock, flags);
|
||||
}
|
||||
|
||||
bool rz_mtu3_is_enabled(struct rz_mtu3_channel *ch)
|
||||
@ -267,21 +270,18 @@ bool rz_mtu3_is_enabled(struct rz_mtu3_channel *ch)
|
||||
struct rz_mtu3 *mtu = dev_get_drvdata(ch->dev->parent);
|
||||
struct rz_mtu3_priv *priv = mtu->priv_data;
|
||||
unsigned long flags, tstr;
|
||||
bool ret = false;
|
||||
u16 offset;
|
||||
u8 bitpos;
|
||||
|
||||
/* start stop register shared by multiple timer channels */
|
||||
raw_spin_lock_irqsave(&priv->lock, flags);
|
||||
|
||||
offset = rz_mtu3_get_tstr_offset(ch);
|
||||
bitpos = rz_mtu3_get_tstr_bit_pos(ch);
|
||||
|
||||
/* start stop register shared by multiple timer channels */
|
||||
spin_lock_irqsave(&priv->lock, flags);
|
||||
tstr = rz_mtu3_shared_reg_read(ch, offset);
|
||||
ret = tstr & BIT(bitpos);
|
||||
spin_unlock_irqrestore(&priv->lock, flags);
|
||||
|
||||
raw_spin_unlock_irqrestore(&priv->lock, flags);
|
||||
|
||||
return ret;
|
||||
return tstr & BIT(bitpos);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rz_mtu3_is_enabled);
|
||||
|
||||
@ -349,7 +349,7 @@ static int rz_mtu3_probe(struct platform_device *pdev)
|
||||
return PTR_ERR(ddata->clk);
|
||||
|
||||
reset_control_deassert(priv->rstc);
|
||||
raw_spin_lock_init(&priv->lock);
|
||||
spin_lock_init(&priv->lock);
|
||||
platform_set_drvdata(pdev, ddata);
|
||||
|
||||
for (i = 0; i < RZ_MTU_NUM_CHANNELS; i++) {
|
||||
|
@ -10,8 +10,6 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/mutex.h>
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/sc27xx-pmic.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
@ -14,12 +14,12 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/ssbi.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
/* SSBI 2.0 controller registers */
|
||||
#define SSBI2_CMD 0x0008
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include <linux/mfd/stm32-lptimer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#define STM32_LPTIM_MAX_REGISTER 0x3fc
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include <linux/mfd/stm32-timers.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/reset.h>
|
||||
|
||||
#define STM32_TIMERS_MAX_REGISTERS 0x3fc
|
||||
@ -226,8 +227,7 @@ static int stm32_timers_probe(struct platform_device *pdev)
|
||||
if (!ddata)
|
||||
return -ENOMEM;
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
mmio = devm_ioremap_resource(dev, res);
|
||||
mmio = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
|
||||
if (IS_ERR(mmio))
|
||||
return PTR_ERR(mmio);
|
||||
|
||||
|
@ -87,7 +87,7 @@ stmpe_i2c_probe(struct i2c_client *i2c)
|
||||
dev_info(&i2c->dev, "matching on node name, compatible is preferred\n");
|
||||
partnum = id->driver_data;
|
||||
} else
|
||||
partnum = (enum stmpe_partnum)of_id->data;
|
||||
partnum = (uintptr_t)of_id->data;
|
||||
|
||||
return stmpe_probe(&i2c_ci, partnum);
|
||||
}
|
||||
|
@ -219,7 +219,7 @@ MODULE_DEVICE_TABLE(of, stpmic1_of_match);
|
||||
static struct i2c_driver stpmic1_driver = {
|
||||
.driver = {
|
||||
.name = "stpmic1",
|
||||
.of_match_table = of_match_ptr(stpmic1_of_match),
|
||||
.of_match_table = stpmic1_of_match,
|
||||
.pm = pm_sleep_ptr(&stpmic1_pm),
|
||||
},
|
||||
.probe = stpmic1_probe,
|
||||
|
@ -8,8 +8,8 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#include <linux/mfd/sun4i-gpadc.h>
|
||||
|
@ -340,7 +340,7 @@ tc3589x_of_probe(struct device *dev, enum tc3589x_version *version)
|
||||
of_id = of_match_device(tc3589x_match, dev);
|
||||
if (!of_id)
|
||||
return ERR_PTR(-ENODEV);
|
||||
*version = (enum tc3589x_version) of_id->data;
|
||||
*version = (uintptr_t) of_id->data;
|
||||
|
||||
for_each_child_of_node(np, child) {
|
||||
if (of_device_is_compatible(child, "toshiba,tc3589x-gpio"))
|
||||
@ -483,7 +483,7 @@ static struct i2c_driver tc3589x_driver = {
|
||||
.driver = {
|
||||
.name = "tc3589x",
|
||||
.pm = pm_sleep_ptr(&tc3589x_dev_pm_ops),
|
||||
.of_match_table = of_match_ptr(tc3589x_match),
|
||||
.of_match_table = tc3589x_match,
|
||||
},
|
||||
.probe = tc3589x_probe,
|
||||
.remove = tc3589x_remove,
|
||||
|
@ -17,7 +17,6 @@
|
||||
#include <linux/mfd/ti-lmu-register.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
struct ti_lmu_data {
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/sched.h>
|
||||
|
||||
#include <linux/mfd/ti_am335x_tscadc.h>
|
||||
@ -201,8 +201,7 @@ static int ti_tscadc_probe(struct platform_device *pdev)
|
||||
else
|
||||
tscadc->irq = err;
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
tscadc->tscadc_base = devm_ioremap_resource(&pdev->dev, res);
|
||||
tscadc->tscadc_base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
|
||||
if (IS_ERR(tscadc->tscadc_base))
|
||||
return PTR_ERR(tscadc->tscadc_base);
|
||||
|
||||
|
@ -20,7 +20,6 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/tps6507x.h>
|
||||
|
||||
|
@ -17,7 +17,6 @@
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/tps65090.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
#define NUM_INT_REG 2
|
||||
|
@ -17,7 +17,6 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/slab.h>
|
||||
|
@ -15,7 +15,6 @@
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/mutex.h>
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/tps6594.h>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user