clk: bcm2835: Add PWM clock support
authorRemi Pommarel <repk@triplefau.lt>
Sun, 6 Dec 2015 16:22:48 +0000 (17:22 +0100)
committerMichael Turquette <mturquette@baylibre.com>
Fri, 25 Dec 2015 04:38:38 +0000 (20:38 -0800)
Register the pwm clock for bcm2835.

Signed-off-by: Remi Pommarel <repk@triplefau.lt>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
drivers/clk/bcm/clk-bcm2835.c
include/dt-bindings/clock/bcm2835.h

index 6e4dd6f..015e687 100644 (file)
@@ -807,6 +807,16 @@ static const struct bcm2835_clock_data bcm2835_clock_emmc_data = {
        .frac_bits = 8,
 };
 
+static const struct bcm2835_clock_data bcm2835_clock_pwm_data = {
+       .name = "pwm",
+       .num_mux_parents = ARRAY_SIZE(bcm2835_clock_per_parents),
+       .parents = bcm2835_clock_per_parents,
+       .ctl_reg = CM_PWMCTL,
+       .div_reg = CM_PWMDIV,
+       .int_bits = 12,
+       .frac_bits = 12,
+};
+
 struct bcm2835_pll {
        struct clk_hw hw;
        struct bcm2835_cprman *cprman;
@@ -1584,6 +1594,9 @@ static int bcm2835_clk_probe(struct platform_device *pdev)
                                  cprman->regs + CM_PERIICTL, CM_GATE_BIT,
                                  0, &cprman->regs_lock);
 
+       clks[BCM2835_CLOCK_PWM] =
+               bcm2835_register_clock(cprman, &bcm2835_clock_pwm_data);
+
        return of_clk_add_provider(dev->of_node, of_clk_src_onecell_get,
                                   &cprman->onecell);
 }
index d323efa..61f1d20 100644 (file)
@@ -43,5 +43,6 @@
 #define BCM2835_CLOCK_TSENS            27
 #define BCM2835_CLOCK_EMMC             28
 #define BCM2835_CLOCK_PERI_IMAGE       29
+#define BCM2835_CLOCK_PWM              30
 
-#define BCM2835_CLOCK_COUNT            30
+#define BCM2835_CLOCK_COUNT            31