Lines Matching refs:gpio
30 nvkm_gpio_drive(struct nvkm_gpio *gpio, int idx, int line, int dir, int out) in nvkm_gpio_drive() argument
32 const struct nvkm_gpio_impl *impl = (void *)nv_object(gpio)->oclass; in nvkm_gpio_drive()
33 return impl->drive ? impl->drive(gpio, line, dir, out) : -ENODEV; in nvkm_gpio_drive()
37 nvkm_gpio_sense(struct nvkm_gpio *gpio, int idx, int line) in nvkm_gpio_sense() argument
39 const struct nvkm_gpio_impl *impl = (void *)nv_object(gpio)->oclass; in nvkm_gpio_sense()
40 return impl->sense ? impl->sense(gpio, line) : -ENODEV; in nvkm_gpio_sense()
44 nvkm_gpio_find(struct nvkm_gpio *gpio, int idx, u8 tag, u8 line, in nvkm_gpio_find() argument
47 struct nvkm_bios *bios = nvkm_bios(gpio); in nvkm_gpio_find()
59 if (nv_device_match(nv_object(gpio), 0x0189, 0x10de, 0x0010)) { in nvkm_gpio_find()
75 nvkm_gpio_set(struct nvkm_gpio *gpio, int idx, u8 tag, u8 line, int state) in nvkm_gpio_set() argument
80 ret = nvkm_gpio_find(gpio, idx, tag, line, &func); in nvkm_gpio_set()
84 ret = nvkm_gpio_drive(gpio, idx, func.line, dir, out); in nvkm_gpio_set()
91 nvkm_gpio_get(struct nvkm_gpio *gpio, int idx, u8 tag, u8 line) in nvkm_gpio_get() argument
96 ret = nvkm_gpio_find(gpio, idx, tag, line, &func); in nvkm_gpio_get()
98 ret = nvkm_gpio_sense(gpio, idx, func.line); in nvkm_gpio_get()
109 struct nvkm_gpio *gpio = container_of(event, typeof(*gpio), event); in nvkm_gpio_intr_fini() local
110 const struct nvkm_gpio_impl *impl = (void *)nv_object(gpio)->oclass; in nvkm_gpio_intr_fini()
111 impl->intr_mask(gpio, type, 1 << index, 0); in nvkm_gpio_intr_fini()
117 struct nvkm_gpio *gpio = container_of(event, typeof(*gpio), event); in nvkm_gpio_intr_init() local
118 const struct nvkm_gpio_impl *impl = (void *)nv_object(gpio)->oclass; in nvkm_gpio_intr_init()
119 impl->intr_mask(gpio, type, 1 << index, 1 << index); in nvkm_gpio_intr_init()
139 struct nvkm_gpio *gpio = nvkm_gpio(subdev); in nvkm_gpio_intr() local
140 const struct nvkm_gpio_impl *impl = (void *)nv_object(gpio)->oclass; in nvkm_gpio_intr()
143 impl->intr_stat(gpio, &hi, &lo); in nvkm_gpio_intr()
150 nvkm_event_send(&gpio->event, rep.mask, i, &rep, sizeof(rep)); in nvkm_gpio_intr()
165 struct nvkm_gpio *gpio = nvkm_gpio(object); in _nvkm_gpio_fini() local
168 impl->intr_mask(gpio, NVKM_GPIO_TOGGLED, mask, 0); in _nvkm_gpio_fini()
169 impl->intr_stat(gpio, &mask, &mask); in _nvkm_gpio_fini()
171 return nvkm_subdev_fini(&gpio->base, suspend); in _nvkm_gpio_fini()
188 struct nvkm_gpio *gpio = nvkm_gpio(object); in _nvkm_gpio_init() local
191 ret = nvkm_subdev_init(&gpio->base); in _nvkm_gpio_init()
195 if (gpio->reset && dmi_check_system(gpio_reset_ids)) in _nvkm_gpio_init()
196 gpio->reset(gpio, DCB_GPIO_UNUSED); in _nvkm_gpio_init()
204 struct nvkm_gpio *gpio = (void *)object; in _nvkm_gpio_dtor() local
205 nvkm_event_fini(&gpio->event); in _nvkm_gpio_dtor()
206 nvkm_subdev_destroy(&gpio->base); in _nvkm_gpio_dtor()
214 struct nvkm_gpio *gpio; in nvkm_gpio_create_() local
219 gpio = *pobject; in nvkm_gpio_create_()
223 gpio->find = nvkm_gpio_find; in nvkm_gpio_create_()
224 gpio->set = nvkm_gpio_set; in nvkm_gpio_create_()
225 gpio->get = nvkm_gpio_get; in nvkm_gpio_create_()
226 gpio->reset = impl->reset; in nvkm_gpio_create_()
229 &gpio->event); in nvkm_gpio_create_()
233 nv_subdev(gpio)->intr = nvkm_gpio_intr; in nvkm_gpio_create_()
242 struct nvkm_gpio *gpio; in _nvkm_gpio_ctor() local
245 ret = nvkm_gpio_create(parent, engine, oclass, &gpio); in _nvkm_gpio_ctor()
246 *pobject = nv_object(gpio); in _nvkm_gpio_ctor()