aoa-gpio.h
来自「linux 内核源代码」· C头文件 代码 · 共 82 行
H
82 行
/* * Apple Onboard Audio GPIO definitions * * Copyright 2006 Johannes Berg <johannes@sipsolutions.net> * * GPL v2, can be found in COPYING. */#ifndef __AOA_GPIO_H#define __AOA_GPIO_H#include <linux/workqueue.h>#include <linux/mutex.h>#include <asm/prom.h>typedef void (*notify_func_t)(void *data);enum notify_type { AOA_NOTIFY_HEADPHONE, AOA_NOTIFY_LINE_IN, AOA_NOTIFY_LINE_OUT,};struct gpio_runtime;struct gpio_methods { /* for initialisation/de-initialisation of the GPIO layer */ void (*init)(struct gpio_runtime *rt); void (*exit)(struct gpio_runtime *rt); /* turn off headphone, speakers, lineout */ void (*all_amps_off)(struct gpio_runtime *rt); /* turn headphone, speakers, lineout back to previous setting */ void (*all_amps_restore)(struct gpio_runtime *rt); void (*set_headphone)(struct gpio_runtime *rt, int on); void (*set_speakers)(struct gpio_runtime *rt, int on); void (*set_lineout)(struct gpio_runtime *rt, int on); int (*get_headphone)(struct gpio_runtime *rt); int (*get_speakers)(struct gpio_runtime *rt); int (*get_lineout)(struct gpio_runtime *rt); void (*set_hw_reset)(struct gpio_runtime *rt, int on); /* use this to be notified of any events. The notification * function is passed the data, and is called in process * context by the use of schedule_work. * The interface for it is that setting a function to NULL * removes it, and they return 0 if the operation succeeded, * and -EBUSY if the notification is already assigned by * someone else. */ int (*set_notify)(struct gpio_runtime *rt, enum notify_type type, notify_func_t notify, void *data); /* returns 0 if not plugged in, 1 if plugged in * or a negative error code */ int (*get_detect)(struct gpio_runtime *rt, enum notify_type type);};struct gpio_notification { struct delayed_work work; notify_func_t notify; void *data; void *gpio_private; struct mutex mutex;};struct gpio_runtime { /* to be assigned by fabric */ struct device_node *node; /* since everyone needs this pointer anyway... */ struct gpio_methods *methods; /* to be used by the gpio implementation */ int implementation_private; struct gpio_notification headphone_notify; struct gpio_notification line_in_notify; struct gpio_notification line_out_notify;};#endif /* __AOA_GPIO_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?