58 lines
1.5 KiB
C
58 lines
1.5 KiB
C
/*
|
|
* Copyright (c) 202X Amlogic, Inc. All rights reserved.
|
|
*
|
|
* This source code is subject to the terms and conditions defined in the
|
|
* file 'LICENSE' which is part of this source code package.
|
|
*
|
|
* Description:
|
|
*/
|
|
|
|
#ifndef __INTF_PCIE_H__
|
|
#define __INTF_PCIE_H__
|
|
|
|
#define AML_ADDR_CPU 0
|
|
#define AML_ADDR_AON 1
|
|
#define AML_ADDR_MAC 2
|
|
|
|
struct aml_plat_pci {
|
|
struct usb_device *usb_dev;
|
|
struct auc_hif_ops *hif_ops;
|
|
|
|
struct device *dev;
|
|
struct aml_hif_sdio_ops *hif_sdio_ops;
|
|
|
|
struct pci_dev *pci_dev;
|
|
|
|
bool enabled;
|
|
|
|
int (*enable)(void *aml_hw);
|
|
int (*disable)(void *aml_hw);
|
|
void (*deinit)(struct aml_plat_pci *aml_plat_pci);
|
|
u8* (*get_address)(struct aml_plat_pci *aml_plat_pci, int addr_name,
|
|
unsigned int offset);
|
|
void (*ack_irq)(struct aml_plat_pci *aml_plat_pci);
|
|
int (*get_config_reg)(struct aml_plat_pci *aml_plat_pci, const u32 **list);
|
|
|
|
u8 priv[0] __aligned(sizeof(void *));
|
|
};
|
|
|
|
#ifdef CONFIG_AML_BT_CHIP_W2
|
|
extern unsigned int g_aml_device_id;
|
|
extern struct aml_plat_pci *g_aml_plat_pci;
|
|
extern struct aml_pm_type g_wifi_pm;
|
|
extern uint32_t aml_pci_read_for_bt(int base, u32 offset);
|
|
extern void aml_pci_write_for_bt(u32 val, int base, u32 offset);
|
|
extern int aml_pci_insmod(void);
|
|
extern void aml_pci_rmmod(void);
|
|
extern unsigned char g_pci_driver_insmoded;
|
|
#endif
|
|
|
|
void amlbt_intf_pcie_register(void);
|
|
void amlbt_intf_pcie_unregister(void);
|
|
void amlbt_intf_pcie_write_word(unsigned int addr, unsigned int data);
|
|
unsigned int amlbt_intf_pcie_read_word(unsigned int addr);
|
|
|
|
|
|
#endif
|
|
|