1 /* 2 * Copyright 2012-16 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_H__ 27 #define __DAL_GPIO_H__ 28 29 #include "gpio_types.h" 30 31 struct gpio { 32 struct gpio_service *service; 33 struct hw_gpio_pin *pin; 34 enum gpio_id id; 35 uint32_t en; 36 enum gpio_mode mode; 37 /* when GPIO comes from VBIOS, it has defined output state */ 38 enum gpio_pin_output_state output_state; 39 }; 40 41 #if 0 42 struct gpio_funcs { 43 44 struct hw_gpio_pin *(*create_ddc_data)( 45 struct dc_context *ctx, 46 enum gpio_id id, 47 uint32_t en); 48 struct hw_gpio_pin *(*create_ddc_clock)( 49 struct dc_context *ctx, 50 enum gpio_id id, 51 uint32_t en); 52 struct hw_gpio_pin *(*create_generic)( 53 struct dc_context *ctx, 54 enum gpio_id id, 55 uint32_t en); 56 struct hw_gpio_pin *(*create_hpd)( 57 struct dc_context *ctx, 58 enum gpio_id id, 59 uint32_t en); 60 struct hw_gpio_pin *(*create_gpio_pad)( 61 struct dc_context *ctx, 62 enum gpio_id id, 63 uint32_t en); 64 struct hw_gpio_pin *(*create_sync)( 65 struct dc_context *ctx, 66 enum gpio_id id, 67 uint32_t en); 68 struct hw_gpio_pin *(*create_gsl)( 69 struct dc_context *ctx, 70 enum gpio_id id, 71 uint32_t en); 72 73 /* HW translation */ 74 bool (*offset_to_id)( 75 uint32_t offset, 76 uint32_t mask, 77 enum gpio_id *id, 78 uint32_t *en); 79 bool (*id_to_offset)( 80 enum gpio_id id, 81 uint32_t en, 82 struct gpio_pin_info *info); 83 }; 84 #endif 85 86 #endif /* __DAL_GPIO__ */ 87