summaryrefslogtreecommitdiffstats
path: root/sys/arm/ti
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2013-08-21 04:49:58 +0000
committerian <ian@FreeBSD.org>2013-08-21 04:49:58 +0000
commit06b56d3baba00044004820b75e2634ecb076ae8e (patch)
tree41c6ce6b2bdc12b06489ae1496e9bde19d26340f /sys/arm/ti
parent7d7f7f1bb2a7a63aa6191f75bc43e56fbee96565 (diff)
downloadFreeBSD-src-06b56d3baba00044004820b75e2634ecb076ae8e.zip
FreeBSD-src-06b56d3baba00044004820b75e2634ecb076ae8e.tar.gz
Make the noop clock successfully do nothing, because doing nothing and
returning an error status (which the NULL method pointers caused) isn't nearly as useful.
Diffstat (limited to 'sys/arm/ti')
-rw-r--r--sys/arm/ti/am335x/am335x_prcm.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/sys/arm/ti/am335x/am335x_prcm.c b/sys/arm/ti/am335x/am335x_prcm.c
index e0f0d7e..5cfdf2e 100644
--- a/sys/arm/ti/am335x/am335x_prcm.c
+++ b/sys/arm/ti/am335x/am335x_prcm.c
@@ -137,9 +137,12 @@ static struct resource_spec am335x_prcm_spec[] = {
static struct am335x_prcm_softc *am335x_prcm_sc = NULL;
+static int am335x_clk_noop_activate(struct ti_clock_dev *clkdev);
static int am335x_clk_generic_activate(struct ti_clock_dev *clkdev);
static int am335x_clk_gpio_activate(struct ti_clock_dev *clkdev);
+static int am335x_clk_noop_deactivate(struct ti_clock_dev *clkdev);
static int am335x_clk_generic_deactivate(struct ti_clock_dev *clkdev);
+static int am335x_clk_noop_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc);
static int am335x_clk_generic_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc);
static int am335x_clk_hsmmc_get_source_freq(struct ti_clock_dev *clkdev, unsigned int *freq);
static int am335x_clk_get_sysclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq);
@@ -152,7 +155,13 @@ static int am335x_clk_lcdc_activate(struct ti_clock_dev *clkdev);
static int am335x_clk_pruss_activate(struct ti_clock_dev *clkdev);
#define AM335X_NOOP_CLOCK_DEV(i) \
- { .id = (i) }
+ { .id = (i), \
+ .clk_activate = am335x_clk_noop_activate, \
+ .clk_deactivate = am335x_clk_noop_deactivate, \
+ .clk_set_source = am335x_clk_noop_set_source, \
+ .clk_accessible = NULL, \
+ .clk_get_source_freq = NULL \
+ }
#define AM335X_GENERIC_CLOCK_DEV(i) \
{ .id = (i), \
@@ -430,6 +439,13 @@ am335x_clk_details(clk_ident_t id)
}
static int
+am335x_clk_noop_activate(struct ti_clock_dev *clkdev)
+{
+
+ return (0);
+}
+
+static int
am335x_clk_generic_activate(struct ti_clock_dev *clkdev)
{
struct am335x_prcm_softc *sc = am335x_prcm_sc;
@@ -476,6 +492,13 @@ am335x_clk_gpio_activate(struct ti_clock_dev *clkdev)
}
static int
+am335x_clk_noop_deactivate(struct ti_clock_dev *clkdev)
+{
+
+ return(0);
+}
+
+static int
am335x_clk_generic_deactivate(struct ti_clock_dev *clkdev)
{
struct am335x_prcm_softc *sc = am335x_prcm_sc;
@@ -498,6 +521,13 @@ am335x_clk_generic_deactivate(struct ti_clock_dev *clkdev)
}
static int
+am335x_clk_noop_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc)
+{
+
+ return (0);
+}
+
+static int
am335x_clk_generic_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc)
{
struct am335x_prcm_softc *sc = am335x_prcm_sc;
OpenPOWER on IntegriCloud