.. | .. |
---|
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 |
---|