Merge tag 'mfd-next-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 4 Sep 2023 20:47:59 +0000 (13:47 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 4 Sep 2023 20:47:59 +0000 (13:47 -0700)
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()
  ...

118 files changed:
Documentation/devicetree/bindings/input/stmpe-keypad.txt [deleted file]
Documentation/devicetree/bindings/input/touchscreen/stmpe.txt [deleted file]
Documentation/devicetree/bindings/mfd/allwinner,sun6i-a31-prcm.yaml
Documentation/devicetree/bindings/mfd/allwinner,sun8i-a23-prcm.yaml
Documentation/devicetree/bindings/mfd/atmel-flexcom.txt
Documentation/devicetree/bindings/mfd/atmel-gpbr.txt
Documentation/devicetree/bindings/mfd/atmel-hlcdc.txt
Documentation/devicetree/bindings/mfd/atmel-matrix.txt
Documentation/devicetree/bindings/mfd/atmel-smc.txt
Documentation/devicetree/bindings/mfd/brcm,bcm6318-gpio-sysctl.yaml
Documentation/devicetree/bindings/mfd/brcm,bcm63268-gpio-sysctl.yaml
Documentation/devicetree/bindings/mfd/brcm,bcm6328-gpio-sysctl.yaml
Documentation/devicetree/bindings/mfd/brcm,bcm6358-gpio-sysctl.yaml
Documentation/devicetree/bindings/mfd/brcm,bcm6362-gpio-sysctl.yaml
Documentation/devicetree/bindings/mfd/brcm,bcm6368-gpio-sysctl.yaml
Documentation/devicetree/bindings/mfd/maxim,max77693.yaml
Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.yaml
Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
Documentation/devicetree/bindings/mfd/st,stmpe.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/mfd/st,stpmic1.yaml
Documentation/devicetree/bindings/mfd/stericsson,db8500-prcmu.yaml
Documentation/devicetree/bindings/mfd/stmpe.txt [deleted file]
MAINTAINERS
drivers/counter/Kconfig
drivers/mfd/Kconfig
drivers/mfd/ab8500-core.c
drivers/mfd/acer-ec-a500.c
drivers/mfd/act8945a.c
drivers/mfd/altera-a10sr.c
drivers/mfd/altera-sysmgr.c
drivers/mfd/arizona-core.c
drivers/mfd/atc260x-core.c
drivers/mfd/atmel-hlcdc.c
drivers/mfd/axp20x.c
drivers/mfd/bcm590xx.c
drivers/mfd/cros_ec_dev.c
drivers/mfd/cs47l15-tables.c
drivers/mfd/cs47l24-tables.c
drivers/mfd/cs47l35-tables.c
drivers/mfd/cs47l85-tables.c
drivers/mfd/cs47l90-tables.c
drivers/mfd/cs47l92-tables.c
drivers/mfd/da9052-i2c.c
drivers/mfd/da9055-i2c.c
drivers/mfd/da9062-core.c
drivers/mfd/exynos-lpass.c
drivers/mfd/hi6421-pmic-core.c
drivers/mfd/hi655x-pmic.c
drivers/mfd/ipaq-micro.c
drivers/mfd/iqs62x.c
drivers/mfd/lochnagar-i2c.c
drivers/mfd/lp873x.c
drivers/mfd/lp87565.c
drivers/mfd/madera-i2c.c
drivers/mfd/madera-spi.c
drivers/mfd/max14577.c
drivers/mfd/max77541.c
drivers/mfd/max77620.c
drivers/mfd/max77686.c
drivers/mfd/max77843.c
drivers/mfd/max8907.c
drivers/mfd/max8925-core.c
drivers/mfd/max8997.c
drivers/mfd/max8998.c
drivers/mfd/mc13xxx-i2c.c
drivers/mfd/mt6358-irq.c
drivers/mfd/mt6397-core.c
drivers/mfd/mt6397-irq.c
drivers/mfd/mxs-lradc.c
drivers/mfd/omap-usb-host.c
drivers/mfd/omap-usb-tll.c
drivers/mfd/palmas.c
drivers/mfd/qcom-pm8008.c
drivers/mfd/qcom-pm8xxx.c
drivers/mfd/rave-sp.c
drivers/mfd/rk8xx-core.c
drivers/mfd/rn5t618.c
drivers/mfd/rohm-bd71828.c
drivers/mfd/rohm-bd718x7.c
drivers/mfd/rohm-bd9576.c
drivers/mfd/rsmu_i2c.c
drivers/mfd/rsmu_spi.c
drivers/mfd/rt5033.c
drivers/mfd/rz-mtu3.c
drivers/mfd/sec-core.c
drivers/mfd/sprd-sc27xx-spi.c
drivers/mfd/ssbi.c
drivers/mfd/stm32-lptimer.c
drivers/mfd/stm32-timers.c
drivers/mfd/stmpe-i2c.c
drivers/mfd/stpmic1.c
drivers/mfd/sun4i-gpadc.c
drivers/mfd/tc3589x.c
drivers/mfd/ti-lmu.c
drivers/mfd/ti_am335x_tscadc.c
drivers/mfd/tps6507x.c
drivers/mfd/tps65090.c
drivers/mfd/tps65217.c
drivers/mfd/tps65218.c
drivers/mfd/tps6594-core.c
drivers/mfd/twl6040.c
drivers/mfd/wm5102-tables.c
drivers/mfd/wm5110-tables.c
drivers/mfd/wm831x-core.c
drivers/mfd/wm831x-i2c.c
drivers/mfd/wm831x-spi.c
drivers/mfd/wm8994-core.c
drivers/mfd/wm8994-regmap.c
drivers/mfd/wm8997-tables.c
drivers/mfd/wm8998-tables.c
drivers/mtd/chips/cfi_cmdset_0002.c
drivers/pwm/Kconfig
include/linux/mfd/88pm860x.h
include/linux/mfd/abx500/ab8500.h
include/linux/mfd/dbx500-prcmu.h
include/linux/mfd/hi655x-pmic.h
include/linux/mfd/max77686-private.h
include/linux/mfd/rz-mtu3.h

diff --git a/Documentation/devicetree/bindings/input/stmpe-keypad.txt b/Documentation/devicetree/bindings/input/stmpe-keypad.txt
deleted file mode 100644 (file)
index 12bb771..0000000
+++ /dev/null
@@ -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>;
-       };
diff --git a/Documentation/devicetree/bindings/input/touchscreen/stmpe.txt b/Documentation/devicetree/bindings/input/touchscreen/stmpe.txt
deleted file mode 100644 (file)
index 238b515..0000000
+++ /dev/null
@@ -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>;
-       };
-};
index cf94176..8789e36 100644 (file)
@@ -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
index 16c80a7..e51f855 100644 (file)
@@ -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
index 9d83753..af692e8 100644 (file)
@@ -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.
index e8c5255..3c989d1 100644 (file)
@@ -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.
 
index 5f8880c..7de696e 100644 (file)
@@ -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".
index 89d05c6..6e5f836 100644 (file)
@@ -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.
 
index 5696d9f..fd62add 100644 (file)
@@ -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.
 
index 9f9a14a..cb48016 100644 (file)
@@ -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
index 803277d..c14def1 100644 (file)
@@ -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
index b9a6856..5f48209 100644 (file)
@@ -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
index 4651fe4..f1f4629 100644 (file)
@@ -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
index 0330b62..4d59473 100644 (file)
@@ -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
index 82d3e44..aae83d4 100644 (file)
@@ -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
index 1b06a77..9804d13 100644 (file)
@@ -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>;
index 8b9a200..9f03436 100644 (file)
@@ -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
index 7ab7b2c..d783cc4 100644 (file)
@@ -130,7 +130,6 @@ dependencies:
 examples:
   - |
     #include <dt-bindings/interrupt-controller/irq.h>
-    #include <dt-bindings/leds/common.h>
 
     i2c {
         #address-cells = <1>;
diff --git a/Documentation/devicetree/bindings/mfd/st,stmpe.yaml b/Documentation/devicetree/bindings/mfd/st,stmpe.yaml
new file mode 100644 (file)
index 0000000..b77cc3f
--- /dev/null
@@ -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>;
+        };
+      };
+    };
+...
index 97c6109..b17ebeb 100644 (file)
@@ -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:
index a66d58b..5e0002f 100644 (file)
@@ -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
diff --git a/Documentation/devicetree/bindings/mfd/stmpe.txt b/Documentation/devicetree/bindings/mfd/stmpe.txt
deleted file mode 100644 (file)
index d4408a4..0000000
+++ /dev/null
@@ -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>;
-       };
index fa695ab..d68f5c6 100644 (file)
@@ -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>
index 62962ae..497bc05 100644 (file)
@@ -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
index 85be645..aea9574 100644 (file)
@@ -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
index 9d9e978..15c9582 100644 (file)
@@ -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
index feb757e..7940583 100644 (file)
@@ -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>
 
index 2406fcd..4e32ac3 100644 (file)
@@ -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,
index 34ef526..d53e433 100644 (file)
@@ -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,
 };
index af20581..0e52bd2 100644 (file)
@@ -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>
 
index c166fcd..19a0adf 100644 (file)
@@ -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>
index 7c5de3a..67473b5 100644 (file)
@@ -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
index 3c2414b..20de7f4 100644 (file)
@@ -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);
 
index c03bc5c..87603ee 100644 (file)
@@ -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)                   \
index 9f39b46..92eede9 100644 (file)
@@ -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>
 
index 92f4dfc..79d393b 100644 (file)
@@ -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>
index 3c77f0a..59b005c 100644 (file)
@@ -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);
index c289d92..878dfd2 100644 (file)
@@ -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),
 };
index a0bc6c5..274f4b0 100644 (file)
@@ -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);
index 270d8ed..f397894 100644 (file)
@@ -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);
index 7345fc0..6f9ceb3 100644 (file)
@@ -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);
index f296e35..4d9ba86 100644 (file)
@@ -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);
index 541e2d4..fd000a2 100644 (file)
 #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)
index bbaf4f0..9a5f51b 100644 (file)
@@ -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>
 
index 48f58b6..45da007 100644 (file)
@@ -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>
index 166cd21..1506d8d 100644 (file)
@@ -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);
 
index cb5cf4a..a6a8905 100644 (file)
@@ -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)
index a58e42d..8feae8d 100644 (file)
@@ -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,
index 6d39684..c964ea6 100644 (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)
 {
-       int i;
-
        dev_dbg(micro->dev, "RX msg: %02x, %d bytes\n", id, len);
 
        spin_lock(&micro->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(&micro->lock);
 }
index dfe9cb7..e03b4d3 100644 (file)
@@ -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>
index 3c88431..59092f8 100644 (file)
@@ -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,
index 6639f0f..de7ab7a 100644 (file)
@@ -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>
index 88ce4d7..1b7f834 100644 (file)
@@ -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);
 
index 0968aa9..a404ea2 100644 (file)
@@ -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>
index da84eb5..ad07ebe 100644 (file)
@@ -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>
 
index 25ed884..1f4f500 100644 (file)
@@ -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;
        }
index e147e94..10c2e27 100644 (file)
@@ -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;
 
index 5811ed8..e63e8e4 100644 (file)
@@ -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>
 
index 0183308..91c286c 100644 (file)
@@ -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", },
index b3689c1..fcff0c4 100644 (file)
@@ -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[] = {
index 78b5ee6..8bbe797 100644 (file)
@@ -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>
 
index 0246bbe..105d79b 100644 (file)
@@ -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, },
index 94c09a5..110bef7 100644 (file)
@@ -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>
index 33a3ec5..4cc426a 100644 (file)
@@ -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>
index de59b49..6bc0e75 100644 (file)
@@ -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);
 }
index 3897564..49830b5 100644 (file)
@@ -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>
 
index f6c1f80..4449dde 100644 (file)
@@ -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>
index 72f923e..886745b 100644 (file)
@@ -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>
index 111d11f..21f3033 100644 (file)
@@ -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)) {
index 7f57751..78f1bb5 100644 (file)
@@ -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);
 
index 69cbc20..9063537 100644 (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)
 {
        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);
 
index a36f124..6e562ba 100644 (file)
@@ -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] = {
        {
index 94a8cca..3ac3742 100644 (file)
@@ -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>
index 9a948df..07c531b 100644 (file)
@@ -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;
 }
index 545196c..da50eba 100644 (file)
@@ -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>
index e8fc9e2..11a831e 100644 (file)
@@ -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>
 
index 333fef8..0fe616b 100644 (file)
@@ -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,
index 93d80a7..594718f 100644 (file)
@@ -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>
 
index 0b58ecc..4798bdf 100644 (file)
@@ -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>
 
index 6456733..bceac70 100644 (file)
@@ -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>
 
index 26972a5..06d78a1 100644 (file)
@@ -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,
index a4a595b..ca0a120 100644 (file)
@@ -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,
index 67b0a22..7e23ab3 100644 (file)
@@ -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>
index 04006f4..f3dac4a 100644 (file)
@@ -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);
-       tstr = rz_mtu3_shared_reg_read(ch, offset);
-       ret = tstr & BIT(bitpos);
 
-       raw_spin_unlock_irqrestore(&priv->lock, flags);
+       /* start stop register shared by multiple timer channels */
+       spin_lock_irqsave(&priv->lock, flags);
+       tstr = rz_mtu3_shared_reg_read(ch, offset);
+       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++) {
index d2f6319..a6b0d73 100644 (file)
@@ -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>
index d21f32c..81e517c 100644 (file)
@@ -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>
index dee89db..b0b0be4 100644 (file)
 #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
index fa322f4..b2704a9 100644 (file)
@@ -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
 
index 44ed2fc..732a28d 100644 (file)
@@ -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);
 
index 1d7b401..fe018be 100644 (file)
@@ -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);
 }
index 3cc7492..c5128fe 100644 (file)
@@ -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,
index d1cbea2..3029d48 100644 (file)
@@ -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>
index 16df64e..db28eb0 100644 (file)
@@ -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,
index 4f06ada..cfc9f88 100644 (file)
@@ -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 {
index 07825cf..b88eb70 100644 (file)
@@ -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);
 
index 9716bf7..95dafb0 100644 (file)
@@ -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>
 
index a35ad70..9245e11 100644 (file)
@@ -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
index 6059929..029ecc3 100644 (file)
@@ -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>
index 619bf7a..11e4e52 100644 (file)
@@ -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>
index 15f3148..0fb9c5c 100644 (file)
@@ -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>
index d85675a..9ce34df 100644 (file)
@@ -16,8 +16,6 @@
 #include <linux/err.h>
 #include <linux/platform_device.h>
 #include <linux/of.h>
-#include <linux/of_irq.h>
-#include <linux/of_platform.h>
 #include <linux/gpio/consumer.h>
 #include <linux/delay.h>
 #include <linux/i2c.h>
index 6bba396..f77ecc6 100644 (file)
@@ -1938,7 +1938,7 @@ const struct regmap_config wm5102_i2c_regmap = {
        .readable_reg = wm5102_readable_register,
        .volatile_reg = wm5102_volatile_register,
 
-       .cache_type = REGCACHE_RBTREE,
+       .cache_type = REGCACHE_MAPLE,
        .reg_defaults = wm5102_reg_default,
        .num_reg_defaults = ARRAY_SIZE(wm5102_reg_default),
 };
index 65b9b1d..eba3248 100644 (file)
@@ -3218,7 +3218,7 @@ const struct regmap_config wm5110_i2c_regmap = {
        .readable_reg = wm5110_readable_register,
        .volatile_reg = wm5110_volatile_register,
 
-       .cache_type = REGCACHE_RBTREE,
+       .cache_type = REGCACHE_MAPLE,
        .reg_defaults = wm5110_reg_default,
        .num_reg_defaults = ARRAY_SIZE(wm5110_reg_default),
 };
index e86b6a4..e7e6892 100644 (file)
@@ -15,8 +15,7 @@
 #include <linux/mfd/core.h>
 #include <linux/slab.h>
 #include <linux/err.h>
-#include <linux/of.h>
-#include <linux/of_device.h>
+#include <linux/mod_devicetable.h>
 
 #include <linux/mfd/wm831x/core.h>
 #include <linux/mfd/wm831x/pdata.h>
index 997837f..694ddbb 100644 (file)
@@ -36,7 +36,7 @@ static int wm831x_i2c_probe(struct i2c_client *i2c)
                        dev_err(&i2c->dev, "Failed to match device\n");
                        return -ENODEV;
                }
-               type = (enum wm831x_parent)of_id->data;
+               type = (uintptr_t)of_id->data;
        } else {
                type = (enum wm831x_parent)id->driver_data;
        }
index 7bcddcc..76be7ef 100644 (file)
@@ -33,7 +33,7 @@ static int wm831x_spi_probe(struct spi_device *spi)
                        dev_err(&spi->dev, "Failed to match device\n");
                        return -ENODEV;
                }
-               type = (enum wm831x_parent)of_id->data;
+               type = (uintptr_t)of_id->data;
        } else {
                type = (enum wm831x_parent)id->driver_data;
        }
index 1e4f169..aba7af6 100644 (file)
@@ -628,7 +628,7 @@ static int wm8994_i2c_probe(struct i2c_client *i2c)
        if (i2c->dev.of_node) {
                of_id = of_match_device(wm8994_of_match, &i2c->dev);
                if (of_id)
-                       wm8994->type = (enum wm8994_type)of_id->data;
+                       wm8994->type = (uintptr_t)of_id->data;
        } else {
                wm8994->type = id->driver_data;
        }
index cd4fef7..ee2ed67 100644 (file)
@@ -1238,7 +1238,7 @@ struct regmap_config wm1811_regmap_config = {
        .reg_bits = 16,
        .val_bits = 16,
 
-       .cache_type = REGCACHE_RBTREE,
+       .cache_type = REGCACHE_MAPLE,
 
        .reg_defaults = wm1811_defaults,
        .num_reg_defaults = ARRAY_SIZE(wm1811_defaults),
@@ -1253,7 +1253,7 @@ struct regmap_config wm8994_regmap_config = {
        .reg_bits = 16,
        .val_bits = 16,
 
-       .cache_type = REGCACHE_RBTREE,
+       .cache_type = REGCACHE_MAPLE,
 
        .reg_defaults = wm8994_defaults,
        .num_reg_defaults = ARRAY_SIZE(wm8994_defaults),
@@ -1268,7 +1268,7 @@ struct regmap_config wm8958_regmap_config = {
        .reg_bits = 16,
        .val_bits = 16,
 
-       .cache_type = REGCACHE_RBTREE,
+       .cache_type = REGCACHE_MAPLE,
 
        .reg_defaults = wm8958_defaults,
        .num_reg_defaults = ARRAY_SIZE(wm8958_defaults),
index 3476787..288c57b 100644 (file)
@@ -1523,7 +1523,7 @@ const struct regmap_config wm8997_i2c_regmap = {
        .readable_reg = wm8997_readable_register,
        .volatile_reg = wm8997_volatile_register,
 
-       .cache_type = REGCACHE_RBTREE,
+       .cache_type = REGCACHE_MAPLE,
        .reg_defaults = wm8997_reg_default,
        .num_reg_defaults = ARRAY_SIZE(wm8997_reg_default),
 };
index 9b34a6d..b3e6e85 100644 (file)
@@ -1556,7 +1556,7 @@ const struct regmap_config wm8998_i2c_regmap = {
        .readable_reg = wm8998_readable_register,
        .volatile_reg = wm8998_volatile_register,
 
-       .cache_type = REGCACHE_RBTREE,
+       .cache_type = REGCACHE_MAPLE,
        .reg_defaults = wm8998_reg_default,
        .num_reg_defaults = ARRAY_SIZE(wm8998_reg_default),
 };
index 153fb8d..df589d9 100644 (file)
@@ -32,7 +32,6 @@
 #include <linux/interrupt.h>
 #include <linux/reboot.h>
 #include <linux/of.h>
-#include <linux/of_platform.h>
 #include <linux/mtd/map.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/cfi.h>
@@ -650,7 +649,7 @@ struct mtd_info *cfi_cmdset_0002(struct map_info *map, int primary)
 
                        /*
                         * Valid primary extension versions are: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5
-                        * see: http://cs.ozerki.net/zap/pub/axim-x5/docs/cfi_r20.pdf, page 19 
+                        * see: http://cs.ozerki.net/zap/pub/axim-x5/docs/cfi_r20.pdf, page 19
                         *      http://www.spansion.com/Support/AppNotes/cfi_100_20011201.pdf
                         *      http://www.spansion.com/Support/Datasheets/s29ws-p_00_a12_e.pdf
                         *      http://www.spansion.com/Support/Datasheets/S29GL_128S_01GS_00_02_e.pdf
index 6210bab..8ebcddf 100644 (file)
@@ -505,7 +505,7 @@ config PWM_ROCKCHIP
 
 config PWM_RZ_MTU3
        tristate "Renesas RZ/G2L MTU3a PWM Timer support"
-       depends on RZ_MTU3 || COMPILE_TEST
+       depends on RZ_MTU3
        depends on HAS_IOMEM
        help
          This driver exposes the MTU3a PWM Timer controller found in Renesas
index 473545a..6fa2179 100644 (file)
@@ -472,13 +472,7 @@ extern int pm860x_bulk_read(struct i2c_client *, int, int, unsigned char *);
 extern int pm860x_bulk_write(struct i2c_client *, int, int, unsigned char *);
 extern int pm860x_set_bits(struct i2c_client *, int, unsigned char,
                           unsigned char);
-extern int pm860x_page_reg_read(struct i2c_client *, int);
 extern int pm860x_page_reg_write(struct i2c_client *, int, unsigned char);
 extern int pm860x_page_bulk_read(struct i2c_client *, int, int,
                                 unsigned char *);
-extern int pm860x_page_bulk_write(struct i2c_client *, int, int,
-                                 unsigned char *);
-extern int pm860x_page_set_bits(struct i2c_client *, int, unsigned char,
-                               unsigned char);
-
 #endif /* __LINUX_MFD_88PM860X_H */
index 302a330..09fb3c5 100644 (file)
@@ -382,10 +382,6 @@ struct ab8500_platform_data {
        struct ab8500_sysctrl_platform_data *sysctrl;
 };
 
-extern int ab8500_init(struct ab8500 *ab8500,
-                                enum ab8500_version version);
-extern int ab8500_exit(struct ab8500 *ab8500);
-
 extern int ab8500_suspend(struct ab8500 *ab8500);
 
 static inline int is_ab8500(struct ab8500 *ab)
index e7a7e70..dd0fc89 100644 (file)
@@ -556,16 +556,6 @@ static inline void prcmu_clear(unsigned int reg, u32 bits)
 #define PRCMU_QOS_ARM_OPP 3
 #define PRCMU_QOS_DEFAULT_VALUE -1
 
-static inline unsigned long prcmu_qos_get_cpufreq_opp_delay(void)
-{
-       return 0;
-}
-
-static inline int prcmu_qos_requirement(int prcmu_qos_class)
-{
-       return 0;
-}
-
 static inline int prcmu_qos_add_requirement(int prcmu_qos_class,
                                            char *name, s32 value)
 {
@@ -582,15 +572,4 @@ static inline void prcmu_qos_remove_requirement(int prcmu_qos_class, char *name)
 {
 }
 
-static inline int prcmu_qos_add_notifier(int prcmu_qos_class,
-                                        struct notifier_block *notifier)
-{
-       return 0;
-}
-static inline int prcmu_qos_remove_notifier(int prcmu_qos_class,
-                                           struct notifier_block *notifier)
-{
-       return 0;
-}
-
 #endif /* __MACH_PRCMU_H */
index 6a01278..1945568 100644 (file)
@@ -52,7 +52,6 @@
 #define OTMP_D1R_INT_MASK               BIT(OTMP_D1R_INT)
 
 struct hi655x_pmic {
-       struct resource *res;
        struct device *dev;
        struct regmap *regmap;
        struct gpio_desc *gpio;
index 3acceee..ea635d1 100644 (file)
@@ -441,8 +441,4 @@ enum max77686_types {
        TYPE_MAX77802,
 };
 
-extern int max77686_irq_init(struct max77686_dev *max77686);
-extern void max77686_irq_exit(struct max77686_dev *max77686);
-extern int max77686_irq_resume(struct max77686_dev *max77686);
-
 #endif /*  __LINUX_MFD_MAX77686_PRIV_H */
index c5173bc..8421d49 100644 (file)
@@ -151,7 +151,6 @@ struct rz_mtu3 {
        void *priv_data;
 };
 
-#if IS_ENABLED(CONFIG_RZ_MTU3)
 static inline bool rz_mtu3_request_channel(struct rz_mtu3_channel *ch)
 {
        mutex_lock(&ch->lock);
@@ -188,70 +187,5 @@ void rz_mtu3_32bit_ch_write(struct rz_mtu3_channel *ch, u16 off, u32 val);
 void rz_mtu3_shared_reg_write(struct rz_mtu3_channel *ch, u16 off, u16 val);
 void rz_mtu3_shared_reg_update_bit(struct rz_mtu3_channel *ch, u16 off,
                                   u16 pos, u8 val);
-#else
-static inline bool rz_mtu3_request_channel(struct rz_mtu3_channel *ch)
-{
-       return false;
-}
-
-static inline void rz_mtu3_release_channel(struct rz_mtu3_channel *ch)
-{
-}
-
-static inline bool rz_mtu3_is_enabled(struct rz_mtu3_channel *ch)
-{
-       return false;
-}
-
-static inline void rz_mtu3_disable(struct rz_mtu3_channel *ch)
-{
-}
-
-static inline int rz_mtu3_enable(struct rz_mtu3_channel *ch)
-{
-       return 0;
-}
-
-static inline u8 rz_mtu3_8bit_ch_read(struct rz_mtu3_channel *ch, u16 off)
-{
-       return 0;
-}
-
-static inline u16 rz_mtu3_16bit_ch_read(struct rz_mtu3_channel *ch, u16 off)
-{
-       return 0;
-}
-
-static inline u32 rz_mtu3_32bit_ch_read(struct rz_mtu3_channel *ch, u16 off)
-{
-       return 0;
-}
-
-static inline u16 rz_mtu3_shared_reg_read(struct rz_mtu3_channel *ch, u16 off)
-{
-       return 0;
-}
-
-static inline void rz_mtu3_8bit_ch_write(struct rz_mtu3_channel *ch, u16 off, u8 val)
-{
-}
-
-static inline void rz_mtu3_16bit_ch_write(struct rz_mtu3_channel *ch, u16 off, u16 val)
-{
-}
-
-static inline void rz_mtu3_32bit_ch_write(struct rz_mtu3_channel *ch, u16 off, u32 val)
-{
-}
-
-static inline void rz_mtu3_shared_reg_write(struct rz_mtu3_channel *ch, u16 off, u16 val)
-{
-}
-
-static inline void rz_mtu3_shared_reg_update_bit(struct rz_mtu3_channel *ch,
-                                                u16 off, u16 pos, u8 val)
-{
-}
-#endif
 
 #endif /* __MFD_RZ_MTU3_H__ */