Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.15.
 1/* SPDX-License-Identifier: GPL-2.0-or-later */
 2/*
 3 * PIIX4/SB800 SMBus Interfaces
 4 *
 5 * Copyright (c) 2024, Advanced Micro Devices, Inc.
 6 * All Rights Reserved.
 7 *
 8 * Authors: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
 9 *	    Sanket Goswami <Sanket.Goswami@amd.com>
10 */
11
12#ifndef I2C_PIIX4_H
13#define I2C_PIIX4_H
14
15#include <linux/types.h>
16
17/* PIIX4 SMBus address offsets */
18#define SMBHSTSTS	(0x00 + piix4_smba)
19#define SMBHSLVSTS	(0x01 + piix4_smba)
20#define SMBHSTCNT	(0x02 + piix4_smba)
21#define SMBHSTCMD	(0x03 + piix4_smba)
22#define SMBHSTADD	(0x04 + piix4_smba)
23#define SMBHSTDAT0	(0x05 + piix4_smba)
24#define SMBHSTDAT1	(0x06 + piix4_smba)
25#define SMBBLKDAT	(0x07 + piix4_smba)
26#define SMBSLVCNT	(0x08 + piix4_smba)
27#define SMBSHDWCMD	(0x09 + piix4_smba)
28#define SMBSLVEVT	(0x0A + piix4_smba)
29#define SMBSLVDAT	(0x0C + piix4_smba)
30
31/* PIIX4 constants */
32#define PIIX4_BLOCK_DATA	0x14
33
34struct sb800_mmio_cfg {
35	void __iomem *addr;
36	bool use_mmio;
37};
38
39int piix4_sb800_port_sel(u8 port, struct sb800_mmio_cfg *mmio_cfg);
40int piix4_transaction(struct i2c_adapter *piix4_adapter, unsigned short piix4_smba);
41int piix4_sb800_region_request(struct device *dev, struct sb800_mmio_cfg *mmio_cfg);
42void piix4_sb800_region_release(struct device *dev, struct sb800_mmio_cfg *mmio_cfg);
43
44#endif /* I2C_PIIX4_H */