]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blob - drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.h
drm/nouveau/fb: transition nvkm_ram away from being based on nvkm_object
[mirror_ubuntu-focal-kernel.git] / drivers / gpu / drm / nouveau / nvkm / subdev / i2c / nv50.h
1 #ifndef __NV50_I2C_H__
2 #define __NV50_I2C_H__
3 #include "priv.h"
4
5 struct nv50_i2c_port {
6 struct nvkm_i2c_port base;
7 u32 addr;
8 u32 state;
9 };
10
11 extern const u32 nv50_i2c_addr[];
12 extern const int nv50_i2c_addr_nr;
13 int nv50_i2c_port_init(struct nvkm_object *);
14 int nv50_i2c_sense_scl(struct nvkm_i2c_port *);
15 int nv50_i2c_sense_sda(struct nvkm_i2c_port *);
16 void nv50_i2c_drive_scl(struct nvkm_i2c_port *, int state);
17 void nv50_i2c_drive_sda(struct nvkm_i2c_port *, int state);
18
19 int g94_aux_port_ctor(struct nvkm_object *, struct nvkm_object *,
20 struct nvkm_oclass *, void *, u32,
21 struct nvkm_object **);
22 void g94_i2c_acquire(struct nvkm_i2c_port *);
23 void g94_i2c_release(struct nvkm_i2c_port *);
24
25 int gf110_i2c_port_ctor(struct nvkm_object *, struct nvkm_object *,
26 struct nvkm_oclass *, void *, u32,
27 struct nvkm_object **);
28 #endif