1af873fceSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 23b01f87bSUlf Hansson /* 33b01f87bSUlf Hansson * Clocks for ux500 platforms 43b01f87bSUlf Hansson * 53b01f87bSUlf Hansson * Copyright (C) 2012 ST-Ericsson SA 63b01f87bSUlf Hansson * Author: Ulf Hansson <ulf.hansson@linaro.org> 73b01f87bSUlf Hansson */ 83b01f87bSUlf Hansson 93b01f87bSUlf Hansson #ifndef __UX500_CLK_H 103b01f87bSUlf Hansson #define __UX500_CLK_H 113b01f87bSUlf Hansson 125b82d03bSUlf Hansson #include <linux/device.h> 13c700835bSMike Turquette #include <linux/types.h> 143b01f87bSUlf Hansson 15a162ca91SStephen Boyd struct clk; 16a8173c59SLinus Walleij struct clk_hw; 17a162ca91SStephen Boyd 183b01f87bSUlf Hansson struct clk *clk_reg_prcc_pclk(const char *name, 193b01f87bSUlf Hansson const char *parent_name, 20c700835bSMike Turquette resource_size_t phy_base, 213b01f87bSUlf Hansson u32 cg_sel, 223b01f87bSUlf Hansson unsigned long flags); 233b01f87bSUlf Hansson 243b01f87bSUlf Hansson struct clk *clk_reg_prcc_kclk(const char *name, 253b01f87bSUlf Hansson const char *parent_name, 26c700835bSMike Turquette resource_size_t phy_base, 273b01f87bSUlf Hansson u32 cg_sel, 283b01f87bSUlf Hansson unsigned long flags); 293b01f87bSUlf Hansson 30a8173c59SLinus Walleij struct clk_hw *clk_reg_prcmu_scalable(const char *name, 313b01f87bSUlf Hansson const char *parent_name, 323b01f87bSUlf Hansson u8 cg_sel, 333b01f87bSUlf Hansson unsigned long rate, 343b01f87bSUlf Hansson unsigned long flags); 353b01f87bSUlf Hansson 36a8173c59SLinus Walleij struct clk_hw *clk_reg_prcmu_gate(const char *name, 373b01f87bSUlf Hansson const char *parent_name, 383b01f87bSUlf Hansson u8 cg_sel, 393b01f87bSUlf Hansson unsigned long flags); 403b01f87bSUlf Hansson 41a8173c59SLinus Walleij struct clk_hw *clk_reg_prcmu_scalable_rate(const char *name, 42a816d250SUlf Hansson const char *parent_name, 43a816d250SUlf Hansson u8 cg_sel, 44a816d250SUlf Hansson unsigned long rate, 45a816d250SUlf Hansson unsigned long flags); 46a816d250SUlf Hansson 47a8173c59SLinus Walleij struct clk_hw *clk_reg_prcmu_rate(const char *name, 4870b1fce2SUlf Hansson const char *parent_name, 4970b1fce2SUlf Hansson u8 cg_sel, 5070b1fce2SUlf Hansson unsigned long flags); 5170b1fce2SUlf Hansson 52a8173c59SLinus Walleij struct clk_hw *clk_reg_prcmu_opp_gate(const char *name, 533b01f87bSUlf Hansson const char *parent_name, 543b01f87bSUlf Hansson u8 cg_sel, 553b01f87bSUlf Hansson unsigned long flags); 563b01f87bSUlf Hansson 57a8173c59SLinus Walleij struct clk_hw *clk_reg_prcmu_opp_volt_scalable(const char *name, 58b0ea0fc7SUlf Hansson const char *parent_name, 59b0ea0fc7SUlf Hansson u8 cg_sel, 60b0ea0fc7SUlf Hansson unsigned long rate, 61b0ea0fc7SUlf Hansson unsigned long flags); 62b0ea0fc7SUlf Hansson 63*639d5661SLinus Walleij struct clk_hw *clk_reg_prcmu_clkout(const char *name, 64*639d5661SLinus Walleij const char * const *parent_names, 65*639d5661SLinus Walleij int num_parents, 66*639d5661SLinus Walleij u8 source, u8 divider); 67*639d5661SLinus Walleij 685b82d03bSUlf Hansson struct clk *clk_reg_sysctrl_gate(struct device *dev, 695b82d03bSUlf Hansson const char *name, 705b82d03bSUlf Hansson const char *parent_name, 715b82d03bSUlf Hansson u16 reg_sel, 725b82d03bSUlf Hansson u8 reg_mask, 735b82d03bSUlf Hansson u8 reg_bits, 745b82d03bSUlf Hansson unsigned long enable_delay_us, 755b82d03bSUlf Hansson unsigned long flags); 765b82d03bSUlf Hansson 775b82d03bSUlf Hansson struct clk *clk_reg_sysctrl_gate_fixed_rate(struct device *dev, 785b82d03bSUlf Hansson const char *name, 795b82d03bSUlf Hansson const char *parent_name, 805b82d03bSUlf Hansson u16 reg_sel, 815b82d03bSUlf Hansson u8 reg_mask, 825b82d03bSUlf Hansson u8 reg_bits, 835b82d03bSUlf Hansson unsigned long rate, 845b82d03bSUlf Hansson unsigned long enable_delay_us, 855b82d03bSUlf Hansson unsigned long flags); 865b82d03bSUlf Hansson 875b82d03bSUlf Hansson struct clk *clk_reg_sysctrl_set_parent(struct device *dev, 885b82d03bSUlf Hansson const char *name, 895b82d03bSUlf Hansson const char **parent_names, 905b82d03bSUlf Hansson u8 num_parents, 915b82d03bSUlf Hansson u16 *reg_sel, 925b82d03bSUlf Hansson u8 *reg_mask, 935b82d03bSUlf Hansson u8 *reg_bits, 945b82d03bSUlf Hansson unsigned long flags); 955b82d03bSUlf Hansson 963b01f87bSUlf Hansson #endif /* __UX500_CLK_H */ 97