RT-Thread RTOS
An open source embedded real-time operating system
Loading...
Searching...
No Matches
+ Collaboration diagram for clk:

Data Structures

struct  rt_clk_node
 
struct  rt_clk_fixed_rate
 
struct  rt_clk
 
struct  rt_clk_array
 
struct  rt_clk_notifier
 

Functions

rt_err_t rt_clk_register (struct rt_clk_node *clk_np, struct rt_clk_node *parent_np)
 
rt_err_t rt_clk_unregister (struct rt_clk_node *clk_np)
 
rt_err_t rt_clk_notifier_register (struct rt_clk *clk, struct rt_clk_notifier *notifier)
 
rt_err_t rt_clk_notifier_unregister (struct rt_clk *clk, struct rt_clk_notifier *notifier)
 
rt_err_t rt_clk_set_parent (struct rt_clk *clk, struct rt_clk *clk_parent)
 
rt_err_t rt_clk_prepare (struct rt_clk *clk)
 
rt_err_t rt_clk_enable (struct rt_clk *clk)
 
void rt_clk_disable (struct rt_clk *clk)
 
rt_err_t rt_clk_prepare_enable (struct rt_clk *clk)
 
void rt_clk_disable_unprepare (struct rt_clk *clk)
 
rt_err_t rt_clk_array_prepare (struct rt_clk_array *clk_arr)
 
rt_err_t rt_clk_array_enable (struct rt_clk_array *clk_arr)
 
void rt_clk_array_disable (struct rt_clk_array *clk_arr)
 
rt_err_t rt_clk_array_prepare_enable (struct rt_clk_array *clk_arr)
 
void rt_clk_array_disable_unprepare (struct rt_clk_array *clk_arr)
 
rt_err_t rt_clk_set_rate_range (struct rt_clk *clk, rt_ubase_t min, rt_ubase_t max)
 
rt_err_t rt_clk_set_min_rate (struct rt_clk *clk, rt_ubase_t rate)
 
rt_err_t rt_clk_set_max_rate (struct rt_clk *clk, rt_ubase_t rate)
 
rt_err_t rt_clk_set_rate (struct rt_clk *clk, rt_ubase_t rate)
 
rt_ubase_t rt_clk_get_rate (struct rt_clk *clk)
 
rt_err_t rt_clk_set_phase (struct rt_clk *clk, int degrees)
 
rt_base_t rt_clk_get_phase (struct rt_clk *clk)
 
rt_base_t rt_clk_round_rate (struct rt_clk *clk, rt_ubase_t rate)
 
struct rt_clkrt_clk_get_parent (struct rt_clk *clk)
 
struct rt_clk_arrayrt_clk_get_array (struct rt_device *dev)
 
struct rt_clkrt_clk_get_by_index (struct rt_device *dev, int index)
 
struct rt_clkrt_clk_get_by_name (struct rt_device *dev, const char *name)
 
void rt_clk_array_put (struct rt_clk_array *clk_arr)
 
void rt_clk_put (struct rt_clk *clk)
 
rt_inline struct rt_clk_nodeclk_get (struct rt_clk_node *clk_np)
 
rt_inline void clk_put (struct rt_clk_node *clk_np)
 

Detailed Description

clk driver api

Function Documentation

◆ rt_clk_register()

rt_err_t rt_clk_register ( struct rt_clk_node * clk_np,
struct rt_clk_node * parent_np )

Register clock node into clock list.

Parameters
clk_nppoint to child node that will be registered node.
parent_nppoint to parent rt_clk. If it is RT_NULL, clock node will be linked to init node.
Return values
RT_EOK
-RT_ENOMEM

◆ rt_clk_unregister()

rt_err_t rt_clk_unregister ( struct rt_clk_node * clk_np)

Unregister clock node from clock list.

Parameters
clk_nppoint to child node that will be Unregistered node.
Return values
RT_EOK
-RT_EBUSY
-RT_EINVAL

◆ rt_clk_notifier_register()

rt_err_t rt_clk_notifier_register ( struct rt_clk * clk,
struct rt_clk_notifier * notifier )

Register clock notifier into notifier list.

Parameters
clkpoint to clock
notifierpoint to notifier for register
Return values
RT_EOK
-RT_EINVAL

◆ rt_clk_notifier_unregister()

rt_err_t rt_clk_notifier_unregister ( struct rt_clk * clk,
struct rt_clk_notifier * notifier )

Unregister clock notifier into notifier list.

Parameters
clkpoint to clock
notifierpoint to notifier for unregister
Return values
RT_EOK
-RT_EINVAL

◆ rt_clk_set_parent()

rt_err_t rt_clk_set_parent ( struct rt_clk * clk,
struct rt_clk * clk_parent )

Set clock parent object.

Parameters
clkpoint to clock
clk_parentpoint to parent clock
Returns
rt_err_t RT_EOK on set clock parent sucessfully, and other value is failed.

◆ rt_clk_prepare()

rt_err_t rt_clk_prepare ( struct rt_clk * clk)

Prepare clock.

Parameters
clk
Returns
rt_err_t RT_EOK on prepare clock sucessfully, and other value is failed.

◆ rt_clk_enable()

rt_err_t rt_clk_enable ( struct rt_clk * clk)

Enable clock.

Parameters
clkpoint to clock
Returns
rt_err_t RT_EOK on enable clock sucessfully, and other value is failed.

◆ rt_clk_disable()

void rt_clk_disable ( struct rt_clk * clk)

Disable clock.

Parameters
clkpoint to clock

◆ rt_clk_prepare_enable()

rt_err_t rt_clk_prepare_enable ( struct rt_clk * clk)

Prepare and enable clock.

Parameters
clkpoint to clock
Returns
rt_err_t RT_EOK on prepare and enable clock sucessfully, and other value is failed.

◆ rt_clk_disable_unprepare()

void rt_clk_disable_unprepare ( struct rt_clk * clk)

Disable and unprepare clock.

Parameters
clkpoint to clock

◆ rt_clk_array_prepare()

rt_err_t rt_clk_array_prepare ( struct rt_clk_array * clk_arr)

Prepare clock array for mutipule out clock.

Parameters
clk_arrpoint to clock array
Returns
rt_err_t RT_EOK on prepare clock array sucessfully, and other value is failed.

◆ rt_clk_array_enable()

rt_err_t rt_clk_array_enable ( struct rt_clk_array * clk_arr)

Enable clock array for mutipule out clock.

Parameters
clk_arrpoint to clock array
Returns
rt_err_t RT_EOK on Enable clock array sucessfully, and other value is failed.

◆ rt_clk_array_disable()

void rt_clk_array_disable ( struct rt_clk_array * clk_arr)

Enable clock array for mutipule out clock.

Parameters
clk_arrpoint to clock array

◆ rt_clk_array_prepare_enable()

rt_err_t rt_clk_array_prepare_enable ( struct rt_clk_array * clk_arr)

Prepare and enable clock array.

Parameters
clk_arrpoint to clock array
Returns
rt_err_t RT_EOK on prepare and enable clock array sucessfully, and other value is failed.

◆ rt_clk_array_disable_unprepare()

void rt_clk_array_disable_unprepare ( struct rt_clk_array * clk_arr)

Disable and unprepare clock array.

Parameters
clk_arrpoint to clock array

◆ rt_clk_set_rate_range()

rt_err_t rt_clk_set_rate_range ( struct rt_clk * clk,
rt_ubase_t min,
rt_ubase_t max )

Set clock rate range.

Parameters
clkpoint to clock
minminimum clock rate
maxminimum clock rate
Returns
rt_err_t RT_EOK on set clock rate range sucessfully, and other value is failed.

◆ rt_clk_set_min_rate()

rt_err_t rt_clk_set_min_rate ( struct rt_clk * clk,
rt_ubase_t rate )

Set minimum clock rate.

Parameters
clkpoint to clock
ratemiminum clock rate
Returns
rt_err_t RT_EOK on set minimum clock rate sucessfully, and other value is failed.

◆ rt_clk_set_max_rate()

rt_err_t rt_clk_set_max_rate ( struct rt_clk * clk,
rt_ubase_t rate )

Set maximum clock rate.

Parameters
clkpoint to clock
ratemaximum clock rate
Returns
rt_err_t RT_EOK on set maximum clock rate sucessfully, and other value is failed.

◆ rt_clk_set_rate()

rt_err_t rt_clk_set_rate ( struct rt_clk * clk,
rt_ubase_t rate )

Set clock rate.

Parameters
clkpoint to clock
ratetarget rate
Returns
rt_err_t RT_EOK on set clock rate sucessfully, and other value is failed.

◆ rt_clk_get_rate()

rt_ubase_t rt_clk_get_rate ( struct rt_clk * clk)

Get clock rate.

Parameters
clkpoint to clock
Returns
rt_ubase_t clock rate or error code

◆ rt_clk_set_phase()

rt_err_t rt_clk_set_phase ( struct rt_clk * clk,
int degrees )

Set clock phase.

Parameters
clkpoint to clock
degreestarget phase and the unit of phase is degree
Returns
rt_err_t RT_EOK on set clock phase sucessfully, and other value is failed.

◆ rt_clk_get_phase()

rt_base_t rt_clk_get_phase ( struct rt_clk * clk)

Get clock phase.

Parameters
clkpoint to clock
Returns
rt_base_t clock phase or error code

◆ rt_clk_round_rate()

rt_base_t rt_clk_round_rate ( struct rt_clk * clk,
rt_ubase_t rate )

Check if clock rate is in the minimum to maximun and get it.

Parameters
clkpoint to clock
raterate will be checked
Returns
rt_base_t get the correct rate
Note
if parameter rate less than the minimum or more than maximum, the retrun rate will be set to minimum ormaximum value

◆ rt_clk_get_parent()

struct rt_clk * rt_clk_get_parent ( struct rt_clk * clk)

Get parent clock pointer.

Parameters
clkchild clock
Returns
struct rt_clk* parent clock object pointer will be return, unless child clock node havn't parent node instead return RT_NULL

◆ rt_clk_get_array()

struct rt_clk_array * rt_clk_get_array ( struct rt_device * dev)

Get clock array pointer from ofw device node.

Parameters
devpoint to dev
Returns
struct rt_clk_array* if use ofw and under normal circumstance, it will return clock array pointer and other value is RT_NULL

◆ rt_clk_get_by_index()

struct rt_clk * rt_clk_get_by_index ( struct rt_device * dev,
int index )

Get clock pointer from ofw device node by index.

Parameters
devpoint to dev
indexindex of clock object
Returns
struct rt_clk* if use ofw and under normal circumstance, it will return clock pointer and other value is RT_NULL

◆ rt_clk_get_by_name()

struct rt_clk * rt_clk_get_by_name ( struct rt_device * dev,
const char * name )

Get clock pointer from ofw device node by name.

Parameters
devpoint to dev
namename of clock object
Returns
struct rt_clk* if use ofw and under normal circumstance, it will return clock pointer and other value is RT_NULL

◆ rt_clk_array_put()

void rt_clk_array_put ( struct rt_clk_array * clk_arr)

Put reference count of all colock in the clock array.

Parameters
clk_arrpoint to clock array

◆ rt_clk_put()

void rt_clk_put ( struct rt_clk * clk)

Put reference count of clock.

Parameters
clkpoint to clock

◆ clk_get()

rt_inline struct rt_clk_node * clk_get ( struct rt_clk_node * clk_np)

Increase reference count for clock node.

Parameters
clk_nppoint to clock node
Returns
struct rt_clk_node * point to clock node whose reference count has increased

◆ clk_put()

rt_inline void clk_put ( struct rt_clk_node * clk_np)

Decrease reference count for clock node.

Parameters
clk_nppoint to clock node