mfd: twl6040: Register child device for twl6040-pdmclk
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Wed, 31 Aug 2016 11:46:21 +0000 (14:46 +0300)
committerLee Jones <lee.jones@linaro.org>
Tue, 4 Oct 2016 14:48:05 +0000 (15:48 +0100)
The McPDM in OMAP4/5 is using the pdmclk from twl6040 as functional clock.
The twl6040-pdmclk driver provides a clock which can be used to make sure
that the pdmclk is active when the McPDM is in use.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Documentation/devicetree/bindings/mfd/twl6040.txt
drivers/mfd/twl6040.c
include/linux/mfd/twl6040.h

index e6afdfa..9a98ee7 100644 (file)
@@ -12,6 +12,7 @@ Required properties:
 - interrupt-parent: The parent interrupt controller
 - gpio-controller:
 - #gpio-cells = <1>: twl6040 provides GPO lines.
+- #clock-cells = <0>; twl6040 is a provider of pdmclk which is used by McPDM
 - twl6040,audpwron-gpio: Power on GPIO line for the twl6040
 
 - vio-supply: Regulator for the twl6040 VIO supply
index c3ad59e..d66502d 100644 (file)
@@ -783,6 +783,11 @@ static int twl6040_probe(struct i2c_client *client,
        cell->name = "twl6040-gpo";
        children++;
 
+       /* PDM clock support  */
+       cell = &twl6040->cells[children];
+       cell->name = "twl6040-pdmclk";
+       children++;
+
        /* The chip is powered down so mark regmap to cache only and dirty */
        regcache_cache_only(twl6040->regmap, true);
        regcache_mark_dirty(twl6040->regmap);
index 36795a1..a2e8876 100644 (file)
 #define TWL6040_VIBROCDET              0x20
 #define TWL6040_TSHUTDET                0x40
 
-#define TWL6040_CELLS                  3
+#define TWL6040_CELLS                  4
 
 #define TWL6040_REV_ES1_0              0x00
 #define TWL6040_REV_ES1_1              0x01 /* Rev ES1.1 and ES1.2 */