| .. | .. |
|---|
| 31 | 31 | #include "../hw_gpio.h" |
|---|
| 32 | 32 | #include "../hw_ddc.h" |
|---|
| 33 | 33 | #include "../hw_hpd.h" |
|---|
| 34 | +#include "../hw_generic.h" |
|---|
| 34 | 35 | |
|---|
| 35 | 36 | #include "hw_factory_dcn10.h" |
|---|
| 36 | 37 | |
|---|
| .. | .. |
|---|
| 121 | 122 | DDC_MASK_SH_LIST(_MASK) |
|---|
| 122 | 123 | }; |
|---|
| 123 | 124 | |
|---|
| 125 | +#include "../generic_regs.h" |
|---|
| 126 | + |
|---|
| 127 | +/* set field name */ |
|---|
| 128 | +#define SF_GENERIC(reg_name, field_name, post_fix)\ |
|---|
| 129 | + .field_name = reg_name ## __ ## field_name ## post_fix |
|---|
| 130 | + |
|---|
| 131 | +#define generic_regs(id) \ |
|---|
| 132 | +{\ |
|---|
| 133 | + GENERIC_REG_LIST(id)\ |
|---|
| 134 | +} |
|---|
| 135 | + |
|---|
| 136 | +static const struct generic_registers generic_regs[] = { |
|---|
| 137 | + generic_regs(A), |
|---|
| 138 | + generic_regs(B), |
|---|
| 139 | +}; |
|---|
| 140 | + |
|---|
| 141 | +static const struct generic_sh_mask generic_shift[] = { |
|---|
| 142 | + GENERIC_MASK_SH_LIST(__SHIFT, A), |
|---|
| 143 | + GENERIC_MASK_SH_LIST(__SHIFT, B), |
|---|
| 144 | +}; |
|---|
| 145 | + |
|---|
| 146 | +static const struct generic_sh_mask generic_mask[] = { |
|---|
| 147 | + GENERIC_MASK_SH_LIST(_MASK, A), |
|---|
| 148 | + GENERIC_MASK_SH_LIST(_MASK, B), |
|---|
| 149 | +}; |
|---|
| 150 | + |
|---|
| 151 | +static void define_generic_registers(struct hw_gpio_pin *pin, uint32_t en) |
|---|
| 152 | +{ |
|---|
| 153 | + struct hw_generic *generic = HW_GENERIC_FROM_BASE(pin); |
|---|
| 154 | + |
|---|
| 155 | + generic->regs = &generic_regs[en]; |
|---|
| 156 | + generic->shifts = &generic_shift[en]; |
|---|
| 157 | + generic->masks = &generic_mask[en]; |
|---|
| 158 | + generic->base.regs = &generic_regs[en].gpio; |
|---|
| 159 | +} |
|---|
| 160 | + |
|---|
| 124 | 161 | static void define_ddc_registers( |
|---|
| 125 | 162 | struct hw_gpio_pin *pin, |
|---|
| 126 | 163 | uint32_t en) |
|---|
| .. | .. |
|---|
| 157 | 194 | } |
|---|
| 158 | 195 | |
|---|
| 159 | 196 | |
|---|
| 160 | | -/* fucntion table */ |
|---|
| 197 | +/* function table */ |
|---|
| 161 | 198 | static const struct hw_factory_funcs funcs = { |
|---|
| 162 | | - .create_ddc_data = dal_hw_ddc_create, |
|---|
| 163 | | - .create_ddc_clock = dal_hw_ddc_create, |
|---|
| 164 | | - .create_generic = NULL, |
|---|
| 165 | | - .create_hpd = dal_hw_hpd_create, |
|---|
| 166 | | - .create_sync = NULL, |
|---|
| 167 | | - .create_gsl = NULL, |
|---|
| 199 | + .init_ddc_data = dal_hw_ddc_init, |
|---|
| 200 | + .init_generic = dal_hw_generic_init, |
|---|
| 201 | + .init_hpd = dal_hw_hpd_init, |
|---|
| 202 | + .get_ddc_pin = dal_hw_ddc_get_pin, |
|---|
| 203 | + .get_hpd_pin = dal_hw_hpd_get_pin, |
|---|
| 204 | + .get_generic_pin = dal_hw_generic_get_pin, |
|---|
| 168 | 205 | .define_hpd_registers = define_hpd_registers, |
|---|
| 169 | | - .define_ddc_registers = define_ddc_registers |
|---|
| 206 | + .define_ddc_registers = define_ddc_registers, |
|---|
| 207 | + .define_generic_registers = define_generic_registers |
|---|
| 170 | 208 | }; |
|---|
| 171 | 209 | /* |
|---|
| 172 | 210 | * dal_hw_factory_dcn10_init |
|---|