1 /* 2 * Copyright (c) 2025-2026 Texas Instruments Incorporated - https://www.ti.com 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 /* 8 * TI Device Clock API Header 9 * 10 * This header defines the data structures and interfaces for clocks that 11 * are derived from device power states. It allows the clock framework to 12 * track device power domains as clock sources, providing frequency and 13 * state information based on device power state. 14 */ 15 16 #ifndef TI_CLK_DEV_H 17 #define TI_CLK_DEV_H 18 19 #include <ti_clk.h> 20 #include <ti_device.h> 21 #include <ti_pm_types.h> 22 23 /* 24 * Clock sourced from a device IP block 25 * 26 * Represents a SoC clock that derives its frequency and state from an IP 27 * block's power domain. Allows the clock framework to query device power 28 * states and clock outputs as clock sources. 29 */ 30 struct ti_clk_data_from_dev { 31 /* Base clock driver data */ 32 struct ti_clk_drv_data data; 33 /* Device index that provides this clock */ 34 ti_dev_idx_t dev; 35 /* Clock index within the source device */ 36 ti_dev_clk_idx_t clk_idx; 37 }; 38 39 /* 40 * Device-sourced clock driver 41 * 42 * Implements clock operations for clocks derived from device IP blocks. 43 * Queries device power state and output clocks to provide frequency and 44 * enable information to the clock framework. 45 */ 46 extern const struct ti_clk_drv ti_clk_drv_from_device; 47 48 #endif /* TI_CLK_DEV_H */ 49