Lines Matching defs:i2c

37 #include <dev/i2c/i2cvar.h>
38 #include <dev/i2c/i2c_bitbang.h>
86 /* bit banging i2c */
90 struct radeon_i2c_chan *i2c = i2c_get_adapdata(i2c_adap);
91 struct radeon_device *rdev = i2c->dev->dev_private;
92 struct radeon_i2c_bus_rec *rec = &i2c->rec;
95 mutex_lock(&i2c->mutex);
97 /* RV410 appears to have a bug where the hw i2c in reset
98 * holds the i2c port in a bad state - switch hw i2c away before
160 struct radeon_i2c_chan *i2c = i2c_get_adapdata(i2c_adap);
161 struct radeon_device *rdev = i2c->dev->dev_private;
162 struct radeon_i2c_bus_rec *rec = &i2c->rec;
174 mutex_unlock(&i2c->mutex);
179 struct radeon_i2c_chan *i2c = i2c_priv;
180 struct radeon_device *rdev = i2c->dev->dev_private;
181 struct radeon_i2c_bus_rec *rec = &i2c->rec;
194 struct radeon_i2c_chan *i2c = i2c_priv;
195 struct radeon_device *rdev = i2c->dev->dev_private;
196 struct radeon_i2c_bus_rec *rec = &i2c->rec;
208 struct radeon_i2c_chan *i2c = i2c_priv;
209 struct radeon_device *rdev = i2c->dev->dev_private;
210 struct radeon_i2c_bus_rec *rec = &i2c->rec;
221 struct radeon_i2c_chan *i2c = i2c_priv;
222 struct radeon_device *rdev = i2c->dev->dev_private;
223 struct radeon_i2c_bus_rec *rec = &i2c->rec;
284 struct radeon_i2c_chan *i2c = cookie;
285 pre_xfer(&i2c->adapter);
292 struct radeon_i2c_chan *i2c = cookie;
293 post_xfer(&i2c->adapter);
328 /* hw i2c */
410 DRM_ERROR("i2c: unhandled radeon chip\n");
417 /* hw i2c engine for r1xx-4xx hardware
423 struct radeon_i2c_chan *i2c = i2c_get_adapdata(i2c_adap);
424 struct radeon_device *rdev = i2c->dev->dev_private;
425 struct radeon_i2c_bus_rec *rec = &i2c->rec;
470 DRM_ERROR("gpio not supported with hw i2c\n");
485 DRM_ERROR("gpio not supported with hw i2c\n");
504 DRM_ERROR("gpio not supported with hw i2c\n");
520 DRM_ERROR("gpio not supported with hw i2c\n");
544 DRM_ERROR("gpio not supported with hw i2c\n");
580 DRM_DEBUG("i2c write error 0x%08x\n", tmp);
612 DRM_DEBUG("i2c read error 0x%08x\n", tmp);
640 DRM_DEBUG("i2c write error 0x%08x\n", tmp);
670 /* hw i2c engine for r5xx hardware
676 struct radeon_i2c_chan *i2c = i2c_get_adapdata(i2c_adap);
677 struct radeon_device *rdev = i2c->dev->dev_private;
678 struct radeon_i2c_bus_rec *rec = &i2c->rec;
738 DRM_ERROR("failed to get i2c bus\n");
755 DRM_ERROR("gpio not supported with hw i2c\n");
788 DRM_DEBUG("i2c write error 0x%08x\n", tmp);
830 DRM_DEBUG("i2c read error 0x%08x\n", tmp);
873 DRM_DEBUG("i2c write error 0x%08x\n", tmp);
909 struct radeon_i2c_chan *i2c = i2c_get_adapdata(i2c_adap);
910 struct radeon_device *rdev = i2c->dev->dev_private;
911 struct radeon_i2c_bus_rec *rec = &i2c->rec;
914 mutex_lock(&i2c->mutex);
940 /* XXX fill in hw i2c implementation */
957 /* XXX fill in hw i2c implementation */
967 /* XXX fill in hw i2c implementation */
974 /* XXX fill in hw i2c implementation */
977 DRM_ERROR("i2c: unhandled radeon chip\n");
982 mutex_unlock(&i2c->mutex);
1007 struct radeon_i2c_chan *i2c;
1014 i2c = kzalloc(sizeof(struct radeon_i2c_chan), GFP_KERNEL);
1015 if (i2c == NULL)
1018 i2c->rec = *rec;
1020 i2c->adapter.owner = THIS_MODULE;
1021 i2c->adapter.class = I2C_CLASS_DDC;
1022 i2c->adapter.dev.parent = dev->dev;
1024 i2c->dev = dev;
1025 i2c_set_adapdata(&i2c->adapter, i2c);
1026 rw_init(&i2c->mutex, "riic");
1032 /* set the radeon hw i2c adapter */
1033 snprintf(i2c->adapter.name, sizeof(i2c->adapter.name),
1034 "Radeon i2c hw bus %s", name);
1035 i2c->adapter.algo = &radeon_i2c_algo;
1036 ret = i2c_add_adapter(&i2c->adapter);
1042 /* hw i2c using atom */
1043 snprintf(i2c->adapter.name, sizeof(i2c->adapter.name),
1044 "Radeon i2c hw bus %s", name);
1045 i2c->adapter.algo = &radeon_atom_i2c_algo;
1046 ret = i2c_add_adapter(&i2c->adapter);
1051 snprintf(i2c->adapter.name, sizeof(i2c->adapter.name),
1052 "Radeon i2c bit bus %s", name);
1053 i2c->adapter.algo_data = &i2c->bit;
1055 i2c->bit.pre_xfer = pre_xfer;
1056 i2c->bit.post_xfer = post_xfer;
1057 i2c->bit.setsda = set_data;
1058 i2c->bit.setscl = set_clock;
1059 i2c->bit.getsda = get_data;
1060 i2c->bit.getscl = get_clock;
1061 i2c->bit.udelay = 10;
1062 i2c->bit.timeout = usecs_to_jiffies(2200); /* from VESA */
1063 i2c->bit.data = i2c;
1065 i2c->bit.ic.ic_cookie = i2c;
1066 i2c->bit.ic.ic_acquire_bus = radeon_acquire_bus;
1067 i2c->bit.ic.ic_release_bus = radeon_release_bus;
1068 i2c->bit.ic.ic_send_start = radeon_send_start;
1069 i2c->bit.ic.ic_send_stop = radeon_send_stop;
1070 i2c->bit.ic.ic_initiate_xfer = radeon_initiate_xfer;
1071 i2c->bit.ic.ic_read_byte = radeon_read_byte;
1072 i2c->bit.ic.ic_write_byte = radeon_write_byte;
1074 ret = i2c_bit_add_bus(&i2c->adapter);
1076 DRM_ERROR("Failed to register bit i2c %s\n", name);
1081 return i2c;
1083 kfree(i2c);
1088 void radeon_i2c_destroy(struct radeon_i2c_chan *i2c)
1090 if (!i2c)
1092 WARN_ON(i2c->has_aux);
1093 i2c_del_adapter(&i2c->adapter);
1094 kfree(i2c);
1182 DRM_DEBUG("i2c 0x%02x 0x%02x read failed\n",
1204 DRM_DEBUG("i2c 0x%02x 0x%02x write failed\n",