diff options
author | Remi Pommarel <repk@triplefau.lt> | 2015-12-06 11:22:48 -0500 |
---|---|---|
committer | Michael Turquette <mturquette@baylibre.com> | 2015-12-24 23:38:38 -0500 |
commit | cfbab8fbab9c330aca963095a439c451ac97c0dd (patch) | |
tree | 27c6b1facf2ff88bb04f250d78c2acdf47ec411f | |
parent | 6d18b8adbe679b5947aa822b676efff230acc5f6 (diff) |
clk: bcm2835: Add PWM clock support
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>
-rw-r--r-- | drivers/clk/bcm/clk-bcm2835.c | 13 | ||||
-rw-r--r-- | include/dt-bindings/clock/bcm2835.h | 3 |
2 files changed, 15 insertions, 1 deletions
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c index 6e4dd6fa3403..015e687ffabe 100644 --- a/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c | |||
@@ -807,6 +807,16 @@ static const struct bcm2835_clock_data bcm2835_clock_emmc_data = { | |||
807 | .frac_bits = 8, | 807 | .frac_bits = 8, |
808 | }; | 808 | }; |
809 | 809 | ||
810 | static const struct bcm2835_clock_data bcm2835_clock_pwm_data = { | ||
811 | .name = "pwm", | ||
812 | .num_mux_parents = ARRAY_SIZE(bcm2835_clock_per_parents), | ||
813 | .parents = bcm2835_clock_per_parents, | ||
814 | .ctl_reg = CM_PWMCTL, | ||
815 | .div_reg = CM_PWMDIV, | ||
816 | .int_bits = 12, | ||
817 | .frac_bits = 12, | ||
818 | }; | ||
819 | |||
810 | struct bcm2835_pll { | 820 | struct bcm2835_pll { |
811 | struct clk_hw hw; | 821 | struct clk_hw hw; |
812 | struct bcm2835_cprman *cprman; | 822 | struct bcm2835_cprman *cprman; |
@@ -1584,6 +1594,9 @@ static int bcm2835_clk_probe(struct platform_device *pdev) | |||
1584 | cprman->regs + CM_PERIICTL, CM_GATE_BIT, | 1594 | cprman->regs + CM_PERIICTL, CM_GATE_BIT, |
1585 | 0, &cprman->regs_lock); | 1595 | 0, &cprman->regs_lock); |
1586 | 1596 | ||
1597 | clks[BCM2835_CLOCK_PWM] = | ||
1598 | bcm2835_register_clock(cprman, &bcm2835_clock_pwm_data); | ||
1599 | |||
1587 | return of_clk_add_provider(dev->of_node, of_clk_src_onecell_get, | 1600 | return of_clk_add_provider(dev->of_node, of_clk_src_onecell_get, |
1588 | &cprman->onecell); | 1601 | &cprman->onecell); |
1589 | } | 1602 | } |
diff --git a/include/dt-bindings/clock/bcm2835.h b/include/dt-bindings/clock/bcm2835.h index d323efac7edf..61f1d20c2a67 100644 --- a/include/dt-bindings/clock/bcm2835.h +++ b/include/dt-bindings/clock/bcm2835.h | |||
@@ -43,5 +43,6 @@ | |||
43 | #define BCM2835_CLOCK_TSENS 27 | 43 | #define BCM2835_CLOCK_TSENS 27 |
44 | #define BCM2835_CLOCK_EMMC 28 | 44 | #define BCM2835_CLOCK_EMMC 28 |
45 | #define BCM2835_CLOCK_PERI_IMAGE 29 | 45 | #define BCM2835_CLOCK_PERI_IMAGE 29 |
46 | #define BCM2835_CLOCK_PWM 30 | ||
46 | 47 | ||
47 | #define BCM2835_CLOCK_COUNT 30 | 48 | #define BCM2835_CLOCK_COUNT 31 |