aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_drv.h
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-07-25 19:28:25 -0400
committerBen Skeggs <bskeggs@redhat.com>2010-07-25 21:43:57 -0400
commitee2e013131dcf6427334663662dbe760ccdba735 (patch)
tree2533973de31a05dbb06465a124087334842c6f37 /drivers/gpu/drm/nouveau/nouveau_drv.h
parentbf563a6b7c7efb283dd4ddf12cc90c2898195c16 (diff)
drm/nouveau: introduce gpio engine
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_drv.h')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_drv.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
index 0687e6ab918..d0a35d9ba52 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drv.h
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
@@ -359,6 +359,16 @@ struct nouveau_display_engine {
359 void (*destroy)(struct drm_device *); 359 void (*destroy)(struct drm_device *);
360}; 360};
361 361
362struct nouveau_gpio_engine {
363 int (*init)(struct drm_device *);
364 void (*takedown)(struct drm_device *);
365
366 int (*get)(struct drm_device *, enum dcb_gpio_tag);
367 int (*set)(struct drm_device *, enum dcb_gpio_tag, int state);
368
369 void (*irq_enable)(struct drm_device *, enum dcb_gpio_tag, bool on);
370};
371
362struct nouveau_engine { 372struct nouveau_engine {
363 struct nouveau_instmem_engine instmem; 373 struct nouveau_instmem_engine instmem;
364 struct nouveau_mc_engine mc; 374 struct nouveau_mc_engine mc;
@@ -367,6 +377,7 @@ struct nouveau_engine {
367 struct nouveau_pgraph_engine graph; 377 struct nouveau_pgraph_engine graph;
368 struct nouveau_fifo_engine fifo; 378 struct nouveau_fifo_engine fifo;
369 struct nouveau_display_engine display; 379 struct nouveau_display_engine display;
380 struct nouveau_gpio_engine gpio;
370}; 381};
371 382
372struct nouveau_pll_vals { 383struct nouveau_pll_vals {
@@ -1149,11 +1160,12 @@ extern int nouveau_gem_ioctl_cpu_fini(struct drm_device *, void *,
1149extern int nouveau_gem_ioctl_info(struct drm_device *, void *, 1160extern int nouveau_gem_ioctl_info(struct drm_device *, void *,
1150 struct drm_file *); 1161 struct drm_file *);
1151 1162
1152/* nv17_gpio.c */ 1163/* nv10_gpio.c */
1153int nv17_gpio_get(struct drm_device *dev, enum dcb_gpio_tag tag); 1164int nv10_gpio_get(struct drm_device *dev, enum dcb_gpio_tag tag);
1154int nv17_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state); 1165int nv10_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state);
1155 1166
1156/* nv50_gpio.c */ 1167/* nv50_gpio.c */
1168int nv50_gpio_init(struct drm_device *dev);
1157int nv50_gpio_get(struct drm_device *dev, enum dcb_gpio_tag tag); 1169int nv50_gpio_get(struct drm_device *dev, enum dcb_gpio_tag tag);
1158int nv50_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state); 1170int nv50_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state);
1159void nv50_gpio_irq_enable(struct drm_device *, enum dcb_gpio_tag, bool on); 1171void nv50_gpio_irq_enable(struct drm_device *, enum dcb_gpio_tag, bool on);