mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
clk: implement clk_set_defaults()
Linux uses the properties 'assigned-clocks', 'assigned-clock-parents' and 'assigned-clock-rates' to configure the clock subsystem for use with various peripheral nodes. This implements clk_set_defaults() and hooks it up with the general device probibin in drivers/core/device.c: when a new device is probed, clk_set_defaults() will be called for it and will process the properties mentioned above. Note that this functionality is designed to fail gracefully (i.e. if a clock-driver does not implement set_parent(), we simply accept this and ignore the error) as not to break existing board-support. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Tested-by: David Wu <david.wu@rock-chips.com> Series-changes: 2 - Fixed David's email address. Series-version: 2 Cover-letter: clk: support assigned-clock, assigned-clock-parents, assigned-clock-rates For various peripherals on Rockchip SoCs (e.g. for the Ethernet GMAC), the parent-clock needs to be set via the DTS. This adds the required plumbing and implements the GMAC case for the RK3399. END
This commit is contained in:
@@ -133,6 +133,23 @@ static inline int clk_release_all(struct clk *clk, int count)
|
||||
|
||||
#endif
|
||||
|
||||
#if (CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)) && \
|
||||
CONFIG_IS_ENABLED(CLK)
|
||||
/**
|
||||
* clk_set_defaults - Process 'assigned-{clocks/clock-parents/clock-rates}'
|
||||
* properties to configure clocks
|
||||
*
|
||||
* @dev: A device to process (the ofnode associated with this device
|
||||
* will be processed).
|
||||
*/
|
||||
int clk_set_defaults(struct udevice *dev);
|
||||
#else
|
||||
static inline int clk_set_defaults(struct udevice *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* clk_request - Request a clock by provider-specific ID.
|
||||
*
|
||||
|
Reference in New Issue
Block a user