linux/drivers/clk/versatile/clk-icst.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2struct regmap;
   3
   4/**
   5 * enum icst_control_type - the type of ICST control register
   6 */
   7enum icst_control_type {
   8        ICST_VERSATILE, /* The standard type, all control bits available */
   9        ICST_INTEGRATOR_AP_CM, /* Only 8 bits of VDW available */
  10        ICST_INTEGRATOR_AP_SYS, /* Only 8 bits of VDW available */
  11        ICST_INTEGRATOR_AP_PCI, /* Odd bit pattern storage */
  12        ICST_INTEGRATOR_CP_CM_CORE, /* Only 8 bits of VDW and 3 bits of OD */
  13        ICST_INTEGRATOR_CP_CM_MEM, /* Only 8 bits of VDW and 3 bits of OD */
  14        ICST_INTEGRATOR_IM_PD1, /* Like the Versatile, all control bits */
  15};
  16
  17/**
  18 * struct clk_icst_desc - descriptor for the ICST VCO
  19 * @params: ICST parameters
  20 * @vco_offset: offset to the ICST VCO from the provided memory base
  21 * @lock_offset: offset to the ICST VCO locking register from the provided
  22 *      memory base
  23 */
  24struct clk_icst_desc {
  25        const struct icst_params *params;
  26        u32 vco_offset;
  27        u32 lock_offset;
  28};
  29
  30struct clk *icst_clk_register(struct device *dev,
  31                              const struct clk_icst_desc *desc,
  32                              const char *name,
  33                              const char *parent_name,
  34                              void __iomem *base);
  35
  36struct clk *icst_clk_setup(struct device *dev,
  37                           const struct clk_icst_desc *desc,
  38                           const char *name,
  39                           const char *parent_name,
  40                           struct regmap *map,
  41                           enum icst_control_type ctype);
  42