Lines Matching +full:clock +full:- +full:frequency
1 // SPDX-License-Identifier: BSD-3-Clause
9 * Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
28 /* Clock requests */
39 * struct ti_sci_msg_hdr - Generic Message Header for All messages and responses
60 * struct ti_sci_msg_resp_version - Response for a message
82 * struct ti_sci_msg_req_reboot - Reboot the SoC
93 * struct ti_sci_msg_req_set_device_state - Set the desired state of the device
100 * + MSG_FLAG_DEVICE_WAKE_ENABLED - Configure the device to be a wake source.
104 * + MSG_FLAG_DEVICE_RESET_ISO - Enable reset isolation for this device.
105 * + MSG_FLAG_DEVICE_EXCLUSIVE - Claim this device exclusively. When passed
115 /* Additional hdr->flags options */
130 * struct ti_sci_msg_req_get_device_state - Request to get device.
143 * struct ti_sci_msg_resp_get_device_state - Response to get device request.
150 * - Uses the MSG_DEVICE_SW_* macros
167 * struct ti_sci_msg_req_set_device_resets - Set the desired resets
186 * struct ti_sci_msg_req_set_clock_state - Request to setup a Clock state
188 * MSG_FLAG_CLOCK_ALLOW_SSC: Allow this clock to be modified
190 * MSG_FLAG_CLOCK_ALLOW_FREQ_CHANGE: Allow this clock's
191 * frequency to be changed while it is running so long as it
194 * is only applicable to clock inputs on the SoC pseudo-device.
196 * @clk_id: Clock identifier for the device for this request.
197 * Each device has it's own set of clock inputs. This indexes
198 * which clock input to modify.
199 * @request_state: Request the state for the clock to be set to.
200 * MSG_CLOCK_SW_STATE_UNREQ: The IP does not require this clock,
203 * automatically manage the state of this clock. If the device
204 * is enabled, then the clock is enabled. If the device is set
205 * to off or retention, then the clock is internally set as not
207 * MSG_CLOCK_SW_STATE_REQ: Configure the clock to be enabled,
219 /* Additional hdr->flags options */
233 * struct ti_sci_msg_req_get_clock_state - Request for clock state
236 * @clk_id: Clock identifier for the device for this request.
237 * Each device has it's own set of clock inputs. This indexes
238 * which clock input to get state of.
241 * of the clock
250 * struct ti_sci_msg_resp_get_clock_state - Response to get clock state
252 * @programmed_state: Any programmed state of the clock. This is one of
254 * @current_state: Current state of the clock. This is one of:
255 * MSG_CLOCK_HW_STATE_NOT_READY: Clock is not ready
256 * MSG_CLOCK_HW_STATE_READY: Clock is ready
269 * struct ti_sci_msg_req_set_clock_parent - Set the clock parent
272 * @clk_id: Clock identifier for the device for this request.
273 * Each device has it's own set of clock inputs. This indexes
274 * which clock input to modify.
275 * @parent_id: The new clock parent is selectable by an index via this
289 * struct ti_sci_msg_req_get_clock_parent - Get the clock parent
292 * @clk_id: Clock identifier for the device for this request.
293 * Each device has it's own set of clock inputs. This indexes
294 * which clock input to get the parent for.
305 * struct ti_sci_msg_resp_get_clock_parent - Response with clock parent
307 * @parent_id: The current clock parent
317 * struct ti_sci_msg_req_get_clock_num_parents - Request to get clock parents
320 * @clk_id: Clock identifier for the device for this request.
322 * This request provides information about how many clock parent options
323 * are available for a given clock to a device. This is typically used
336 * struct ti_sci_msg_resp_get_clock_num_parents - Response for get clk parents
338 * @num_parents: Number of clock parents
348 * struct ti_sci_msg_req_query_clock_freq - Request to query a frequency
351 * @min_freq_hz: The minimum allowable frequency in Hz. This is the minimum
352 * allowable programmed frequency and does not account for clock
354 * @target_freq_hz: The target clock frequency. A frequency will be found
355 * as close to this target frequency as possible.
356 * @max_freq_hz: The maximum allowable frequency in Hz. This is the maximum
357 * allowable programmed frequency and does not account for clock
359 * @clk_id: Clock identifier for the device for this request.
361 * NOTE: Normally clock frequency management is automatically done by TISCI
363 * requested frequency within provided range and responds with
379 * struct ti_sci_msg_resp_query_clock_freq - Response to a clock frequency query
381 * @freq_hz: Frequency that is the best match in Hz.
392 * struct ti_sci_msg_req_set_clock_freq - Request to setup a clock frequency
395 * @min_freq_hz: The minimum allowable frequency in Hz. This is the minimum
396 * allowable programmed frequency and does not account for clock
398 * @target_freq_hz: The target clock frequency. The clock will be programmed
399 * at a rate as close to this target frequency as possible.
400 * @max_freq_hz: The maximum allowable frequency in Hz. This is the maximum
401 * allowable programmed frequency and does not account for clock
403 * @clk_id: Clock identifier for the device for this request.
405 * NOTE: Normally clock frequency management is automatically done by TISCI
409 * This sets the desired frequency for a clock within an allowable
410 * range. This message will fail on an enabled clock unless
411 * MSG_FLAG_CLOCK_ALLOW_FREQ_CHANGE is set for the clock. Additionally,
412 * if other clocks have their frequency modified due to this message,
415 * Calling set frequency on a clock input to the SoC pseudo-device will
416 * inform the PMMC of that clock's frequency. Setting a frequency of
417 * zero will indicate the clock is disabled.
419 * Calling set frequency on clock outputs from the SoC pseudo-device will
420 * function similarly to setting the clock frequency on a device.
435 * struct ti_sci_msg_req_get_clock_freq - Request to get the clock frequency
438 * @clk_id: Clock identifier for the device for this request.
440 * NOTE: Normally clock frequency management is automatically done by TISCI
441 * entity. In some cases, clock frequencies are configured by host.
443 * Request type is TI_SCI_MSG_GET_CLOCK_FREQ, responded with clock frequency
444 * that the clock is currently at.
453 * struct ti_sci_msg_resp_get_clock_freq - Response of clock frequency request
455 * @freq_hz: Frequency that the clock is currently on, in Hz.