cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

gpio.h (1504B)


      1/* SPDX-License-Identifier: MIT */
      2#ifndef __NVKM_GPIO_H__
      3#define __NVKM_GPIO_H__
      4#include <core/subdev.h>
      5#include <core/event.h>
      6
      7#include <subdev/bios.h>
      8#include <subdev/bios/gpio.h>
      9
     10struct nvkm_gpio_ntfy_req {
     11#define NVKM_GPIO_HI                                                       0x01
     12#define NVKM_GPIO_LO                                                       0x02
     13#define NVKM_GPIO_TOGGLED                                                  0x03
     14	u8 mask;
     15	u8 line;
     16};
     17
     18struct nvkm_gpio_ntfy_rep {
     19	u8 mask;
     20};
     21
     22struct nvkm_gpio {
     23	const struct nvkm_gpio_func *func;
     24	struct nvkm_subdev subdev;
     25
     26	struct nvkm_event event;
     27};
     28
     29void nvkm_gpio_reset(struct nvkm_gpio *, u8 func);
     30int nvkm_gpio_find(struct nvkm_gpio *, int idx, u8 tag, u8 line,
     31		   struct dcb_gpio_func *);
     32int nvkm_gpio_set(struct nvkm_gpio *, int idx, u8 tag, u8 line, int state);
     33int nvkm_gpio_get(struct nvkm_gpio *, int idx, u8 tag, u8 line);
     34
     35int nv10_gpio_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gpio **);
     36int nv50_gpio_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gpio **);
     37int g94_gpio_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gpio **);
     38int gf119_gpio_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gpio **);
     39int gk104_gpio_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gpio **);
     40int ga102_gpio_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gpio **);
     41#endif