Lines Matching +full:mc +full:- +full:bus
1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (c) 2011-2017, The Linux Foundation
26 * BYTE 1: RSVD[7] MC[6:0]
79 /* Indicate that the frequency of the flow and the bus frequency are locked */
91 * struct slim_framer - Represents SLIMbus framer.
93 * responsible for clocking the bus.
94 * Manager is responsible for framer hand-over.
98 * frequency ('clock gear 10') at which the bus can operate.
111 * struct slim_msg_txn - Message to be sent by the controller.
116 * @mc: Header field. LSB is message code for type mt.
120 * (relevant for message-codes involving read operation)
130 u8 mc; member
140 #define DEFINE_SLIM_LDEST_TXN(name, mc, rl, la, msg) \ argument
141 struct slim_msg_txn name = { rl, 0, mc, SLIM_MSG_DEST_LOGICALADDR, 0,\
144 #define DEFINE_SLIM_BCAST_TXN(name, mc, rl, la, msg) \ argument
145 struct slim_msg_txn name = { rl, 0, mc, SLIM_MSG_DEST_BROADCAST, 0,\
148 #define DEFINE_SLIM_EDEST_TXN(name, mc, rl, la, msg) \ argument
149 struct slim_msg_txn name = { rl, 0, mc, SLIM_MSG_DEST_ENUMADDR, 0,\
156 * bus. If this succeeds, state changes to SLIM_CLK_PAUSED. If the
174 * use the bus concurrently when this mutex is held since elemental access
175 * messages can be sent on the bus when reconfiguration is in progress.
260 * struct slim_channel - SLIMbus channel, used for state machine
279 * struct slim_port - SLIMbus port
303 * @SLIM_PROTO_ASYNC_SMPLX: Asynchronous Protocol-Simplex
304 * @SLIM_PROTO_ASYNC_HALF_DUP: Asynchronous Protocol-Half-duplex
305 * @SLIM_PROTO_EXT_SMPLX: Extended Asynchronous Protocol-Simplex
306 * @SLIM_PROTO_EXT_HALF_DUP: Extended Asynchronous Protocol-Half-duplex
320 * struct slim_stream_runtime - SLIMbus stream runtime instance
347 * struct slim_controller - Controls every instance of SLIMbus
350 * @id: Board-specific number identifier for this controller/bus
354 * @clkgear: Current clock gear in which this bus is running
356 * @a_framer: Active framer which is clocking the bus managed by this controller
372 * @wakeup: This function pointer implements controller-specific procedure
373 * to wake it up from clock-pause. Framework will call this to bring
375 * @enable_stream: This function pointer implements controller-specific procedure
377 * @disable_stream: This function pointer implements controller-specific procedure
383 * enumeration (report-present, report-absent) of a device.
385 * channels on the bus, message-bandwidth requests made by SLIMbus devices.
387 * the bus at (in steps of 'clock-gear', 1 through 10, each clock gear
389 * Manager is also responsible for entering (and exiting) low-power-mode
392 * bus and a certain usecase warrants using certain framer to avoid keeping
393 * previous framer being powered-on.
396 * device'. Interface device is responsible for monitoring the bus and
397 * reporting information such as loss-of-synchronization, data
398 * slot-collision.
436 static inline bool slim_tid_txn(u8 mt, u8 mc) in slim_tid_txn() argument
439 (mc == SLIM_MSG_MC_REQUEST_INFORMATION || in slim_tid_txn()
440 mc == SLIM_MSG_MC_REQUEST_CLEAR_INFORMATION || in slim_tid_txn()
441 mc == SLIM_MSG_MC_REQUEST_VALUE || in slim_tid_txn()
442 mc == SLIM_MSG_MC_REQUEST_CHANGE_VALUE)); in slim_tid_txn()
445 static inline bool slim_ec_txn(u8 mt, u8 mc) in slim_ec_txn() argument
448 ((mc >= SLIM_MSG_MC_REQUEST_INFORMATION && in slim_ec_txn()
449 mc <= SLIM_MSG_MC_REPORT_INFORMATION) || in slim_ec_txn()
450 (mc >= SLIM_MSG_MC_REQUEST_VALUE && in slim_ec_txn()
451 mc <= SLIM_MSG_MC_CHANGE_VALUE))); in slim_ec_txn()