• Home
  • Raw
  • Download

Lines Matching refs:cx

49 static void gpio_write(struct cx18 *cx)  in gpio_write()  argument
51 u32 dir_lo = cx->gpio_dir & 0xffff; in gpio_write()
52 u32 val_lo = cx->gpio_val & 0xffff; in gpio_write()
53 u32 dir_hi = cx->gpio_dir >> 16; in gpio_write()
54 u32 val_hi = cx->gpio_val >> 16; in gpio_write()
56 cx18_write_reg_expect(cx, dir_lo << 16, in gpio_write()
58 cx18_write_reg_expect(cx, (dir_lo << 16) | val_lo, in gpio_write()
60 cx18_write_reg_expect(cx, dir_hi << 16, in gpio_write()
62 cx18_write_reg_expect(cx, (dir_hi << 16) | val_hi, in gpio_write()
66 void cx18_reset_i2c_slaves_gpio(struct cx18 *cx) in cx18_reset_i2c_slaves_gpio() argument
70 p = &cx->card->gpio_i2c_slave_reset; in cx18_reset_i2c_slaves_gpio()
78 mutex_lock(&cx->gpio_lock); in cx18_reset_i2c_slaves_gpio()
79 cx->gpio_val = in cx18_reset_i2c_slaves_gpio()
80 (cx->gpio_val | p->active_hi_mask) & ~(p->active_lo_mask); in cx18_reset_i2c_slaves_gpio()
81 gpio_write(cx); in cx18_reset_i2c_slaves_gpio()
85 cx->gpio_val = in cx18_reset_i2c_slaves_gpio()
86 (cx->gpio_val | p->active_lo_mask) & ~(p->active_hi_mask); in cx18_reset_i2c_slaves_gpio()
87 gpio_write(cx); in cx18_reset_i2c_slaves_gpio()
89 mutex_unlock(&cx->gpio_lock); in cx18_reset_i2c_slaves_gpio()
94 struct cx18 *cx = ((struct cx18_i2c_algo_callback_data *)data)->cx; in cx18_reset_ir_gpio() local
97 p = &cx->card->gpio_i2c_slave_reset; in cx18_reset_ir_gpio()
114 mutex_lock(&cx->gpio_lock); in cx18_reset_ir_gpio()
115 cx->gpio_val = cx->gpio_val & ~p->ir_reset_mask; in cx18_reset_ir_gpio()
116 gpio_write(cx); in cx18_reset_ir_gpio()
117 mutex_unlock(&cx->gpio_lock); in cx18_reset_ir_gpio()
124 mutex_lock(&cx->gpio_lock); in cx18_reset_ir_gpio()
125 cx->gpio_val = cx->gpio_val | p->ir_reset_mask; in cx18_reset_ir_gpio()
126 gpio_write(cx); in cx18_reset_ir_gpio()
127 mutex_unlock(&cx->gpio_lock); in cx18_reset_ir_gpio()
133 void cx18_gpio_init(struct cx18 *cx) in cx18_gpio_init() argument
135 mutex_lock(&cx->gpio_lock); in cx18_gpio_init()
136 cx->gpio_dir = cx->card->gpio_init.direction; in cx18_gpio_init()
137 cx->gpio_val = cx->card->gpio_init.initial_value; in cx18_gpio_init()
139 if (cx->card->tuners[0].tuner == TUNER_XC2028) { in cx18_gpio_init()
140 cx->gpio_dir |= 1 << cx->card->xceive_pin; in cx18_gpio_init()
141 cx->gpio_val |= 1 << cx->card->xceive_pin; in cx18_gpio_init()
144 if (cx->gpio_dir == 0) { in cx18_gpio_init()
145 mutex_unlock(&cx->gpio_lock); in cx18_gpio_init()
150 cx18_read_reg(cx, CX18_REG_GPIO_DIR1), in cx18_gpio_init()
151 cx18_read_reg(cx, CX18_REG_GPIO_DIR2), in cx18_gpio_init()
152 cx18_read_reg(cx, CX18_REG_GPIO_OUT1), in cx18_gpio_init()
153 cx18_read_reg(cx, CX18_REG_GPIO_OUT2)); in cx18_gpio_init()
155 gpio_write(cx); in cx18_gpio_init()
156 mutex_unlock(&cx->gpio_lock); in cx18_gpio_init()
164 struct cx18 *cx = cb_data->cx; in cx18_reset_tuner_gpio() local
170 mutex_lock(&cx->gpio_lock); in cx18_reset_tuner_gpio()
171 cx->gpio_val &= ~(1 << cx->card->xceive_pin); in cx18_reset_tuner_gpio()
172 gpio_write(cx); in cx18_reset_tuner_gpio()
173 mutex_unlock(&cx->gpio_lock); in cx18_reset_tuner_gpio()
176 mutex_lock(&cx->gpio_lock); in cx18_reset_tuner_gpio()
177 cx->gpio_val |= 1 << cx->card->xceive_pin; in cx18_reset_tuner_gpio()
178 gpio_write(cx); in cx18_reset_tuner_gpio()
179 mutex_unlock(&cx->gpio_lock); in cx18_reset_tuner_gpio()
184 int cx18_gpio(struct cx18 *cx, unsigned int command, void *arg) in cx18_gpio() argument
193 mask = cx->card->gpio_audio_input.mask; in cx18_gpio()
196 data = cx->card->gpio_audio_input.tuner; in cx18_gpio()
199 data = cx->card->gpio_audio_input.linein; in cx18_gpio()
203 data = cx->card->gpio_audio_input.radio; in cx18_gpio()
212 mutex_lock(&cx->gpio_lock); in cx18_gpio()
213 cx->gpio_val = (cx->gpio_val & ~mask) | (data & mask); in cx18_gpio()
214 gpio_write(cx); in cx18_gpio()
215 mutex_unlock(&cx->gpio_lock); in cx18_gpio()