Lines Matching +full:slave +full:- +full:mode

1 /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
2 /* Copyright(c) 2015-17 Intel Corporation. */
71 * enum sdw_slave_status - Slave status
72 * @SDW_SLAVE_UNATTACHED: Slave is not attached with the bus.
73 * @SDW_SLAVE_ATTACHED: Slave is attached with bus.
74 * @SDW_SLAVE_ALERT: Some alert condition on the Slave
89 * @SDW_CLK_PRE_DEPREPARE: pre clock stop de-prepare
90 * @SDW_CLK_POST_DEPREPARE: post clock stop de-prepare
100 * enum sdw_command_response - Command response as defined by SDW spec
128 /* block packing mode enum */
159 * enum sdw_port_data_mode: Data Port mode
161 * @SDW_PORT_DATA_MODE_NORMAL: Normal data mode where audio data is received
163 * @SDW_PORT_DATA_MODE_PRBS: Test mode which uses a PRBS generator to produce
165 * @SDW_PORT_DATA_MODE_STATIC_0: Simple test mode which uses static value of
167 * @SDW_PORT_DATA_MODE_STATIC_1: Simple test mode which uses static value of
186 * enum sdw_p15_behave - Slave Port 15 behaviour when the Master attempts a
197 * enum sdw_dpn_type - Data port types
212 * enum sdw_clk_stop_mode - Clock Stop modes
213 * @SDW_CLK_STOP_MODE0: Slave can continue operation seamlessly on clock
215 * @SDW_CLK_STOP_MODE1: Slave may have entered a deeper power-saving mode,
224 * struct sdw_dp0_prop - DP0 properties
231 * @BRA_flow_controlled: Slave implementation results in an OK_NotReady
235 * implementation-defined interrupts
252 * struct sdw_dpn_audio_mode - Audio mode properties for DPn
265 * changed to a frequency supported by this mode or compatible modes
268 * Audio Mode to other Audio Modes
284 * struct sdw_dpn_prop - Data Port DPn properties
297 * @ch_prep_timeout: Port-specific timeout value, in milliseconds
299 * implementation-defined interrupts
306 * @modes: SDW mode supported
309 * @block_pack_mode: Type of block port mode supported
340 * struct sdw_slave_prop - SoundWire Slave properties
342 * @wake_capable: Wake-up events are supported
343 * @test_mode_capable: If test mode is supported
344 * @clk_stop_mode1: Clock-Stop Mode 1 is supported
345 * @simple_clk_stop_capable: Simple clock mode is supported
346 * @clk_stop_timeout: Worst-case latency of the Clock Stop Prepare State
348 * @ch_prep_timeout: Worst-case latency of the Channel Prepare State Machine
350 * @reset_behave: Slave keeps the status of the SlaveStopClockPrepare
351 * state machine (P=1 SCSP_SM) after exit from clock-stop mode1
352 * @high_PHY_capable: Slave is HighPHY capable
353 * @paging_support: Slave implements paging registers SCP_AddrPage1 and
355 * @bank_delay_support: Slave implements bank delay/bridge support registers
357 * @p15_behave: Slave behavior when the Master attempts a read to the Port15
359 * @lane_control_support: Slave supports lane control
360 * @master_count: Number of Masters present on this Slave
368 * @is_sdca: the Slave supports the SDCA specification
398 * struct sdw_master_prop - Master properties
400 * @clk_stop_modes: Bitmap, bit N set when clock-stop-modeN supported
413 * @hw_disabled: if true, the Master is not functional, typically due to pin-mux
445 * Some Slave devices have known issues with incorrect parity errors
447 * parity errors can be reported by Slave devices, possibly due to electrical
455 int sdw_slave_read_prop(struct sdw_slave *slave);
458 * SDW Slave Structures and APIs
464 * struct sdw_slave_id - Slave ID
482 * Helper macros to extract the MIPI-defined IDs
511 * struct sdw_slave_intr_status - Slave interrupt status
512 * @sdca_cascade: set if the Slave device reports an SDCA interrupt
523 * sdw_reg_bank - SoundWire register banks
548 * struct sdw_prepare_ch: Prepare/De-prepare Data Port channel
552 * @prepare: Prepare (true) /de-prepare (false) channel
553 * @bank: Register bank, which bank Slave/Master driver should program for
589 * @s_data_mode: NORMAL, STATIC or PRBS mode for all Slave ports
590 * @m_data_mode: NORMAL, STATIC or PRBS mode for all Master ports. The value
607 * struct sdw_slave_ops: Slave driver callback ops
609 * @read_prop: Read Slave properties
612 * @update_status: Update Slave status
613 * @bus_config: Update the bus config for Slave
615 * @clk_stop: handle imp-def sequences before and after prepare and de-prepare
619 int (*interrupt_callback)(struct sdw_slave *slave,
621 int (*update_status)(struct sdw_slave *slave,
623 int (*bus_config)(struct sdw_slave *slave,
625 int (*port_prep)(struct sdw_slave *slave,
628 int (*clk_stop)(struct sdw_slave *slave,
629 enum sdw_clk_stop_mode mode,
635 * struct sdw_slave - SoundWire Slave
638 * @status: Status reported by the Slave
640 * @prop: Slave properties
641 * @debugfs: Slave debugfs
643 * @port_ready: Port ready completion flag for each Slave port
644 * @m_port_map: static Master port map for each Slave port
646 * @dev_num_sticky: one-time static Device Number assigned by Bus
650 * Slave device
653 * @unattach_request: mask field to keep track why the Slave re-attached and
654 * was re-initialized. This is useful to deal with potential race conditions
656 * when the Master triggered a reset the Slave is properly enumerated and
659 * for a Slave happens for the first time after enumeration
690 * struct sdw_master_device - SoundWire 'Master Device' representation
736 * @flow_mode: Port Data flow mode
737 * @data_mode: Test modes or normal mode
821 * struct sdw_defer - SDW deffered message
833 * struct sdw_master_ops - Master driver ops
865 * struct sdw_bus - SoundWire bus
866 * @dev: Shortcut to &bus->md->dev to avoid changing the entire code.
869 * @id: bus system-wide unique id
871 * @assigned: Bitmap for Slave device numbers.
891 * hardware-based synchronization is required. This value is only
892 * meaningful if multi_link is set. If set to 1, hardware-based
896 * used to allocate system-unique device numbers. This value needs to be
932 * sdw_port_config: Master or Slave Port configuration
943 * sdw_stream_config: Master or Slave stream configuration
967 * @SDW_STREAM_DEPREPARED: Stream de-prepared
1024 int sdw_stream_add_slave(struct sdw_slave *slave,
1031 int sdw_stream_remove_slave(struct sdw_slave *slave,
1045 int sdw_read(struct sdw_slave *slave, u32 addr);
1046 int sdw_write(struct sdw_slave *slave, u32 addr, u8 value);
1047 int sdw_write_no_pm(struct sdw_slave *slave, u32 addr, u8 value);
1048 int sdw_read_no_pm(struct sdw_slave *slave, u32 addr);
1049 int sdw_nread(struct sdw_slave *slave, u32 addr, size_t count, u8 *val);
1050 int sdw_nwrite(struct sdw_slave *slave, u32 addr, size_t count, const u8 *val);
1051 int sdw_update(struct sdw_slave *slave, u32 addr, u8 mask, u8 val);
1052 int sdw_update_no_pm(struct sdw_slave *slave, u32 addr, u8 mask, u8 val);
1054 int sdw_compare_devid(struct sdw_slave *slave, struct sdw_slave_id id);