• Grant Likely's avatar
    clk: add DT clock binding support · 766e6a4e
    Grant Likely authored
    Based on work 1st by Ben Herrenschmidt and Jeremy Kerr, then by Grant
    Likely, this patch adds support to clk_get to allow drivers to retrieve
    clock data from the device tree.
    
    Platforms scan for clocks in DT with of_clk_init and a match table, and
    the register a provider through of_clk_add_provider. The provider's
    clk_src_get function will be called when a device references the
    provider's OF node for a clock reference.
    
    v6 (Rob Herring):
        - Return error values instead of NULL to match clock framework
          expectations
    
    v5 (Rob Herring):
        - Move from drivers/of into common clock subsystem
        - Squashed "dt/clock: add a simple provider get function" and
          "dt/clock: add function to get parent clock name"
        - Rebase to 3.4-rc1
        - Drop CONFIG_OF_CLOCK and just use CONFIG_OF
        - Add missing EXPORT_SYMBOL to various functions
        - s/clock-output-name/clock-output-names/
        - Define that fixed-clock binding is a single output
    
    v4 (Rob Herring):
        - Rework for common clk subsystem
        - Add of_clk_get_parent_name function
    
    v3: - Clarified documentation
    
    v2: - fixed errant ';' causing compile error
        - Editorial fixes from Shawn Guo
        - merged in adding lookup to clkdev
        - changed property names to match established convention. After
          working with the binding a bit it really made more sense to follow the
          lead of 'reg', 'gpios' and 'interrupts' by making the input simply
          'clocks' & 'clock-names' instead of 'clock-input-*', and to only use
          clock-output* for the producer nodes. (Sorry Shawn, this will mean
          you need to change some code, but it should be trivial)
        - Add ability to inherit clocks from parent nodes by using an empty
          'clock-ranges' property.  Useful for busses.  I could use some feedback
          on the new property name, 'clock-ranges' doesn't feel right to me.
    Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
    Signed-off-by: default avatarRob Herring <rob.herring@calxeda.com>
    Reviewed-by: default avatarShawn Guo <shawn.guo@freescale.com>
    Cc: Sascha Hauer <kernel@pengutronix.de>
    Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
    766e6a4e
clkdev.c 8.15 KB