summaryrefslogtreecommitdiff
path: root/include/linux/i3c/target.h
blob: 9e71124b53255bb955117d09c313bc26dee94c80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2022, Intel Corporation */

#ifndef I3C_TARGET_H
#define I3C_TARGET_H

#include <linux/device.h>
#include <linux/i3c/device.h>

struct i3c_master_controller;

struct i3c_target_ops {
	int (*bus_init)(struct i3c_master_controller *master);
	void (*bus_cleanup)(struct i3c_master_controller *master);
	int (*priv_xfers)(struct i3c_dev_desc *dev, struct i3c_priv_xfer *xfers, int nxfers);
	int (*generate_ibi)(struct i3c_dev_desc *dev, const u8 *data, int len);
};

int i3c_target_register(struct i3c_master_controller *master, struct device *parent,
			const struct i3c_target_ops *ops);
int i3c_target_unregister(struct i3c_master_controller *master);

#endif