Registers the t7xx device driver with the kernel. Setup all the core components: PCIe layer, Modem Host Cross Core Interface (MHCCIF), modem control operations, modem state machine, and build infrastructure. * PCIe layer code implements driver probe and removal. * MHCCIF provides interrupt channels to communicate events such as handshake, PM and port enumeration. * Modem control implements the entry point for modem init, reset and exit. * The modem status monitor is a state machine used by modem control to complete initialization and stop. It is used also to propagate exception events reported by other components. Signed-off-by: Haijun Liu <haijun.liu@mediatek.com> Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com> Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com> Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com> Reviewed-by: Loic Poulain <loic.poulain@linaro.org> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
38 lines
1.1 KiB
C
38 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only
|
|
*
|
|
* Copyright (c) 2021, MediaTek Inc.
|
|
* Copyright (c) 2021-2022, Intel Corporation.
|
|
*
|
|
* Authors:
|
|
* Haijun Liu <haijun.liu@mediatek.com>
|
|
* Sreehari Kancharla <sreehari.kancharla@intel.com>
|
|
*
|
|
* Contributors:
|
|
* Amir Hanania <amir.hanania@intel.com>
|
|
* Ricardo Martinez <ricardo.martinez@linux.intel.com>
|
|
*/
|
|
|
|
#ifndef __T7XX_MHCCIF_H__
|
|
#define __T7XX_MHCCIF_H__
|
|
|
|
#include <linux/types.h>
|
|
|
|
#include "t7xx_pci.h"
|
|
#include "t7xx_reg.h"
|
|
|
|
#define D2H_SW_INT_MASK (D2H_INT_EXCEPTION_INIT | \
|
|
D2H_INT_EXCEPTION_INIT_DONE | \
|
|
D2H_INT_EXCEPTION_CLEARQ_DONE | \
|
|
D2H_INT_EXCEPTION_ALLQ_RESET | \
|
|
D2H_INT_PORT_ENUM | \
|
|
D2H_INT_ASYNC_MD_HK)
|
|
|
|
void t7xx_mhccif_mask_set(struct t7xx_pci_dev *t7xx_dev, u32 val);
|
|
void t7xx_mhccif_mask_clr(struct t7xx_pci_dev *t7xx_dev, u32 val);
|
|
u32 t7xx_mhccif_mask_get(struct t7xx_pci_dev *t7xx_dev);
|
|
void t7xx_mhccif_init(struct t7xx_pci_dev *t7xx_dev);
|
|
u32 t7xx_mhccif_read_sw_int_sts(struct t7xx_pci_dev *t7xx_dev);
|
|
void t7xx_mhccif_h2d_swint_trigger(struct t7xx_pci_dev *t7xx_dev, u32 channel);
|
|
|
|
#endif /*__T7XX_MHCCIF_H__ */
|