0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #ifndef __DAL_HW_FACTORY_H__
0027 #define __DAL_HW_FACTORY_H__
0028
0029 struct hw_gpio_pin;
0030 struct hw_hpd;
0031 struct hw_ddc;
0032 struct hw_generic;
0033 struct gpio;
0034
0035 struct hw_factory {
0036 uint32_t number_of_pins[GPIO_ID_COUNT];
0037
0038 const struct hw_factory_funcs {
0039 void (*init_ddc_data)(
0040 struct hw_ddc **hw_ddc,
0041 struct dc_context *ctx,
0042 enum gpio_id id,
0043 uint32_t en);
0044 void (*init_generic)(
0045 struct hw_generic **hw_generic,
0046 struct dc_context *ctx,
0047 enum gpio_id id,
0048 uint32_t en);
0049 void (*init_hpd)(
0050 struct hw_hpd **hw_hpd,
0051 struct dc_context *ctx,
0052 enum gpio_id id,
0053 uint32_t en);
0054 struct hw_gpio_pin *(*get_hpd_pin)(
0055 struct gpio *gpio);
0056 struct hw_gpio_pin *(*get_ddc_pin)(
0057 struct gpio *gpio);
0058 struct hw_gpio_pin *(*get_generic_pin)(
0059 struct gpio *gpio);
0060 void (*define_hpd_registers)(
0061 struct hw_gpio_pin *pin,
0062 uint32_t en);
0063 void (*define_ddc_registers)(
0064 struct hw_gpio_pin *pin,
0065 uint32_t en);
0066 void (*define_generic_registers)(
0067 struct hw_gpio_pin *pin,
0068 uint32_t en);
0069 } *funcs;
0070 };
0071
0072 bool dal_hw_factory_init(
0073 struct hw_factory *factory,
0074 enum dce_version dce_version,
0075 enum dce_environment dce_environment);
0076
0077 #endif