diff options
Diffstat (limited to 'nvkm/subdev/gpio/priv.h')
-rw-r--r-- | nvkm/subdev/gpio/priv.h | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/nvkm/subdev/gpio/priv.h b/nvkm/subdev/gpio/priv.h index 4f7b616a3..5c023983b 100644 --- a/nvkm/subdev/gpio/priv.h +++ b/nvkm/subdev/gpio/priv.h @@ -27,14 +27,6 @@ void _nouveau_gpio_dtor(struct nouveau_object *); int _nouveau_gpio_init(struct nouveau_object *); int _nouveau_gpio_fini(struct nouveau_object *, bool); -int nv50_gpio_ctor(struct nouveau_object *, struct nouveau_object *, - struct nouveau_oclass *, void *, u32, - struct nouveau_object **); - -void nvd0_gpio_reset(struct nouveau_gpio *, u8); -int nvd0_gpio_drive(struct nouveau_gpio *, int, int, int); -int nvd0_gpio_sense(struct nouveau_gpio *, int); - enum nvkm_gpio_event { NVKM_GPIO_HI = 1, NVKM_GPIO_LO = 2, @@ -55,10 +47,27 @@ struct nouveau_gpio_impl { * given set of gpio lines */ void (*intr_mask)(struct nouveau_gpio *, u32, u32, u32); + + /* configure gpio direction and output value */ + int (*drive)(struct nouveau_gpio *, int line, int dir, int out); + + /* sense current state of given gpio line */ + int (*sense)(struct nouveau_gpio *, int line); + + /*XXX*/ + void (*reset)(struct nouveau_gpio *, u8); }; +void nv50_gpio_reset(struct nouveau_gpio *, u8); +int nv50_gpio_drive(struct nouveau_gpio *, int, int, int); +int nv50_gpio_sense(struct nouveau_gpio *, int); + void nv92_gpio_intr_stat(struct nouveau_gpio *, u32 *, u32 *); void nv92_gpio_intr_mask(struct nouveau_gpio *, u32, u32, u32); +void nvd0_gpio_reset(struct nouveau_gpio *, u8); +int nvd0_gpio_drive(struct nouveau_gpio *, int, int, int); +int nvd0_gpio_sense(struct nouveau_gpio *, int); + #endif |