/* SPDX-License-Identifier: GPL-2.0-only */ /* * linux/arch/arm/mach-omap1/clock.h * * Copyright (C) 2004 - 2005, 2009 Nokia corporation * Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com> * Based on clocks.h by Tony Lindgren, Gordon McNutt and RidgeRun, Inc
*/
/** * struct clkops - some clock function pointers * @enable: fn ptr that enables the current clock in hardware * @disable: fn ptr that enables the current clock in hardware * @allow_idle: fn ptr that enables autoidle for the current clock in hardware
*/ struct clkops { int (*enable)(struct omap1_clk *clk); void (*disable)(struct omap1_clk *clk);
};
/* * struct clk.flags possibilities * * XXX document the rest of the clock flags here
*/ #define ENABLE_REG_32BIT (1 << 0) /* Use 32-bit access */ #define CLOCK_IDLE_CONTROL (1 << 1) #define CLOCK_NO_IDLE_PARENT (1 << 2)
/** * struct omap1_clk - OMAP1 struct clk * @hw: struct clk_hw for common clock framework integration * @ops: struct clkops * for this clock * @rate: current clock rate * @enable_reg: register to write to enable the clock (see @enable_bit) * @recalc: fn ptr that returns the clock's current rate * @set_rate: fn ptr that can change the clock's current rate * @round_rate: fn ptr that can round the clock's current rate * @init: fn ptr to do clock-specific initialization * @enable_bit: bitshift to write to enable/disable the clock (see @enable_reg) * @fixed_div: when > 0, this clock's rate is its parent's rate / @fixed_div * @flags: see "struct clk.flags possibilities" above * @rate_offset: bitshift for rate selection bitfield (OMAP1 only)
*/ struct omap1_clk { struct clk_hw hw; conststruct clkops *ops; unsignedlong rate; void __iomem *enable_reg; unsignedlong (*recalc)(struct omap1_clk *clk, unsignedlong rate); int (*set_rate)(struct omap1_clk *clk, unsignedlong rate, unsignedlong p_rate); long (*round_rate)(struct omap1_clk *clk, unsignedlong rate, unsignedlong *p_rate); int (*init)(struct omap1_clk *clk);
u8 enable_bit;
u8 fixed_div;
u8 flags;
u8 rate_offset;
}; #define to_omap1_clk(_hw) container_of(_hw, struct omap1_clk, hw)
/* Provide a method for preventing idling some ARM IDLECT clocks */ struct arm_idlect1_clk { struct omap1_clk clk; unsignedlong no_idle_count;
__u8 idlect_shift;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.