- 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:
Linus Torvalds 2023-09-04 13:47:59 -07:00
commit d8723062a2
118 changed files with 545 additions and 567 deletions

View File

@ -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>;
};

View File

@ -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>;
};
};

View File

@ -34,6 +34,9 @@ patternProperties:
- allwinner,sun6i-a31-clock-reset - allwinner,sun6i-a31-clock-reset
- fixed-factor-clock - fixed-factor-clock
required:
- compatible
allOf: allOf:
- if: - if:
properties: properties:
@ -55,25 +58,17 @@ patternProperties:
"#clock-cells": "#clock-cells":
const: 0 const: 0
# Already checked in the main schema
compatible: true
clocks: clocks:
maxItems: 2 maxItems: 2
clock-output-names: clock-output-names:
maxItems: 1 maxItems: 1
phandle: true
required: required:
- "#clock-cells" - "#clock-cells"
- compatible
- clocks - clocks
- clock-output-names - clock-output-names
additionalProperties: false
- if: - if:
properties: properties:
compatible: compatible:
@ -85,25 +80,17 @@ patternProperties:
"#clock-cells": "#clock-cells":
const: 0 const: 0
# Already checked in the main schema
compatible: true
clocks: clocks:
maxItems: 1 maxItems: 1
clock-output-names: clock-output-names:
maxItems: 1 maxItems: 1
phandle: true
required: required:
- "#clock-cells" - "#clock-cells"
- compatible
- clocks - clocks
- clock-output-names - clock-output-names
additionalProperties: false
- if: - if:
properties: properties:
compatible: compatible:
@ -119,9 +106,6 @@ patternProperties:
offset of the bit controlling this particular gate in offset of the bit controlling this particular gate in
the register. the register.
# Already checked in the main schema
compatible: true
clocks: clocks:
maxItems: 1 maxItems: 1
@ -129,16 +113,11 @@ patternProperties:
minItems: 1 minItems: 1
maxItems: 32 maxItems: 32
phandle: true
required: required:
- "#clock-cells" - "#clock-cells"
- compatible
- clocks - clocks
- clock-output-names - clock-output-names
additionalProperties: false
- if: - if:
properties: properties:
compatible: compatible:
@ -150,9 +129,6 @@ patternProperties:
"#clock-cells": "#clock-cells":
const: 0 const: 0
# Already checked in the main schema
compatible: true
clocks: clocks:
maxItems: 4 maxItems: 4
description: > description: >
@ -162,16 +138,11 @@ patternProperties:
clock-output-names: clock-output-names:
maxItems: 1 maxItems: 1
phandle: true
required: required:
- "#clock-cells" - "#clock-cells"
- compatible
- clocks - clocks
- clock-output-names - clock-output-names
additionalProperties: false
- if: - if:
properties: properties:
compatible: compatible:
@ -183,16 +154,8 @@ patternProperties:
"#reset-cells": "#reset-cells":
const: 1 const: 1
# Already checked in the main schema
compatible: true
phandle: true
required: required:
- "#reset-cells" - "#reset-cells"
- compatible
additionalProperties: false
required: required:
- compatible - compatible

View File

@ -57,25 +57,17 @@ patternProperties:
"#clock-cells": "#clock-cells":
const: 0 const: 0
# Already checked in the main schema
compatible: true
clocks: clocks:
maxItems: 1 maxItems: 1
clock-output-names: clock-output-names:
maxItems: 1 maxItems: 1
phandle: true
required: required:
- "#clock-cells" - "#clock-cells"
- compatible
- clocks - clocks
- clock-output-names - clock-output-names
additionalProperties: false
- if: - if:
properties: properties:
compatible: compatible:
@ -91,9 +83,6 @@ patternProperties:
offset of the bit controlling this particular gate in offset of the bit controlling this particular gate in
the register. the register.
# Already checked in the main schema
compatible: true
clocks: clocks:
maxItems: 1 maxItems: 1
@ -101,16 +90,11 @@ patternProperties:
minItems: 1 minItems: 1
maxItems: 32 maxItems: 32
phandle: true
required: required:
- "#clock-cells" - "#clock-cells"
- compatible
- clocks - clocks
- clock-output-names - clock-output-names
additionalProperties: false
- if: - if:
properties: properties:
compatible: compatible:
@ -122,34 +106,8 @@ patternProperties:
"#reset-cells": "#reset-cells":
const: 1 const: 1
# Already checked in the main schema
compatible: true
phandle: true
required: required:
- "#reset-cells" - "#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: required:
- compatible - compatible

View File

@ -6,6 +6,7 @@ at boot time according to the device tree.
Required properties: Required properties:
- compatible: Should be "atmel,sama5d2-flexcom" - compatible: Should be "atmel,sama5d2-flexcom"
or "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom"
- reg: Should be the offset/length value for Flexcom dedicated - reg: Should be the offset/length value for Flexcom dedicated
I/O registers (without USART, TWI or SPI registers). I/O registers (without USART, TWI or SPI registers).
- clocks: Should be the Flexcom peripheral clock from PMC. - clocks: Should be the Flexcom peripheral clock from PMC.

View File

@ -6,6 +6,7 @@ Required properties:
- compatible: Should be one of the following: - compatible: Should be one of the following:
"atmel,at91sam9260-gpbr", "syscon" "atmel,at91sam9260-gpbr", "syscon"
"microchip,sam9x60-gpbr", "syscon" "microchip,sam9x60-gpbr", "syscon"
"microchip,sam9x7-gpbr", "microchip,sam9x60-gpbr", "syscon"
- reg: contains offset/length value of the GPBR memory - reg: contains offset/length value of the GPBR memory
region. region.

View File

@ -8,6 +8,7 @@ Required properties:
"atmel,sama5d3-hlcdc" "atmel,sama5d3-hlcdc"
"atmel,sama5d4-hlcdc" "atmel,sama5d4-hlcdc"
"microchip,sam9x60-hlcdc" "microchip,sam9x60-hlcdc"
"microchip,sam9x75-xlcdc"
- reg: base address and size of the HLCDC device registers. - reg: base address and size of the HLCDC device registers.
- clock-names: the name of the 3 clocks requested by the HLCDC device. - clock-names: the name of the 3 clocks requested by the HLCDC device.
Should contain "periph_clk", "sys_clk" and "slow_clk". Should contain "periph_clk", "sys_clk" and "slow_clk".

View File

@ -14,6 +14,7 @@ Required properties:
"atmel,at91sam9x5-matrix", "syscon" "atmel,at91sam9x5-matrix", "syscon"
"atmel,sama5d3-matrix", "syscon" "atmel,sama5d3-matrix", "syscon"
"microchip,sam9x60-matrix", "syscon" "microchip,sam9x60-matrix", "syscon"
"microchip,sam9x7-matrix", "atmel,at91sam9x5-matrix", "syscon"
- reg: Contains offset/length value of the Bus Matrix - reg: Contains offset/length value of the Bus Matrix
memory region. memory region.

View File

@ -10,6 +10,7 @@ Required properties:
"atmel,sama5d3-smc", "syscon" "atmel,sama5d3-smc", "syscon"
"atmel,sama5d2-smc", "syscon" "atmel,sama5d2-smc", "syscon"
"microchip,sam9x60-smc", "syscon" "microchip,sam9x60-smc", "syscon"
"microchip,sam9x7-smc", "atmel,at91sam9260-smc", "syscon"
- reg: Contains offset/length value of the SMC memory - reg: Contains offset/length value of the SMC memory
region. region.

View File

@ -35,7 +35,7 @@ patternProperties:
"^gpio@[0-9a-f]+$": "^gpio@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../gpio/brcm,bcm63xx-gpio.yaml" $ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
description: description:
GPIO controller for the SoC GPIOs. This child node definition GPIO controller for the SoC GPIOs. This child node definition
should follow the bindings specified in should follow the bindings specified in
@ -44,7 +44,7 @@ patternProperties:
"^pinctrl@[0-9a-f]+$": "^pinctrl@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../pinctrl/brcm,bcm6318-pinctrl.yaml" $ref: /schemas/pinctrl/brcm,bcm6318-pinctrl.yaml
description: description:
Pin controller for the SoC pins. This child node definition Pin controller for the SoC pins. This child node definition
should follow the bindings specified in should follow the bindings specified in

View File

@ -35,7 +35,7 @@ patternProperties:
"^gpio@[0-9a-f]+$": "^gpio@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../gpio/brcm,bcm63xx-gpio.yaml" $ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
description: description:
GPIO controller for the SoC GPIOs. This child node definition GPIO controller for the SoC GPIOs. This child node definition
should follow the bindings specified in should follow the bindings specified in
@ -44,7 +44,7 @@ patternProperties:
"^pinctrl@[0-9a-f]+$": "^pinctrl@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../pinctrl/brcm,bcm63268-pinctrl.yaml" $ref: /schemas/pinctrl/brcm,bcm63268-pinctrl.yaml
description: description:
Pin controller for the SoC pins. This child node definition Pin controller for the SoC pins. This child node definition
should follow the bindings specified in should follow the bindings specified in

View File

@ -35,7 +35,7 @@ patternProperties:
"^gpio@[0-9a-f]+$": "^gpio@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../gpio/brcm,bcm63xx-gpio.yaml" $ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
description: description:
GPIO controller for the SoC GPIOs. This child node definition GPIO controller for the SoC GPIOs. This child node definition
should follow the bindings specified in should follow the bindings specified in
@ -44,7 +44,7 @@ patternProperties:
"^pinctrl@[0-9a-f]+$": "^pinctrl@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../pinctrl/brcm,bcm6328-pinctrl.yaml" $ref: /schemas/pinctrl/brcm,bcm6328-pinctrl.yaml
description: description:
Pin controller for the SoC pins. This child node definition Pin controller for the SoC pins. This child node definition
should follow the bindings specified in should follow the bindings specified in

View File

@ -35,7 +35,7 @@ patternProperties:
"^gpio@[0-9a-f]+$": "^gpio@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../gpio/brcm,bcm63xx-gpio.yaml" $ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
description: description:
GPIO controller for the SoC GPIOs. This child node definition GPIO controller for the SoC GPIOs. This child node definition
should follow the bindings specified in should follow the bindings specified in
@ -44,7 +44,7 @@ patternProperties:
"^pinctrl@[0-9a-f]+$": "^pinctrl@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../pinctrl/brcm,bcm6358-pinctrl.yaml" $ref: /schemas/pinctrl/brcm,bcm6358-pinctrl.yaml
description: description:
Pin controller for the SoC pins. This child node definition Pin controller for the SoC pins. This child node definition
should follow the bindings specified in should follow the bindings specified in

View File

@ -35,7 +35,7 @@ patternProperties:
"^gpio@[0-9a-f]+$": "^gpio@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../gpio/brcm,bcm63xx-gpio.yaml" $ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
description: description:
GPIO controller for the SoC GPIOs. This child node definition GPIO controller for the SoC GPIOs. This child node definition
should follow the bindings specified in should follow the bindings specified in
@ -44,7 +44,7 @@ patternProperties:
"^pinctrl@[0-9a-f]+$": "^pinctrl@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../pinctrl/brcm,bcm6362-pinctrl.yaml" $ref: /schemas/pinctrl/brcm,bcm6362-pinctrl.yaml
description: description:
Pin controller for the SoC pins. This child node definition Pin controller for the SoC pins. This child node definition
should follow the bindings specified in should follow the bindings specified in

View File

@ -35,7 +35,7 @@ patternProperties:
"^gpio@[0-9a-f]+$": "^gpio@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../gpio/brcm,bcm63xx-gpio.yaml" $ref: /schemas/gpio/brcm,bcm63xx-gpio.yaml
description: description:
GPIO controller for the SoC GPIOs. This child node definition GPIO controller for the SoC GPIOs. This child node definition
should follow the bindings specified in should follow the bindings specified in
@ -44,7 +44,7 @@ patternProperties:
"^pinctrl@[0-9a-f]+$": "^pinctrl@[0-9a-f]+$":
# Child node # Child node
type: object type: object
$ref: "../pinctrl/brcm,bcm6368-pinctrl.yaml" $ref: /schemas/pinctrl/brcm,bcm6368-pinctrl.yaml
description: description:
Pin controller for the SoC pins. This child node definition Pin controller for the SoC pins. This child node definition
should follow the bindings specified in should follow the bindings specified in

View File

@ -31,12 +31,17 @@ properties:
charger: charger:
$ref: /schemas/power/supply/maxim,max77693.yaml $ref: /schemas/power/supply/maxim,max77693.yaml
connector:
$ref: /schemas/connector/usb-connector.yaml#
unevaluatedProperties: false
led: led:
$ref: /schemas/leds/maxim,max77693.yaml $ref: /schemas/leds/maxim,max77693.yaml
max77693-muic: max77693-muic:
type: object type: object
additionalProperties: false additionalProperties: false
deprecated: true
properties: properties:
compatible: compatible:
@ -45,6 +50,21 @@ properties:
required: required:
- compatible - 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: motor-driver:
type: object type: object
additionalProperties: false 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 { motor-driver {
compatible = "maxim,max77693-haptic"; compatible = "maxim,max77693-haptic";
haptic-supply = <&ldo26_reg>; haptic-supply = <&ldo26_reg>;

View File

@ -41,6 +41,7 @@ properties:
- qcom,pm660 - qcom,pm660
- qcom,pm660l - qcom,pm660l
- qcom,pm7250b - qcom,pm7250b
- qcom,pm7550ba
- qcom,pm7325 - qcom,pm7325
- qcom,pm8004 - qcom,pm8004
- qcom,pm8005 - qcom,pm8005
@ -70,6 +71,8 @@ properties:
- qcom,pm8994 - qcom,pm8994
- qcom,pm8998 - qcom,pm8998
- qcom,pma8084 - qcom,pma8084
- qcom,pmc8180
- qcom,pmc8180c
- qcom,pmd9635 - qcom,pmd9635
- qcom,pmi632 - qcom,pmi632
- qcom,pmi8950 - qcom,pmi8950
@ -88,6 +91,7 @@ properties:
- qcom,pms405 - qcom,pms405
- qcom,pmx55 - qcom,pmx55
- qcom,pmx65 - qcom,pmx65
- qcom,pmx75
- qcom,smb2351 - qcom,smb2351
- const: qcom,spmi-pmic - const: qcom,spmi-pmic
@ -127,7 +131,7 @@ patternProperties:
"^audio-codec@[0-9a-f]+$": "^audio-codec@[0-9a-f]+$":
type: object 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]+$": "^charger@[0-9a-f]+$":
type: object type: object

View File

@ -130,7 +130,6 @@ dependencies:
examples: examples:
- | - |
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>
i2c { i2c {
#address-cells = <1>; #address-cells = <1>;

View 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>;
};
};
};
...

View File

@ -106,6 +106,7 @@ properties:
const: st,stpmic1-regulators const: st,stpmic1-regulators
ldo3: ldo3:
$ref: /schemas/regulator/regulator.yaml
type: object type: object
properties: properties:
@ -128,6 +129,7 @@ properties:
additionalProperties: false additionalProperties: false
ldo4: ldo4:
$ref: /schemas/regulator/regulator.yaml
type: object type: object
properties: properties:
@ -142,11 +144,14 @@ properties:
regulator-name: true regulator-name: true
regulator-boot-on: true regulator-boot-on: true
regulator-always-on: true regulator-always-on: true
regulator-min-microvolt: true
regulator-max-microvolt: true
regulator-over-current-protection: true regulator-over-current-protection: true
additionalProperties: false additionalProperties: false
vref_ddr: vref_ddr:
$ref: /schemas/regulator/regulator.yaml
type: object type: object
properties: properties:
@ -165,6 +170,7 @@ properties:
additionalProperties: false additionalProperties: false
boost: boost:
$ref: /schemas/regulator/regulator.yaml
type: object type: object
properties: properties:
@ -187,10 +193,8 @@ properties:
"^(buck[1-4]|ldo[1-6]|vref_ddr|boost|pwr_sw[1-2])-supply$": "^(buck[1-4]|ldo[1-6]|vref_ddr|boost|pwr_sw[1-2])-supply$":
description: STPMIC1 voltage regulators supplies 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]$": "^ldo[1-2,5-6]$":
$ref: /schemas/regulator/regulator.yaml
type: object type: object
properties: properties:
@ -213,6 +217,7 @@ properties:
additionalProperties: false additionalProperties: false
"^buck[1-4]$": "^buck[1-4]$":
$ref: /schemas/regulator/regulator.yaml
type: object type: object
properties: properties:
@ -237,6 +242,7 @@ properties:
additionalProperties: false additionalProperties: false
"^pwr_sw[1-2]$": "^pwr_sw[1-2]$":
$ref: /schemas/regulator/regulator.yaml
type: object type: object
properties: properties:

View File

@ -72,44 +72,52 @@ properties:
main voltage domain for the chip. main voltage domain for the chip.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_varm: db8500_varm:
description: The voltage for the ARM Cortex A-9 CPU. description: The voltage for the ARM Cortex A-9 CPU.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_vmodem: db8500_vmodem:
description: The voltage for the modem subsystem. description: The voltage for the modem subsystem.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_vpll: db8500_vpll:
description: The voltage for the phase locked loop clocks. description: The voltage for the phase locked loop clocks.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_vsmps1: db8500_vsmps1:
description: Also known as VIO12, is a step-down voltage regulator description: Also known as VIO12, is a step-down voltage regulator
for 1.2V I/O. SMPS means System Management Power Source. for 1.2V I/O. SMPS means System Management Power Source.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_vsmps2: db8500_vsmps2:
description: Also known as VIO18, is a step-down voltage regulator description: Also known as VIO18, is a step-down voltage regulator
for 1.8V I/O. SMPS means System Management Power Source. for 1.8V I/O. SMPS means System Management Power Source.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_vsmps3: db8500_vsmps3:
description: This is a step-down voltage regulator description: This is a step-down voltage regulator
for 0.87 thru 1.875V I/O. SMPS means System Management Power Source. for 0.87 thru 1.875V I/O. SMPS means System Management Power Source.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_vrf1: db8500_vrf1:
description: RF transceiver voltage regulator. description: RF transceiver voltage regulator.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_sva_mmdsp: db8500_sva_mmdsp:
description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP) description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP)
@ -117,18 +125,21 @@ properties:
for video encoding and decoding. for video encoding and decoding.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_sva_mmdsp_ret: db8500_sva_mmdsp_ret:
description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP) description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP)
voltage regulator for retention mode. voltage regulator for retention mode.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_sva_pipe: db8500_sva_pipe:
description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP) description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP)
voltage regulator for the data pipe. voltage regulator for the data pipe.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_sia_mmdsp: db8500_sia_mmdsp:
description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP) description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP)
@ -136,18 +147,21 @@ properties:
for image encoding and decoding. for image encoding and decoding.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_sia_mmdsp_ret: db8500_sia_mmdsp_ret:
description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP) description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP)
voltage regulator for retention mode. voltage regulator for retention mode.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_sia_pipe: db8500_sia_pipe:
description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP) description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP)
voltage regulator for the data pipe. voltage regulator for the data pipe.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_sga: db8500_sga:
description: Smart Graphics Accelerator (SGA) voltage regulator. description: Smart Graphics Accelerator (SGA) voltage regulator.
@ -155,6 +169,7 @@ properties:
accelerator block. accelerator block.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_b2r2_mcde: db8500_b2r2_mcde:
description: Blit Blend Rotate and Rescale (B2R2), and Multi-Channel description: Blit Blend Rotate and Rescale (B2R2), and Multi-Channel
@ -162,28 +177,33 @@ properties:
blocks. blocks.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_esram12: db8500_esram12:
description: Embedded Static RAM (ESRAM) 1 and 2 voltage regulator. description: Embedded Static RAM (ESRAM) 1 and 2 voltage regulator.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_esram12_ret: db8500_esram12_ret:
description: Embedded Static RAM (ESRAM) 1 and 2 voltage regulator for description: Embedded Static RAM (ESRAM) 1 and 2 voltage regulator for
retention mode. retention mode.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_esram34: db8500_esram34:
description: Embedded Static RAM (ESRAM) 3 and 4 voltage regulator. description: Embedded Static RAM (ESRAM) 3 and 4 voltage regulator.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
db8500_esram34_ret: db8500_esram34_ret:
description: Embedded Static RAM (ESRAM) 3 and 4 voltage regulator for description: Embedded Static RAM (ESRAM) 3 and 4 voltage regulator for
retention mode. retention mode.
type: object type: object
$ref: ../regulator/regulator.yaml# $ref: ../regulator/regulator.yaml#
unevaluatedProperties: false
required: required:
- compatible - compatible

View File

@ -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>;
};

View File

@ -21796,6 +21796,20 @@ S: Maintained
F: Documentation/hwmon/tps546d24.rst F: Documentation/hwmon/tps546d24.rst
F: drivers/hwmon/pmbus/tps546d24.c 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 TRACING
M: Steven Rostedt <rostedt@goodmis.org> M: Steven Rostedt <rostedt@goodmis.org>
M: Masami Hiramatsu <mhiramat@kernel.org> M: Masami Hiramatsu <mhiramat@kernel.org>

View File

@ -92,7 +92,7 @@ config MICROCHIP_TCB_CAPTURE
config RZ_MTU3_CNT config RZ_MTU3_CNT
tristate "Renesas RZ/G2L MTU3a counter driver" tristate "Renesas RZ/G2L MTU3a counter driver"
depends on RZ_MTU3 || COMPILE_TEST depends on RZ_MTU3
help help
Enable support for MTU3a counter driver found on Renesas RZ/G2L alike 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 SoCs. This IP supports both 16-bit and 32-bit phase counting mode

View File

@ -1220,7 +1220,7 @@ config MFD_RC5T583
different functionality of the device. different functionality of the device.
config MFD_RK8XX config MFD_RK8XX
bool tristate
select MFD_CORE select MFD_CORE
config MFD_RK8XX_I2C 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. and it also adds the irq_chip parts for handling the PMIC chip events.
config RZ_MTU3 config RZ_MTU3
bool "Renesas RZ/G2L MTU3a core driver" tristate "Renesas RZ/G2L MTU3a core driver"
depends on (ARCH_RZG2L && OF) || COMPILE_TEST depends on (ARCH_RZG2L && OF) || COMPILE_TEST
select MFD_CORE
help help
Select this option to enable Renesas RZ/G2L MTU3a core driver for Select this option to enable Renesas RZ/G2L MTU3a core driver for
the Multi-Function Timer Pulse Unit 3 (MTU3a) hardware available the Multi-Function Timer Pulse Unit 3 (MTU3a) hardware available

View File

@ -21,7 +21,6 @@
#include <linux/mfd/abx500/ab8500.h> #include <linux/mfd/abx500/ab8500.h>
#include <linux/mfd/dbx500-prcmu.h> #include <linux/mfd/dbx500-prcmu.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
/* /*
* Interrupt register offsets * Interrupt register offsets

View File

@ -9,7 +9,7 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/reboot.h> #include <linux/reboot.h>
#include <linux/regmap.h> #include <linux/regmap.h>

View File

@ -10,7 +10,7 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/regmap.h> #include <linux/regmap.h>
static const struct mfd_cell act8945a_devs[] = { 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 = { static struct i2c_driver act8945a_i2c_driver = {
.driver = { .driver = {
.name = "act8945a", .name = "act8945a",
.of_match_table = of_match_ptr(act8945a_of_match), .of_match_table = act8945a_of_match,
}, },
.probe = act8945a_i2c_probe, .probe = act8945a_i2c_probe,
.id_table = act8945a_i2c_id, .id_table = act8945a_i2c_id,

View File

@ -163,7 +163,7 @@ static struct spi_driver altr_a10sr_spi_driver = {
.probe = altr_a10sr_spi_probe, .probe = altr_a10sr_spi_probe,
.driver = { .driver = {
.name = "altr_a10sr", .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, .id_table = altr_a10sr_spi_ids,
}; };

View File

@ -14,8 +14,7 @@
#include <linux/mfd/syscon.h> #include <linux/mfd/syscon.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_address.h> #include <linux/platform_device.h>
#include <linux/of_platform.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/slab.h> #include <linux/slab.h>

View File

@ -15,7 +15,6 @@
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/regulator/consumer.h> #include <linux/regulator/consumer.h>

View File

@ -11,7 +11,6 @@
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#define ATC260X_CHIP_REV_MAX 31 #define ATC260X_CHIP_REV_MAX 31

View File

@ -83,7 +83,6 @@ static int atmel_hlcdc_probe(struct platform_device *pdev)
struct atmel_hlcdc_regmap *hregmap; struct atmel_hlcdc_regmap *hregmap;
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
struct atmel_hlcdc *hlcdc; struct atmel_hlcdc *hlcdc;
struct resource *res;
hregmap = devm_kzalloc(dev, sizeof(*hregmap), GFP_KERNEL); hregmap = devm_kzalloc(dev, sizeof(*hregmap), GFP_KERNEL);
if (!hregmap) if (!hregmap)
@ -93,8 +92,7 @@ static int atmel_hlcdc_probe(struct platform_device *pdev)
if (!hlcdc) if (!hlcdc)
return -ENOMEM; return -ENOMEM;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); hregmap->regs = devm_platform_ioremap_resource(pdev, 0);
hregmap->regs = devm_ioremap_resource(dev, res);
if (IS_ERR(hregmap->regs)) if (IS_ERR(hregmap->regs))
return PTR_ERR(hregmap->regs); return PTR_ERR(hregmap->regs);

View File

@ -342,7 +342,7 @@ static const struct regmap_config axp152_regmap_config = {
.wr_table = &axp152_writeable_table, .wr_table = &axp152_writeable_table,
.volatile_table = &axp152_volatile_table, .volatile_table = &axp152_volatile_table,
.max_register = AXP152_PWM1_DUTY_CYCLE, .max_register = AXP152_PWM1_DUTY_CYCLE,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
static const struct regmap_config axp192_regmap_config = { 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, .wr_table = &axp20x_writeable_table,
.volatile_table = &axp20x_volatile_table, .volatile_table = &axp20x_volatile_table,
.max_register = AXP20X_OCV(AXP20X_OCV_MAX), .max_register = AXP20X_OCV(AXP20X_OCV_MAX),
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
static const struct regmap_config axp22x_regmap_config = { 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, .wr_table = &axp22x_writeable_table,
.volatile_table = &axp22x_volatile_table, .volatile_table = &axp22x_volatile_table,
.max_register = AXP22X_BATLOW_THRES1, .max_register = AXP22X_BATLOW_THRES1,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
static const struct regmap_config axp288_regmap_config = { 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, .wr_table = &axp288_writeable_table,
.volatile_table = &axp288_volatile_table, .volatile_table = &axp288_volatile_table,
.max_register = AXP288_FG_TUNE5, .max_register = AXP288_FG_TUNE5,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
static const struct regmap_config axp313a_regmap_config = { 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, .wr_table = &axp806_writeable_table,
.volatile_table = &axp806_volatile_table, .volatile_table = &axp806_volatile_table,
.max_register = AXP806_REG_ADDR_EXT, .max_register = AXP806_REG_ADDR_EXT,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
static const struct regmap_config axp15060_regmap_config = { 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, .wr_table = &axp15060_writeable_table,
.volatile_table = &axp15060_volatile_table, .volatile_table = &axp15060_volatile_table,
.max_register = AXP15060_IRQ2_STATE, .max_register = AXP15060_IRQ2_STATE,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
#define INIT_REGMAP_IRQ(_variant, _irq, _off, _mask) \ #define INIT_REGMAP_IRQ(_variant, _irq, _off, _mask) \

View File

@ -14,7 +14,6 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/moduleparam.h> #include <linux/moduleparam.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/slab.h> #include <linux/slab.h>

View File

@ -10,7 +10,7 @@
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/mod_devicetable.h> #include <linux/mod_devicetable.h>
#include <linux/of_platform.h> #include <linux/of.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/platform_data/cros_ec_chardev.h> #include <linux/platform_data/cros_ec_chardev.h>
#include <linux/platform_data/cros_ec_commands.h> #include <linux/platform_data/cros_ec_commands.h>

View File

@ -1249,7 +1249,7 @@ const struct regmap_config cs47l15_16bit_spi_regmap = {
.readable_reg = &cs47l15_16bit_readable_register, .readable_reg = &cs47l15_16bit_readable_register,
.volatile_reg = &cs47l15_16bit_volatile_register, .volatile_reg = &cs47l15_16bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l15_reg_default, .reg_defaults = cs47l15_reg_default,
.num_reg_defaults = ARRAY_SIZE(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, .readable_reg = &cs47l15_16bit_readable_register,
.volatile_reg = &cs47l15_16bit_volatile_register, .volatile_reg = &cs47l15_16bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l15_reg_default, .reg_defaults = cs47l15_reg_default,
.num_reg_defaults = ARRAY_SIZE(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, .readable_reg = &cs47l15_32bit_readable_register,
.volatile_reg = &cs47l15_32bit_volatile_register, .volatile_reg = &cs47l15_32bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
EXPORT_SYMBOL_GPL(cs47l15_32bit_spi_regmap); 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, .readable_reg = &cs47l15_32bit_readable_register,
.volatile_reg = &cs47l15_32bit_volatile_register, .volatile_reg = &cs47l15_32bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
EXPORT_SYMBOL_GPL(cs47l15_32bit_i2c_regmap); EXPORT_SYMBOL_GPL(cs47l15_32bit_i2c_regmap);

View File

@ -1616,7 +1616,7 @@ const struct regmap_config cs47l24_spi_regmap = {
.readable_reg = cs47l24_readable_register, .readable_reg = cs47l24_readable_register,
.volatile_reg = cs47l24_volatile_register, .volatile_reg = cs47l24_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l24_reg_default, .reg_defaults = cs47l24_reg_default,
.num_reg_defaults = ARRAY_SIZE(cs47l24_reg_default), .num_reg_defaults = ARRAY_SIZE(cs47l24_reg_default),
}; };

View File

@ -1498,7 +1498,7 @@ const struct regmap_config cs47l35_16bit_spi_regmap = {
.readable_reg = cs47l35_16bit_readable_register, .readable_reg = cs47l35_16bit_readable_register,
.volatile_reg = cs47l35_16bit_volatile_register, .volatile_reg = cs47l35_16bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l35_reg_default, .reg_defaults = cs47l35_reg_default,
.num_reg_defaults = ARRAY_SIZE(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, .readable_reg = cs47l35_16bit_readable_register,
.volatile_reg = cs47l35_16bit_volatile_register, .volatile_reg = cs47l35_16bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l35_reg_default, .reg_defaults = cs47l35_reg_default,
.num_reg_defaults = ARRAY_SIZE(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, .readable_reg = cs47l35_32bit_readable_register,
.volatile_reg = cs47l35_32bit_volatile_register, .volatile_reg = cs47l35_32bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
EXPORT_SYMBOL_GPL(cs47l35_32bit_spi_regmap); 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, .readable_reg = cs47l35_32bit_readable_register,
.volatile_reg = cs47l35_32bit_volatile_register, .volatile_reg = cs47l35_32bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
EXPORT_SYMBOL_GPL(cs47l35_32bit_i2c_regmap); EXPORT_SYMBOL_GPL(cs47l35_32bit_i2c_regmap);

View File

@ -2836,7 +2836,7 @@ const struct regmap_config cs47l85_16bit_spi_regmap = {
.readable_reg = cs47l85_16bit_readable_register, .readable_reg = cs47l85_16bit_readable_register,
.volatile_reg = cs47l85_16bit_volatile_register, .volatile_reg = cs47l85_16bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l85_reg_default, .reg_defaults = cs47l85_reg_default,
.num_reg_defaults = ARRAY_SIZE(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, .readable_reg = cs47l85_16bit_readable_register,
.volatile_reg = cs47l85_16bit_volatile_register, .volatile_reg = cs47l85_16bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l85_reg_default, .reg_defaults = cs47l85_reg_default,
.num_reg_defaults = ARRAY_SIZE(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, .readable_reg = cs47l85_32bit_readable_register,
.volatile_reg = cs47l85_32bit_volatile_register, .volatile_reg = cs47l85_32bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
EXPORT_SYMBOL_GPL(cs47l85_32bit_spi_regmap); 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, .readable_reg = cs47l85_32bit_readable_register,
.volatile_reg = cs47l85_32bit_volatile_register, .volatile_reg = cs47l85_32bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
EXPORT_SYMBOL_GPL(cs47l85_32bit_i2c_regmap); EXPORT_SYMBOL_GPL(cs47l85_32bit_i2c_regmap);

View File

@ -2539,7 +2539,7 @@ const struct regmap_config cs47l90_16bit_spi_regmap = {
.readable_reg = cs47l90_16bit_readable_register, .readable_reg = cs47l90_16bit_readable_register,
.volatile_reg = cs47l90_16bit_volatile_register, .volatile_reg = cs47l90_16bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l90_reg_default, .reg_defaults = cs47l90_reg_default,
.num_reg_defaults = ARRAY_SIZE(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, .readable_reg = cs47l90_16bit_readable_register,
.volatile_reg = cs47l90_16bit_volatile_register, .volatile_reg = cs47l90_16bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l90_reg_default, .reg_defaults = cs47l90_reg_default,
.num_reg_defaults = ARRAY_SIZE(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, .readable_reg = cs47l90_32bit_readable_register,
.volatile_reg = cs47l90_32bit_volatile_register, .volatile_reg = cs47l90_32bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
EXPORT_SYMBOL_GPL(cs47l90_32bit_spi_regmap); 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, .readable_reg = cs47l90_32bit_readable_register,
.volatile_reg = cs47l90_32bit_volatile_register, .volatile_reg = cs47l90_32bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
EXPORT_SYMBOL_GPL(cs47l90_32bit_i2c_regmap); EXPORT_SYMBOL_GPL(cs47l90_32bit_i2c_regmap);

View File

@ -1890,7 +1890,7 @@ const struct regmap_config cs47l92_16bit_spi_regmap = {
.readable_reg = &cs47l92_16bit_readable_register, .readable_reg = &cs47l92_16bit_readable_register,
.volatile_reg = &cs47l92_16bit_volatile_register, .volatile_reg = &cs47l92_16bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l92_reg_default, .reg_defaults = cs47l92_reg_default,
.num_reg_defaults = ARRAY_SIZE(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, .readable_reg = &cs47l92_16bit_readable_register,
.volatile_reg = &cs47l92_16bit_volatile_register, .volatile_reg = &cs47l92_16bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l92_reg_default, .reg_defaults = cs47l92_reg_default,
.num_reg_defaults = ARRAY_SIZE(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, .readable_reg = &cs47l92_32bit_readable_register,
.volatile_reg = &cs47l92_32bit_volatile_register, .volatile_reg = &cs47l92_32bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
EXPORT_SYMBOL_GPL(cs47l92_32bit_spi_regmap); 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, .readable_reg = &cs47l92_32bit_readable_register,
.volatile_reg = &cs47l92_32bit_volatile_register, .volatile_reg = &cs47l92_32bit_volatile_register,
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_MAPLE,
}; };
EXPORT_SYMBOL_GPL(cs47l92_32bit_i2c_regmap); EXPORT_SYMBOL_GPL(cs47l92_32bit_i2c_regmap);

View File

@ -13,14 +13,11 @@
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/of.h>
#include <linux/mfd/da9052/da9052.h> #include <linux/mfd/da9052/da9052.h>
#include <linux/mfd/da9052/reg.h> #include <linux/mfd/da9052/reg.h>
#ifdef CONFIG_OF
#include <linux/of.h>
#include <linux/of_device.h>
#endif
/* I2C safe register check */ /* I2C safe register check */
static inline bool i2c_safe_reg(unsigned char reg) static inline bool i2c_safe_reg(unsigned char reg)

View File

@ -11,7 +11,6 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/mfd/da9055/core.h> #include <linux/mfd/da9055/core.h>

View File

@ -9,7 +9,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>

View File

@ -109,14 +109,12 @@ static int exynos_lpass_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
struct exynos_lpass *lpass; struct exynos_lpass *lpass;
void __iomem *base_top; void __iomem *base_top;
struct resource *res;
lpass = devm_kzalloc(dev, sizeof(*lpass), GFP_KERNEL); lpass = devm_kzalloc(dev, sizeof(*lpass), GFP_KERNEL);
if (!lpass) if (!lpass)
return -ENOMEM; return -ENOMEM;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); base_top = devm_platform_ioremap_resource(pdev, 0);
base_top = devm_ioremap_resource(dev, res);
if (IS_ERR(base_top)) if (IS_ERR(base_top))
return PTR_ERR(base_top); return PTR_ERR(base_top);

View File

@ -59,7 +59,7 @@ static int hi6421_pmic_probe(struct platform_device *pdev)
id = of_match_device(of_hi6421_pmic_match, &pdev->dev); id = of_match_device(of_hi6421_pmic_match, &pdev->dev);
if (!id) if (!id)
return -EINVAL; return -EINVAL;
type = (enum hi6421_type)id->data; type = (uintptr_t)id->data;
pmic = devm_kzalloc(&pdev->dev, sizeof(*pmic), GFP_KERNEL); pmic = devm_kzalloc(&pdev->dev, sizeof(*pmic), GFP_KERNEL);
if (!pmic) if (!pmic)

View File

@ -16,7 +16,7 @@
#include <linux/mfd/hi655x-pmic.h> #include <linux/mfd/hi655x-pmic.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/gpio/consumer.h> #include <linux/gpio/consumer.h>
#include <linux/of_platform.h> #include <linux/mod_devicetable.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
@ -100,8 +100,7 @@ static int hi655x_pmic_probe(struct platform_device *pdev)
return -ENOMEM; return -ENOMEM;
pmic->dev = dev; pmic->dev = dev;
pmic->res = platform_get_resource(pdev, IORESOURCE_MEM, 0); base = devm_platform_ioremap_resource(pdev, 0);
base = devm_ioremap_resource(dev, pmic->res);
if (IS_ERR(base)) if (IS_ERR(base))
return PTR_ERR(base); return PTR_ERR(base);
@ -163,7 +162,7 @@ MODULE_DEVICE_TABLE(of, hi655x_pmic_match);
static struct platform_driver hi655x_pmic_driver = { static struct platform_driver hi655x_pmic_driver = {
.driver = { .driver = {
.name = "hi655x-pmic", .name = "hi655x-pmic",
.of_match_table = of_match_ptr(hi655x_pmic_match), .of_match_table = hi655x_pmic_match,
}, },
.probe = hi655x_pmic_probe, .probe = hi655x_pmic_probe,
.remove = hi655x_pmic_remove, .remove = hi655x_pmic_remove,

View File

@ -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) 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); dev_dbg(micro->dev, "RX msg: %02x, %d bytes\n", id, len);
spin_lock(&micro->lock); spin_lock(&micro->lock);
@ -131,10 +129,7 @@ static void micro_rx_msg(struct ipaq_micro *micro, u8 id, int len, u8 *data)
break; break;
default: default:
dev_err(micro->dev, dev_err(micro->dev,
"unknown msg %d [%d] ", id, len); "unknown msg %d [%d] %*ph\n", id, len, len, data);
for (i = 0; i < len; ++i)
pr_cont("0x%02x ", data[i]);
pr_cont("\n");
} }
spin_unlock(&micro->lock); spin_unlock(&micro->lock);
} }

View File

@ -27,7 +27,7 @@
#include <linux/mfd/iqs62x.h> #include <linux/mfd/iqs62x.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/notifier.h> #include <linux/notifier.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/property.h> #include <linux/property.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/slab.h> #include <linux/slab.h>

View File

@ -379,7 +379,7 @@ static int lochnagar_i2c_probe(struct i2c_client *i2c)
static struct i2c_driver lochnagar_i2c_driver = { static struct i2c_driver lochnagar_i2c_driver = {
.driver = { .driver = {
.name = "lochnagar", .name = "lochnagar",
.of_match_table = of_match_ptr(lochnagar_of_match), .of_match_table = lochnagar_of_match,
.suppress_bind_attrs = true, .suppress_bind_attrs = true,
}, },
.probe = lochnagar_i2c_probe, .probe = lochnagar_i2c_probe,

View File

@ -7,8 +7,8 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/mfd/lp873x.h> #include <linux/mfd/lp873x.h>

View File

@ -92,7 +92,7 @@ static int lp87565_probe(struct i2c_client *client)
of_id = of_match_device(of_lp87565_match_table, &client->dev); of_id = of_match_device(of_lp87565_match_table, &client->dev);
if (of_id) 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); i2c_set_clientdata(client, lp87565);

View File

@ -10,7 +10,6 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/mfd/madera/core.h> #include <linux/mfd/madera/core.h>

View File

@ -9,7 +9,6 @@
#include <linux/err.h> #include <linux/err.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/spi/spi.h> #include <linux/spi/spi.h>

View File

@ -402,8 +402,7 @@ static int max14577_i2c_probe(struct i2c_client *i2c)
of_id = of_match_device(max14577_dt_match, &i2c->dev); of_id = of_match_device(max14577_dt_match, &i2c->dev);
if (of_id) if (of_id)
max14577->dev_type = max14577->dev_type = (uintptr_t)of_id->data;
(enum maxim_device_type)of_id->data;
} else { } else {
max14577->dev_type = id->driver_data; max14577->dev_type = id->driver_data;
} }

View File

@ -173,7 +173,7 @@ static int max77541_probe(struct i2c_client *client)
i2c_set_clientdata(client, max77541); i2c_set_clientdata(client, max77541);
max77541->i2c = client; 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) if (!max77541->id)
max77541->id = (enum max7754x_ids)id->driver_data; max77541->id = (enum max7754x_ids)id->driver_data;

View File

@ -30,7 +30,6 @@
#include <linux/mfd/max77620.h> #include <linux/mfd/max77620.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/slab.h> #include <linux/slab.h>

View File

@ -20,7 +20,6 @@
#include <linux/mfd/max77686-private.h> #include <linux/mfd/max77686-private.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
static const struct mfd_cell max77686_devs[] = { static const struct mfd_cell max77686_devs[] = {
{ .name = "max77686-pmic", }, { .name = "max77686-pmic", },

View File

@ -13,7 +13,7 @@
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/mfd/max77693-common.h> #include <linux/mfd/max77693-common.h>
#include <linux/mfd/max77843-private.h> #include <linux/mfd/max77843-private.h>
#include <linux/of_device.h> #include <linux/mod_devicetable.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
static const struct mfd_cell max77843_devs[] = { static const struct mfd_cell max77843_devs[] = {

View File

@ -15,7 +15,6 @@
#include <linux/mfd/max8907.h> #include <linux/mfd/max8907.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/slab.h> #include <linux/slab.h>

View File

@ -17,7 +17,6 @@
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/mfd/max8925.h> #include <linux/mfd/max8925.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_platform.h>
static const struct resource bk_resources[] = { static const struct resource bk_resources[] = {
{ 0x84, 0x84, "mode control", IORESOURCE_REG, }, { 0x84, 0x84, "mode control", IORESOURCE_REG, },

View File

@ -11,7 +11,6 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/of_irq.h> #include <linux/of_irq.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>

View File

@ -12,7 +12,6 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/of_irq.h> #include <linux/of_irq.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <linux/mutex.h> #include <linux/mutex.h>

View File

@ -53,7 +53,6 @@ static const struct regmap_config mc13xxx_regmap_i2c_config = {
static int mc13xxx_i2c_probe(struct i2c_client *client) static int mc13xxx_i2c_probe(struct i2c_client *client)
{ {
const struct i2c_device_id *id = i2c_client_get_device_id(client);
struct mc13xxx *mc13xxx; struct mc13xxx *mc13xxx;
int ret; int ret;
@ -73,13 +72,7 @@ static int mc13xxx_i2c_probe(struct i2c_client *client)
return ret; return ret;
} }
if (client->dev.of_node) { mc13xxx->variant = i2c_get_match_data(client);
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;
}
return mc13xxx_common_init(&client->dev); return mc13xxx_common_init(&client->dev);
} }

View File

@ -3,6 +3,8 @@
// Copyright (c) 2020 MediaTek Inc. // Copyright (c) 2020 MediaTek Inc.
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/irqdomain.h>
#include <linux/mfd/mt6357/core.h> #include <linux/mfd/mt6357/core.h>
#include <linux/mfd/mt6357/registers.h> #include <linux/mfd/mt6357/registers.h>
#include <linux/mfd/mt6358/core.h> #include <linux/mfd/mt6358/core.h>
@ -11,9 +13,6 @@
#include <linux/mfd/mt6359/registers.h> #include <linux/mfd/mt6359/registers.h>
#include <linux/mfd/mt6397/core.h> #include <linux/mfd/mt6397/core.h>
#include <linux/module.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/platform_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>

View File

@ -6,9 +6,10 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/irqdomain.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/of_irq.h> #include <linux/platform_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/mfd/mt6323/core.h> #include <linux/mfd/mt6323/core.h>

View File

@ -3,10 +3,9 @@
// Copyright (c) 2019 MediaTek Inc. // Copyright (c) 2019 MediaTek Inc.
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/irqdomain.h>
#include <linux/module.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/platform_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/suspend.h> #include <linux/suspend.h>

View File

@ -142,7 +142,7 @@ static int mxs_lradc_probe(struct platform_device *pdev)
if (!of_id) if (!of_id)
return -EINVAL; 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); lradc->clk = devm_clk_get(&pdev->dev, NULL);
if (IS_ERR(lradc->clk)) { if (IS_ERR(lradc->clk)) {

View File

@ -534,7 +534,6 @@ static int usbhs_omap_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
struct usbhs_omap_platform_data *pdata = dev_get_platdata(dev); struct usbhs_omap_platform_data *pdata = dev_get_platdata(dev);
struct usbhs_hcd_omap *omap; struct usbhs_hcd_omap *omap;
struct resource *res;
int ret = 0; int ret = 0;
int i; int i;
bool need_logic_fck; bool need_logic_fck;
@ -569,8 +568,7 @@ static int usbhs_omap_probe(struct platform_device *pdev)
return -ENOMEM; return -ENOMEM;
} }
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); omap->uhh_base = devm_platform_ioremap_resource(pdev, 0);
omap->uhh_base = devm_ioremap_resource(dev, res);
if (IS_ERR(omap->uhh_base)) if (IS_ERR(omap->uhh_base))
return PTR_ERR(omap->uhh_base); return PTR_ERR(omap->uhh_base);

View File

@ -200,15 +200,13 @@ static unsigned ohci_omap3_fslsmode(enum usbhs_omap_port_mode mode)
static int usbtll_omap_probe(struct platform_device *pdev) static int usbtll_omap_probe(struct platform_device *pdev)
{ {
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
struct resource *res;
struct usbtll_omap *tll; struct usbtll_omap *tll;
void __iomem *base; void __iomem *base;
int i, nch, ver; int i, nch, ver;
dev_dbg(dev, "starting TI HSUSB TLL Controller\n"); dev_dbg(dev, "starting TI HSUSB TLL Controller\n");
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); base = devm_platform_ioremap_resource(pdev, 0);
base = devm_ioremap_resource(dev, res);
if (IS_ERR(base)) if (IS_ERR(base))
return PTR_ERR(base); return PTR_ERR(base);

View File

@ -18,7 +18,8 @@
#include <linux/err.h> #include <linux/err.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/mfd/palmas.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] = { static const struct regmap_config palmas_regmap_config[PALMAS_NUM_CLIENTS] = {
{ {

View File

@ -9,7 +9,7 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/irqdomain.h> #include <linux/irqdomain.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <linux/pinctrl/consumer.h> #include <linux/pinctrl/consumer.h>
#include <linux/regmap.h> #include <linux/regmap.h>

View File

@ -103,8 +103,9 @@ static int
pm8xxx_config_irq(struct pm_irq_chip *chip, unsigned int bp, unsigned int cp) pm8xxx_config_irq(struct pm_irq_chip *chip, unsigned int bp, unsigned int cp)
{ {
int rc; 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); rc = regmap_write(chip->regmap, SSBI_REG_ADDR_IRQ_BLK_SEL, bp);
if (rc) { if (rc) {
pr_err("Failed Selecting Block %d rc=%d\n", bp, 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) if (rc)
pr_err("Failed Configuring IRQ rc=%d\n", rc); pr_err("Failed Configuring IRQ rc=%d\n", rc);
bail: bail:
spin_unlock(&chip->pm_irq_lock); spin_unlock_irqrestore(&chip->pm_irq_lock, flags);
return rc; 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); struct pm_irq_chip *chip = irq_data_get_irq_chip_data(d);
unsigned int pmirq = irqd_to_hwirq(d); unsigned int pmirq = irqd_to_hwirq(d);
unsigned int bits; unsigned int bits;
unsigned long flags;
int irq_bit; int irq_bit;
u8 block; u8 block;
int rc; int rc;
@ -331,7 +333,7 @@ static int pm8xxx_irq_get_irqchip_state(struct irq_data *d,
block = pmirq / 8; block = pmirq / 8;
irq_bit = 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); rc = regmap_write(chip->regmap, SSBI_REG_ADDR_IRQ_BLK_SEL, block);
if (rc) { if (rc) {
pr_err("Failed Selecting Block %d rc=%d\n", block, 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)); *state = !!(bits & BIT(irq_bit));
bail: bail:
spin_unlock(&chip->pm_irq_lock); spin_unlock_irqrestore(&chip->pm_irq_lock, flags);
return rc; return rc;
} }

View File

@ -18,7 +18,7 @@
#include <linux/mfd/rave-sp.h> #include <linux/mfd/rave-sp.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h> #include <linux/of_platform.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/serdev.h> #include <linux/serdev.h>
#include <asm/unaligned.h> #include <asm/unaligned.h>

View File

@ -14,7 +14,7 @@
#include <linux/mfd/rk808.h> #include <linux/mfd/rk808.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/property.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/reboot.h> #include <linux/reboot.h>

View File

@ -277,7 +277,7 @@ static SIMPLE_DEV_PM_OPS(rn5t618_i2c_dev_pm_ops,
static struct i2c_driver rn5t618_i2c_driver = { static struct i2c_driver rn5t618_i2c_driver = {
.driver = { .driver = {
.name = "rn5t618", .name = "rn5t618",
.of_match_table = of_match_ptr(rn5t618_of_match), .of_match_table = rn5t618_of_match,
.pm = &rn5t618_i2c_dev_pm_ops, .pm = &rn5t618_i2c_dev_pm_ops,
}, },
.probe = rn5t618_i2c_probe, .probe = rn5t618_i2c_probe,

View File

@ -15,7 +15,7 @@
#include <linux/mfd/rohm-bd71828.h> #include <linux/mfd/rohm-bd71828.h>
#include <linux/mfd/rohm-generic.h> #include <linux/mfd/rohm-generic.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/types.h> #include <linux/types.h>

View File

@ -14,7 +14,7 @@
#include <linux/mfd/rohm-bd718x7.h> #include <linux/mfd/rohm-bd718x7.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/types.h> #include <linux/types.h>

View File

@ -13,7 +13,7 @@
#include <linux/mfd/rohm-bd957x.h> #include <linux/mfd/rohm-bd957x.h>
#include <linux/mfd/rohm-generic.h> #include <linux/mfd/rohm-generic.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/types.h> #include <linux/types.h>

View File

@ -277,7 +277,7 @@ MODULE_DEVICE_TABLE(of, rsmu_i2c_of_match);
static struct i2c_driver rsmu_i2c_driver = { static struct i2c_driver rsmu_i2c_driver = {
.driver = { .driver = {
.name = "rsmu-i2c", .name = "rsmu-i2c",
.of_match_table = of_match_ptr(rsmu_i2c_of_match), .of_match_table = rsmu_i2c_of_match,
}, },
.probe = rsmu_i2c_probe, .probe = rsmu_i2c_probe,
.remove = rsmu_i2c_remove, .remove = rsmu_i2c_remove,

View File

@ -262,7 +262,7 @@ MODULE_DEVICE_TABLE(of, rsmu_spi_of_match);
static struct spi_driver rsmu_spi_driver = { static struct spi_driver rsmu_spi_driver = {
.driver = { .driver = {
.name = "rsmu-spi", .name = "rsmu-spi",
.of_match_table = of_match_ptr(rsmu_spi_of_match), .of_match_table = rsmu_spi_of_match,
}, },
.probe = rsmu_spi_probe, .probe = rsmu_spi_probe,
.remove = rsmu_spi_remove, .remove = rsmu_spi_remove,

View File

@ -10,9 +10,9 @@
*/ */
#include <linux/err.h> #include <linux/err.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/of_device.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/mfd/rt5033.h> #include <linux/mfd/rt5033.h>
#include <linux/mfd/rt5033-private.h> #include <linux/mfd/rt5033-private.h>

View File

@ -11,7 +11,9 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/mfd/rz-mtu3.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/reset.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
@ -20,7 +22,7 @@
struct rz_mtu3_priv { struct rz_mtu3_priv {
void __iomem *mmio; void __iomem *mmio;
struct reset_control *rstc; struct reset_control *rstc;
raw_spinlock_t lock; spinlock_t lock;
}; };
/******* MTU3 registers (original offset is +0x1200) *******/ /******* 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; struct rz_mtu3_priv *priv = mtu->priv_data;
unsigned long tmdr, flags; 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); tmdr = rz_mtu3_shared_reg_read(ch, offset);
__assign_bit(pos, &tmdr, !!val); __assign_bit(pos, &tmdr, !!val);
rz_mtu3_shared_reg_write(ch, offset, tmdr); 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); 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; u16 offset;
u8 bitpos; u8 bitpos;
/* start stop register shared by multiple timer channels */
raw_spin_lock_irqsave(&priv->lock, flags);
offset = rz_mtu3_get_tstr_offset(ch); offset = rz_mtu3_get_tstr_offset(ch);
bitpos = rz_mtu3_get_tstr_bit_pos(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); tstr = rz_mtu3_shared_reg_read(ch, offset);
__assign_bit(bitpos, &tstr, start); __assign_bit(bitpos, &tstr, start);
rz_mtu3_shared_reg_write(ch, offset, tstr); 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) 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 *mtu = dev_get_drvdata(ch->dev->parent);
struct rz_mtu3_priv *priv = mtu->priv_data; struct rz_mtu3_priv *priv = mtu->priv_data;
unsigned long flags, tstr; unsigned long flags, tstr;
bool ret = false;
u16 offset; u16 offset;
u8 bitpos; u8 bitpos;
/* start stop register shared by multiple timer channels */
raw_spin_lock_irqsave(&priv->lock, flags);
offset = rz_mtu3_get_tstr_offset(ch); offset = rz_mtu3_get_tstr_offset(ch);
bitpos = rz_mtu3_get_tstr_bit_pos(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); 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 tstr & BIT(bitpos);
return ret;
} }
EXPORT_SYMBOL_GPL(rz_mtu3_is_enabled); 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); return PTR_ERR(ddata->clk);
reset_control_deassert(priv->rstc); reset_control_deassert(priv->rstc);
raw_spin_lock_init(&priv->lock); spin_lock_init(&priv->lock);
platform_set_drvdata(pdev, ddata); platform_set_drvdata(pdev, ddata);
for (i = 0; i < RZ_MTU_NUM_CHANNELS; i++) { for (i = 0; i < RZ_MTU_NUM_CHANNELS; i++) {

View File

@ -10,8 +10,6 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/of_irq.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <linux/mutex.h> #include <linux/mutex.h>

View File

@ -8,7 +8,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/mfd/sc27xx-pmic.h> #include <linux/mfd/sc27xx-pmic.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/spi/spi.h> #include <linux/spi/spi.h>

View File

@ -14,12 +14,12 @@
#include <linux/err.h> #include <linux/err.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/kernel.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/platform_device.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/ssbi.h> #include <linux/ssbi.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_device.h>
/* SSBI 2.0 controller registers */ /* SSBI 2.0 controller registers */
#define SSBI2_CMD 0x0008 #define SSBI2_CMD 0x0008

View File

@ -9,6 +9,7 @@
#include <linux/mfd/stm32-lptimer.h> #include <linux/mfd/stm32-lptimer.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <linux/platform_device.h>
#define STM32_LPTIM_MAX_REGISTER 0x3fc #define STM32_LPTIM_MAX_REGISTER 0x3fc

View File

@ -8,6 +8,7 @@
#include <linux/mfd/stm32-timers.h> #include <linux/mfd/stm32-timers.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/reset.h> #include <linux/reset.h>
#define STM32_TIMERS_MAX_REGISTERS 0x3fc #define STM32_TIMERS_MAX_REGISTERS 0x3fc
@ -226,8 +227,7 @@ static int stm32_timers_probe(struct platform_device *pdev)
if (!ddata) if (!ddata)
return -ENOMEM; return -ENOMEM;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); mmio = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
mmio = devm_ioremap_resource(dev, res);
if (IS_ERR(mmio)) if (IS_ERR(mmio))
return PTR_ERR(mmio); return PTR_ERR(mmio);

View File

@ -87,7 +87,7 @@ stmpe_i2c_probe(struct i2c_client *i2c)
dev_info(&i2c->dev, "matching on node name, compatible is preferred\n"); dev_info(&i2c->dev, "matching on node name, compatible is preferred\n");
partnum = id->driver_data; partnum = id->driver_data;
} else } else
partnum = (enum stmpe_partnum)of_id->data; partnum = (uintptr_t)of_id->data;
return stmpe_probe(&i2c_ci, partnum); return stmpe_probe(&i2c_ci, partnum);
} }

View File

@ -219,7 +219,7 @@ MODULE_DEVICE_TABLE(of, stpmic1_of_match);
static struct i2c_driver stpmic1_driver = { static struct i2c_driver stpmic1_driver = {
.driver = { .driver = {
.name = "stpmic1", .name = "stpmic1",
.of_match_table = of_match_ptr(stpmic1_of_match), .of_match_table = stpmic1_of_match,
.pm = pm_sleep_ptr(&stpmic1_pm), .pm = pm_sleep_ptr(&stpmic1_pm),
}, },
.probe = stpmic1_probe, .probe = stpmic1_probe,

View File

@ -8,8 +8,8 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/of_irq.h> #include <linux/platform_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/mfd/sun4i-gpadc.h> #include <linux/mfd/sun4i-gpadc.h>

View File

@ -340,7 +340,7 @@ tc3589x_of_probe(struct device *dev, enum tc3589x_version *version)
of_id = of_match_device(tc3589x_match, dev); of_id = of_match_device(tc3589x_match, dev);
if (!of_id) if (!of_id)
return ERR_PTR(-ENODEV); return ERR_PTR(-ENODEV);
*version = (enum tc3589x_version) of_id->data; *version = (uintptr_t) of_id->data;
for_each_child_of_node(np, child) { for_each_child_of_node(np, child) {
if (of_device_is_compatible(child, "toshiba,tc3589x-gpio")) if (of_device_is_compatible(child, "toshiba,tc3589x-gpio"))
@ -483,7 +483,7 @@ static struct i2c_driver tc3589x_driver = {
.driver = { .driver = {
.name = "tc3589x", .name = "tc3589x",
.pm = pm_sleep_ptr(&tc3589x_dev_pm_ops), .pm = pm_sleep_ptr(&tc3589x_dev_pm_ops),
.of_match_table = of_match_ptr(tc3589x_match), .of_match_table = tc3589x_match,
}, },
.probe = tc3589x_probe, .probe = tc3589x_probe,
.remove = tc3589x_remove, .remove = tc3589x_remove,

View File

@ -17,7 +17,6 @@
#include <linux/mfd/ti-lmu-register.h> #include <linux/mfd/ti-lmu-register.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/slab.h> #include <linux/slab.h>
struct ti_lmu_data { struct ti_lmu_data {

View File

@ -14,7 +14,7 @@
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h> #include <linux/platform_device.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/mfd/ti_am335x_tscadc.h> #include <linux/mfd/ti_am335x_tscadc.h>
@ -201,8 +201,7 @@ static int ti_tscadc_probe(struct platform_device *pdev)
else else
tscadc->irq = err; tscadc->irq = err;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); tscadc->tscadc_base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
tscadc->tscadc_base = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(tscadc->tscadc_base)) if (IS_ERR(tscadc->tscadc_base))
return PTR_ERR(tscadc->tscadc_base); return PTR_ERR(tscadc->tscadc_base);

View File

@ -20,7 +20,6 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/mfd/tps6507x.h> #include <linux/mfd/tps6507x.h>

View File

@ -17,7 +17,6 @@
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/mfd/tps65090.h> #include <linux/mfd/tps65090.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/err.h> #include <linux/err.h>
#define NUM_INT_REG 2 #define NUM_INT_REG 2

View File

@ -17,7 +17,6 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/slab.h> #include <linux/slab.h>

View File

@ -15,7 +15,6 @@
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_device.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/mutex.h> #include <linux/mutex.h>

View File

@ -9,7 +9,7 @@
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/of.h>
#include <linux/mfd/core.h> #include <linux/mfd/core.h>
#include <linux/mfd/tps6594.h> #include <linux/mfd/tps6594.h>

Some files were not shown because too many files have changed in this diff Show More