1*db8a399cSKamlesh Gurudasani /* 2*db8a399cSKamlesh Gurudasani * Copyright (c) 2025-2026 Texas Instruments Incorporated - https://www.ti.com 3*db8a399cSKamlesh Gurudasani * 4*db8a399cSKamlesh Gurudasani * SPDX-License-Identifier: BSD-3-Clause 5*db8a399cSKamlesh Gurudasani */ 6*db8a399cSKamlesh Gurudasani 7*db8a399cSKamlesh Gurudasani /* 8*db8a399cSKamlesh Gurudasani * TI Fixed Clock Driver 9*db8a399cSKamlesh Gurudasani * 10*db8a399cSKamlesh Gurudasani * This driver implements fixed-frequency clocks that cannot be modified. 11*db8a399cSKamlesh Gurudasani * Fixed clocks are always enabled and return their configured frequency 12*db8a399cSKamlesh Gurudasani * from the clock range data. These are typically used for board-level 13*db8a399cSKamlesh Gurudasani * reference clocks and other unchangeable clock sources. 14*db8a399cSKamlesh Gurudasani */ 15*db8a399cSKamlesh Gurudasani 16*db8a399cSKamlesh Gurudasani #include <cdefs.h> 17*db8a399cSKamlesh Gurudasani #include <ti_clk_fixed.h> 18*db8a399cSKamlesh Gurudasani ti_clk_fixed_get_freq(struct ti_clk * clkp)19*db8a399cSKamlesh Gurudasanistatic uint32_t ti_clk_fixed_get_freq(struct ti_clk *clkp) 20*db8a399cSKamlesh Gurudasani { 21*db8a399cSKamlesh Gurudasani const struct ti_clk_range *range; 22*db8a399cSKamlesh Gurudasani 23*db8a399cSKamlesh Gurudasani range = ti_clk_get_range(clkp->range_idx); 24*db8a399cSKamlesh Gurudasani if (range == NULL) { 25*db8a399cSKamlesh Gurudasani return 0U; 26*db8a399cSKamlesh Gurudasani } 27*db8a399cSKamlesh Gurudasani 28*db8a399cSKamlesh Gurudasani return range->min_hz; 29*db8a399cSKamlesh Gurudasani } 30*db8a399cSKamlesh Gurudasani ti_clk_fixed_get_state(struct ti_clk * clkp __unused)31*db8a399cSKamlesh Gurudasanistatic uint32_t ti_clk_fixed_get_state(struct ti_clk *clkp __unused) 32*db8a399cSKamlesh Gurudasani { 33*db8a399cSKamlesh Gurudasani return TI_CLK_HW_STATE_ENABLED; 34*db8a399cSKamlesh Gurudasani } 35*db8a399cSKamlesh Gurudasani 36*db8a399cSKamlesh Gurudasani const struct ti_clk_drv ti_clk_drv_fixed = { 37*db8a399cSKamlesh Gurudasani .get_freq = ti_clk_fixed_get_freq, 38*db8a399cSKamlesh Gurudasani .get_state = ti_clk_fixed_get_state, 39*db8a399cSKamlesh Gurudasani }; 40