Lines Matching defs:i2c

39 /* bit banging i2c */
42 struct amdgpu_i2c_chan *i2c = i2c_get_adapdata(i2c_adap);
43 struct amdgpu_device *adev = drm_to_adev(i2c->dev);
44 struct amdgpu_i2c_bus_rec *rec = &i2c->rec;
47 mutex_lock(&i2c->mutex);
84 struct amdgpu_i2c_chan *i2c = i2c_get_adapdata(i2c_adap);
85 struct amdgpu_device *adev = drm_to_adev(i2c->dev);
86 struct amdgpu_i2c_bus_rec *rec = &i2c->rec;
98 mutex_unlock(&i2c->mutex);
103 struct amdgpu_i2c_chan *i2c = i2c_priv;
104 struct amdgpu_device *adev = drm_to_adev(i2c->dev);
105 struct amdgpu_i2c_bus_rec *rec = &i2c->rec;
118 struct amdgpu_i2c_chan *i2c = i2c_priv;
119 struct amdgpu_device *adev = drm_to_adev(i2c->dev);
120 struct amdgpu_i2c_bus_rec *rec = &i2c->rec;
132 struct amdgpu_i2c_chan *i2c = i2c_priv;
133 struct amdgpu_device *adev = drm_to_adev(i2c->dev);
134 struct amdgpu_i2c_bus_rec *rec = &i2c->rec;
145 struct amdgpu_i2c_chan *i2c = i2c_priv;
146 struct amdgpu_device *adev = drm_to_adev(i2c->dev);
147 struct amdgpu_i2c_bus_rec *rec = &i2c->rec;
165 struct amdgpu_i2c_chan *i2c;
172 i2c = kzalloc(sizeof(struct amdgpu_i2c_chan), GFP_KERNEL);
173 if (i2c == NULL)
176 i2c->rec = *rec;
177 i2c->adapter.owner = THIS_MODULE;
178 i2c->adapter.dev.parent = dev->dev;
179 i2c->dev = dev;
180 i2c_set_adapdata(&i2c->adapter, i2c);
181 mutex_init(&i2c->mutex);
184 /* hw i2c using atom */
185 snprintf(i2c->adapter.name, sizeof(i2c->adapter.name),
186 "AMDGPU i2c hw bus %s", name);
187 i2c->adapter.algo = &amdgpu_atombios_i2c_algo;
188 ret = i2c_add_adapter(&i2c->adapter);
193 snprintf(i2c->adapter.name, sizeof(i2c->adapter.name),
194 "AMDGPU i2c bit bus %s", name);
195 i2c->adapter.algo_data = &i2c->bit;
196 i2c->bit.pre_xfer = amdgpu_i2c_pre_xfer;
197 i2c->bit.post_xfer = amdgpu_i2c_post_xfer;
198 i2c->bit.setsda = amdgpu_i2c_set_data;
199 i2c->bit.setscl = amdgpu_i2c_set_clock;
200 i2c->bit.getsda = amdgpu_i2c_get_data;
201 i2c->bit.getscl = amdgpu_i2c_get_clock;
202 i2c->bit.udelay = 10;
203 i2c->bit.timeout = usecs_to_jiffies(2200); /* from VESA */
204 i2c->bit.data = i2c;
205 ret = i2c_bit_add_bus(&i2c->adapter);
207 DRM_ERROR("Failed to register bit i2c %s\n", name);
212 return i2c;
214 kfree(i2c);
219 void amdgpu_i2c_destroy(struct amdgpu_i2c_chan *i2c)
221 if (!i2c)
223 WARN_ON(i2c->has_aux);
224 i2c_del_adapter(&i2c->adapter);
225 kfree(i2c);
308 DRM_DEBUG("i2c 0x%02x read failed\n", addr);
335 DRM_DEBUG("i2c 0x%02x 0x%02x write failed\n", addr, val);