Lines Matching +full:clock +full:- +full:frequency
1 /* SPDX-License-Identifier: BSD-3-Clause */
9 * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
34 /* Clock requests */
54 * struct ti_sci_msg_hdr - Generic Message Header for All messages and responses
75 * struct ti_sci_secure_msg_hdr - Header that prefixes all TISCI messages sent
86 * struct ti_sci_msg_resp_version - Response for a message
108 * struct ti_sci_msg_req_reboot - Reboot the SoC
119 * struct ti_sci_msg_board_config - Board configuration message
137 * struct ti_sci_msg_req_set_device_state - Set the desired state of the device
144 * + MSG_FLAG_DEVICE_WAKE_ENABLED - Configure the device to be a wake source.
148 * + MSG_FLAG_DEVICE_RESET_ISO - Enable reset isolation for this device.
149 * + MSG_FLAG_DEVICE_EXCLUSIVE - Claim this device exclusively. When passed
159 /* Additional hdr->flags options */
174 * struct ti_sci_msg_req_get_device_state - Request to get device.
187 * struct ti_sci_msg_resp_get_device_state - Response to get device request.
194 * - Uses the MSG_DEVICE_SW_* macros
211 * struct ti_sci_msg_req_set_device_resets - Set the desired resets
230 * struct ti_sci_msg_req_set_clock_state - Request to setup a Clock state
232 * MSG_FLAG_CLOCK_ALLOW_SSC: Allow this clock to be modified
234 * MSG_FLAG_CLOCK_ALLOW_FREQ_CHANGE: Allow this clock's
235 * frequency to be changed while it is running so long as it
238 * is only applicable to clock inputs on the SoC pseudo-device.
240 * @clk_id: Clock identifier for the device for this request.
241 * Each device has it's own set of clock inputs. This indexes
242 * which clock input to modify.
243 * @request_state: Request the state for the clock to be set to.
244 * MSG_CLOCK_SW_STATE_UNREQ: The IP does not require this clock,
247 * automatically manage the state of this clock. If the device
248 * is enabled, then the clock is enabled. If the device is set
249 * to off or retention, then the clock is internally set as not
251 * MSG_CLOCK_SW_STATE_REQ: Configure the clock to be enabled,
263 /* Additional hdr->flags options */
277 * struct ti_sci_msg_req_get_clock_state - Request for clock state
280 * @clk_id: Clock identifier for the device for this request.
281 * Each device has it's own set of clock inputs. This indexes
282 * which clock input to get state of.
285 * of the clock
294 * struct ti_sci_msg_resp_get_clock_state - Response to get clock state
296 * @programmed_state: Any programmed state of the clock. This is one of
298 * @current_state: Current state of the clock. This is one of:
299 * MSG_CLOCK_HW_STATE_NOT_READY: Clock is not ready
300 * MSG_CLOCK_HW_STATE_READY: Clock is ready
313 * struct ti_sci_msg_req_set_clock_parent - Set the clock parent
316 * @clk_id: Clock identifier for the device for this request.
317 * Each device has it's own set of clock inputs. This indexes
318 * which clock input to modify.
319 * @parent_id: The new clock parent is selectable by an index via this
333 * struct ti_sci_msg_req_get_clock_parent - Get the clock parent
336 * @clk_id: Clock identifier for the device for this request.
337 * Each device has it's own set of clock inputs. This indexes
338 * which clock input to get the parent for.
349 * struct ti_sci_msg_resp_get_clock_parent - Response with clock parent
351 * @parent_id: The current clock parent
361 * struct ti_sci_msg_req_get_clock_num_parents - Request to get clock parents
364 * @clk_id: Clock identifier for the device for this request.
366 * This request provides information about how many clock parent options
367 * are available for a given clock to a device. This is typically used
380 * struct ti_sci_msg_resp_get_clock_num_parents - Response for get clk parents
382 * @num_parents: Number of clock parents
392 * struct ti_sci_msg_req_query_clock_freq - Request to query a 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. A frequency will be found
399 * 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
407 * requested frequency within provided range and responds with
423 * struct ti_sci_msg_resp_query_clock_freq - Response to a clock frequency query
425 * @freq_hz: Frequency that is the best match in Hz.
436 * struct ti_sci_msg_req_set_clock_freq - Request to setup a clock frequency
439 * @min_freq_hz: The minimum allowable frequency in Hz. This is the minimum
440 * allowable programmed frequency and does not account for clock
442 * @target_freq_hz: The target clock frequency. The clock will be programmed
443 * at a rate as close to this target frequency as possible.
444 * @max_freq_hz: The maximum allowable frequency in Hz. This is the maximum
445 * allowable programmed frequency and does not account for clock
447 * @clk_id: Clock identifier for the device for this request.
449 * NOTE: Normally clock frequency management is automatically done by TISCI
453 * This sets the desired frequency for a clock within an allowable
454 * range. This message will fail on an enabled clock unless
455 * MSG_FLAG_CLOCK_ALLOW_FREQ_CHANGE is set for the clock. Additionally,
456 * if other clocks have their frequency modified due to this message,
459 * Calling set frequency on a clock input to the SoC pseudo-device will
460 * inform the PMMC of that clock's frequency. Setting a frequency of
461 * zero will indicate the clock is disabled.
463 * Calling set frequency on clock outputs from the SoC pseudo-device will
464 * function similarly to setting the clock frequency on a device.
479 * struct ti_sci_msg_req_get_clock_freq - Request to get the clock frequency
482 * @clk_id: Clock identifier for the device for this request.
484 * NOTE: Normally clock frequency management is automatically done by TISCI
485 * entity. In some cases, clock frequencies are configured by host.
487 * Request type is TI_SCI_MSG_GET_CLOCK_FREQ, responded with clock frequency
488 * that the clock is currently at.
497 * struct ti_sci_msg_resp_get_clock_freq - Response of clock frequency request
499 * @freq_hz: Frequency that the clock is currently on, in Hz.
513 * struct ti_sci_msg_req_proc_request - Request a processor
527 * struct ti_sci_msg_req_proc_release - Release a processor
541 * struct ti_sci_msg_req_proc_handover - Handover a processor to a host
574 * struct ti_sci_msg_req_set_proc_boot_config - Set Processor boot configuration
600 * struct ti_sci_msg_req_set_proc_boot_ctrl - Set Processor boot control flags
619 * struct ti_sci_msg_req_proc_auth_start_image - Authenticate and start image
636 * struct ti_sci_msg_req_get_proc_boot_status - Get processor boot status
659 * struct ti_sci_msg_resp_get_proc_boot_status - Processor boot status response