Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/firmware/arm/scmi.h
| Show All 25 Lines | |||||
| * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||||
| * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
| * SUCH DAMAGE. | * SUCH DAMAGE. | ||||
| */ | */ | ||||
| #ifndef _ARM64_SCMI_SCMI_H_ | #ifndef _ARM64_SCMI_SCMI_H_ | ||||
| #define _ARM64_SCMI_SCMI_H_ | #define _ARM64_SCMI_SCMI_H_ | ||||
| #include "scmi_if.h" | |||||
| #define SCMI_LOCK(sc) mtx_lock(&(sc)->mtx) | #define SCMI_LOCK(sc) mtx_lock(&(sc)->mtx) | ||||
| #define SCMI_UNLOCK(sc) mtx_unlock(&(sc)->mtx) | #define SCMI_UNLOCK(sc) mtx_unlock(&(sc)->mtx) | ||||
| #define SCMI_ASSERT_LOCKED(sc) mtx_assert(&(sc)->mtx, MA_OWNED) | #define SCMI_ASSERT_LOCKED(sc) mtx_assert(&(sc)->mtx, MA_OWNED) | ||||
| #define dprintf(fmt, ...) | #define dprintf(fmt, ...) | ||||
| struct scmi_softc { | |||||
| struct simplebus_softc simplebus_sc; | |||||
| device_t dev; | |||||
| device_t tx_shmem; | |||||
| struct mtx mtx; | |||||
| }; | |||||
| /* Shared Memory Transfer. */ | /* Shared Memory Transfer. */ | ||||
| struct scmi_smt_header { | struct scmi_smt_header { | ||||
| uint32_t reserved; | uint32_t reserved; | ||||
| uint32_t channel_status; | uint32_t channel_status; | ||||
| #define SCMI_SHMEM_CHAN_STAT_CHANNEL_ERROR (1 << 1) | #define SCMI_SHMEM_CHAN_STAT_CHANNEL_ERROR (1 << 1) | ||||
| #define SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE (1 << 0) | #define SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE (1 << 0) | ||||
| uint32_t reserved1[2]; | uint32_t reserved1[2]; | ||||
| uint32_t flags; | uint32_t flags; | ||||
| Show All 18 Lines | struct scmi_req { | ||||
| int protocol_id; | int protocol_id; | ||||
| int message_id; | int message_id; | ||||
| const void *in_buf; | const void *in_buf; | ||||
| uint32_t in_size; | uint32_t in_size; | ||||
| void *out_buf; | void *out_buf; | ||||
| uint32_t out_size; | uint32_t out_size; | ||||
| }; | }; | ||||
| DECLARE_CLASS(scmi_driver); | |||||
| int scmi_attach(device_t dev); | |||||
| int scmi_request(device_t dev, struct scmi_req *req); | int scmi_request(device_t dev, struct scmi_req *req); | ||||
| void scmi_shmem_read(device_t dev, bus_size_t offset, void *buf, | void scmi_shmem_read(device_t dev, bus_size_t offset, void *buf, | ||||
| bus_size_t len); | bus_size_t len); | ||||
| void scmi_shmem_write(device_t dev, bus_size_t offset, const void *buf, | void scmi_shmem_write(device_t dev, bus_size_t offset, const void *buf, | ||||
| bus_size_t len); | bus_size_t len); | ||||
| #endif /* !_ARM64_SCMI_SCMI_H_ */ | #endif /* !_ARM64_SCMI_SCMI_H_ */ | ||||