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
|