linux/drivers/gpu/drm/amd/display/include/gpio_interface.h
<<
>>
Prefs
   1/*
   2 * Copyright 2012-15 Advanced Micro Devices, Inc.
   3 *
   4 * Permission is hereby granted, free of charge, to any person obtaining a
   5 * copy of this software and associated documentation files (the "Software"),
   6 * to deal in the Software without restriction, including without limitation
   7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
   8 * and/or sell copies of the Software, and to permit persons to whom the
   9 * Software is furnished to do so, subject to the following conditions:
  10 *
  11 * The above copyright notice and this permission notice shall be included in
  12 * all copies or substantial portions of the Software.
  13 *
  14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
  18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  20 * OTHER DEALINGS IN THE SOFTWARE.
  21 *
  22 * Authors: AMD
  23 *
  24 */
  25
  26#ifndef __DAL_GPIO_INTERFACE_H__
  27#define __DAL_GPIO_INTERFACE_H__
  28
  29#include "gpio_types.h"
  30#include "grph_object_defs.h"
  31
  32struct gpio;
  33
  34/* Open the handle for future use */
  35enum gpio_result dal_gpio_open(
  36        struct gpio *gpio,
  37        enum gpio_mode mode);
  38
  39enum gpio_result dal_gpio_open_ex(
  40        struct gpio *gpio,
  41        enum gpio_mode mode);
  42
  43/* Get high or low from the pin */
  44enum gpio_result dal_gpio_get_value(
  45        const struct gpio *gpio,
  46        uint32_t *value);
  47
  48/* Set pin high or low */
  49enum gpio_result dal_gpio_set_value(
  50        const struct gpio *gpio,
  51        uint32_t value);
  52
  53/* Get current mode */
  54enum gpio_mode dal_gpio_get_mode(
  55        const struct gpio *gpio);
  56
  57/* Change mode of the handle */
  58enum gpio_result dal_gpio_change_mode(
  59        struct gpio *gpio,
  60        enum gpio_mode mode);
  61
  62/* Lock Pin */
  63enum gpio_result dal_gpio_lock_pin(
  64        struct gpio *gpio);
  65
  66/* Unlock Pin */
  67enum gpio_result dal_gpio_unlock_pin(
  68        struct gpio *gpio);
  69
  70/* Get the GPIO id */
  71enum gpio_id dal_gpio_get_id(
  72        const struct gpio *gpio);
  73
  74/* Get the GPIO enum */
  75uint32_t dal_gpio_get_enum(
  76        const struct gpio *gpio);
  77
  78/* Set the GPIO pin configuration */
  79enum gpio_result dal_gpio_set_config(
  80        struct gpio *gpio,
  81        const struct gpio_config_data *config_data);
  82
  83/* Obtain GPIO pin info */
  84enum gpio_result dal_gpio_get_pin_info(
  85        const struct gpio *gpio,
  86        struct gpio_pin_info *pin_info);
  87
  88/* Obtain GPIO sync source */
  89enum sync_source dal_gpio_get_sync_source(
  90        const struct gpio *gpio);
  91
  92/* Obtain GPIO pin output state (active low or active high) */
  93enum gpio_pin_output_state dal_gpio_get_output_state(
  94        const struct gpio *gpio);
  95
  96struct hw_ddc *dal_gpio_get_ddc(struct gpio *gpio);
  97
  98struct hw_hpd *dal_gpio_get_hpd(struct gpio *gpio);
  99
 100struct hw_generic *dal_gpio_get_generic(struct gpio *gpio);
 101
 102/* Close the handle */
 103void dal_gpio_close(
 104        struct gpio *gpio);
 105
 106
 107
 108
 109#endif
 110