162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci *
362306a36Sopenharmony_ci * Copyright (C) 2020-21 Intel Corporation.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef IOSM_IPC_UEVENT_H
762306a36Sopenharmony_ci#define IOSM_IPC_UEVENT_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/* Baseband event strings */
1062306a36Sopenharmony_ci#define UEVENT_MDM_NOT_READY "MDM_NOT_READY"
1162306a36Sopenharmony_ci#define UEVENT_ROM_READY "ROM_READY"
1262306a36Sopenharmony_ci#define UEVENT_MDM_READY "MDM_READY"
1362306a36Sopenharmony_ci#define UEVENT_CRASH "CRASH"
1462306a36Sopenharmony_ci#define UEVENT_CD_READY "CD_READY"
1562306a36Sopenharmony_ci#define UEVENT_CD_READY_LINK_DOWN "CD_READY_LINK_DOWN"
1662306a36Sopenharmony_ci#define UEVENT_MDM_TIMEOUT "MDM_TIMEOUT"
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci/* Maximum length of user events */
1962306a36Sopenharmony_ci#define MAX_UEVENT_LEN 64
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci/**
2262306a36Sopenharmony_ci * struct ipc_uevent_info - Uevent information structure.
2362306a36Sopenharmony_ci * @dev:	Pointer to device structure
2462306a36Sopenharmony_ci * @uevent:	Uevent information
2562306a36Sopenharmony_ci * @work:	Uevent work struct
2662306a36Sopenharmony_ci */
2762306a36Sopenharmony_cistruct ipc_uevent_info {
2862306a36Sopenharmony_ci	struct device *dev;
2962306a36Sopenharmony_ci	char uevent[MAX_UEVENT_LEN];
3062306a36Sopenharmony_ci	struct work_struct work;
3162306a36Sopenharmony_ci};
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci/**
3462306a36Sopenharmony_ci * ipc_uevent_send - Send modem event to user space.
3562306a36Sopenharmony_ci * @dev:	Generic device pointer
3662306a36Sopenharmony_ci * @uevent:	Uevent information
3762306a36Sopenharmony_ci *
3862306a36Sopenharmony_ci */
3962306a36Sopenharmony_civoid ipc_uevent_send(struct device *dev, char *uevent);
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci#endif
42