@@ -490,6 +490,13 @@ struct clk_hw *__clk_hw_register_gate(struct device *dev,
490
490
unsigned long flags ,
491
491
void __iomem * reg , u8 bit_idx ,
492
492
u8 clk_gate_flags , spinlock_t * lock );
493
+ struct clk_hw * __devm_clk_hw_register_gate (struct device * dev ,
494
+ struct device_node * np , const char * name ,
495
+ const char * parent_name , const struct clk_hw * parent_hw ,
496
+ const struct clk_parent_data * parent_data ,
497
+ unsigned long flags ,
498
+ void __iomem * reg , u8 bit_idx ,
499
+ u8 clk_gate_flags , spinlock_t * lock );
493
500
struct clk * clk_register_gate (struct device * dev , const char * name ,
494
501
const char * parent_name , unsigned long flags ,
495
502
void __iomem * reg , u8 bit_idx ,
@@ -544,6 +551,22 @@ struct clk *clk_register_gate(struct device *dev, const char *name,
544
551
__clk_hw_register_gate((dev), NULL, (name), NULL, NULL, (parent_data), \
545
552
(flags), (reg), (bit_idx), \
546
553
(clk_gate_flags), (lock))
554
+ /**
555
+ * devm_clk_hw_register_gate - register a gate clock with the clock framework
556
+ * @dev: device that is registering this clock
557
+ * @name: name of this clock
558
+ * @parent_name: name of this clock's parent
559
+ * @flags: framework-specific flags for this clock
560
+ * @reg: register address to control gating of this clock
561
+ * @bit_idx: which bit in the register controls gating of this clock
562
+ * @clk_gate_flags: gate-specific flags for this clock
563
+ * @lock: shared register lock for this clock
564
+ */
565
+ #define devm_clk_hw_register_gate (dev , name , parent_name , flags , reg , bit_idx ,\
566
+ clk_gate_flags , lock ) \
567
+ __devm_clk_hw_register_gate((dev), NULL, (name), (parent_name), NULL, \
568
+ NULL, (flags), (reg), (bit_idx), \
569
+ (clk_gate_flags), (lock))
547
570
void clk_unregister_gate (struct clk * clk );
548
571
void clk_hw_unregister_gate (struct clk_hw * hw );
549
572
int clk_gate_is_enabled (struct clk_hw * hw );
0 commit comments