Lines Matching full:i2c

78 /* bit banging i2c */
82 struct radeon_i2c_chan *i2c = i2c_get_adapdata(i2c_adap); in pre_xfer() local
83 struct radeon_device *rdev = i2c->dev->dev_private; in pre_xfer()
84 struct radeon_i2c_bus_rec *rec = &i2c->rec; in pre_xfer()
87 /* RV410 appears to have a bug where the hw i2c in reset in pre_xfer()
88 * holds the i2c port in a bad state - switch hw i2c away before in pre_xfer()
150 struct radeon_i2c_chan *i2c = i2c_get_adapdata(i2c_adap); in post_xfer() local
151 struct radeon_device *rdev = i2c->dev->dev_private; in post_xfer()
152 struct radeon_i2c_bus_rec *rec = &i2c->rec; in post_xfer()
167 struct radeon_i2c_chan *i2c = i2c_priv; in get_clock() local
168 struct radeon_device *rdev = i2c->dev->dev_private; in get_clock()
169 struct radeon_i2c_bus_rec *rec = &i2c->rec; in get_clock()
182 struct radeon_i2c_chan *i2c = i2c_priv; in get_data() local
183 struct radeon_device *rdev = i2c->dev->dev_private; in get_data()
184 struct radeon_i2c_bus_rec *rec = &i2c->rec; in get_data()
196 struct radeon_i2c_chan *i2c = i2c_priv; in set_clock() local
197 struct radeon_device *rdev = i2c->dev->dev_private; in set_clock()
198 struct radeon_i2c_bus_rec *rec = &i2c->rec; in set_clock()
209 struct radeon_i2c_chan *i2c = i2c_priv; in set_data() local
210 struct radeon_device *rdev = i2c->dev->dev_private; in set_data()
211 struct radeon_i2c_bus_rec *rec = &i2c->rec; in set_data()
220 /* hw i2c */
302 DRM_ERROR("i2c: unhandled radeon chip\n"); in radeon_get_i2c_prescale()
309 /* hw i2c engine for r1xx-4xx hardware
315 struct radeon_i2c_chan *i2c = i2c_get_adapdata(i2c_adap); in r100_hw_i2c_xfer() local
316 struct radeon_device *rdev = i2c->dev->dev_private; in r100_hw_i2c_xfer()
317 struct radeon_i2c_bus_rec *rec = &i2c->rec; in r100_hw_i2c_xfer()
362 DRM_ERROR("gpio not supported with hw i2c\n"); in r100_hw_i2c_xfer()
377 DRM_ERROR("gpio not supported with hw i2c\n"); in r100_hw_i2c_xfer()
396 DRM_ERROR("gpio not supported with hw i2c\n"); in r100_hw_i2c_xfer()
412 DRM_ERROR("gpio not supported with hw i2c\n"); in r100_hw_i2c_xfer()
436 DRM_ERROR("gpio not supported with hw i2c\n"); in r100_hw_i2c_xfer()
472 DRM_DEBUG("i2c write error 0x%08x\n", tmp); in r100_hw_i2c_xfer()
504 DRM_DEBUG("i2c read error 0x%08x\n", tmp); in r100_hw_i2c_xfer()
532 DRM_DEBUG("i2c write error 0x%08x\n", tmp); in r100_hw_i2c_xfer()
562 /* hw i2c engine for r5xx hardware
568 struct radeon_i2c_chan *i2c = i2c_get_adapdata(i2c_adap); in r500_hw_i2c_xfer() local
569 struct radeon_device *rdev = i2c->dev->dev_private; in r500_hw_i2c_xfer()
570 struct radeon_i2c_bus_rec *rec = &i2c->rec; in r500_hw_i2c_xfer()
630 DRM_ERROR("failed to get i2c bus\n"); in r500_hw_i2c_xfer()
647 DRM_ERROR("gpio not supported with hw i2c\n"); in r500_hw_i2c_xfer()
680 DRM_DEBUG("i2c write error 0x%08x\n", tmp); in r500_hw_i2c_xfer()
722 DRM_DEBUG("i2c read error 0x%08x\n", tmp); in r500_hw_i2c_xfer()
765 DRM_DEBUG("i2c write error 0x%08x\n", tmp); in r500_hw_i2c_xfer()
801 struct radeon_i2c_chan *i2c = i2c_get_adapdata(i2c_adap); in radeon_hw_i2c_xfer() local
802 struct radeon_device *rdev = i2c->dev->dev_private; in radeon_hw_i2c_xfer()
803 struct radeon_i2c_bus_rec *rec = &i2c->rec; in radeon_hw_i2c_xfer()
830 /* XXX fill in hw i2c implementation */ in radeon_hw_i2c_xfer()
847 /* XXX fill in hw i2c implementation */ in radeon_hw_i2c_xfer()
857 /* XXX fill in hw i2c implementation */ in radeon_hw_i2c_xfer()
864 /* XXX fill in hw i2c implementation */ in radeon_hw_i2c_xfer()
867 DRM_ERROR("i2c: unhandled radeon chip\n"); in radeon_hw_i2c_xfer()
890 struct radeon_i2c_chan *i2c; in radeon_i2c_create() local
893 i2c = kzalloc(sizeof(struct radeon_i2c_chan), GFP_KERNEL); in radeon_i2c_create()
894 if (i2c == NULL) in radeon_i2c_create()
897 i2c->rec = *rec; in radeon_i2c_create()
898 i2c->adapter.owner = THIS_MODULE; in radeon_i2c_create()
899 i2c->adapter.class = I2C_CLASS_DDC; in radeon_i2c_create()
900 i2c->adapter.dev.parent = &dev->pdev->dev; in radeon_i2c_create()
901 i2c->dev = dev; in radeon_i2c_create()
902 i2c_set_adapdata(&i2c->adapter, i2c); in radeon_i2c_create()
908 /* set the radeon hw i2c adapter */ in radeon_i2c_create()
909 snprintf(i2c->adapter.name, sizeof(i2c->adapter.name), in radeon_i2c_create()
910 "Radeon i2c hw bus %s", name); in radeon_i2c_create()
911 i2c->adapter.algo = &radeon_i2c_algo; in radeon_i2c_create()
912 ret = i2c_add_adapter(&i2c->adapter); in radeon_i2c_create()
914 DRM_ERROR("Failed to register hw i2c %s\n", name); in radeon_i2c_create()
919 snprintf(i2c->adapter.name, sizeof(i2c->adapter.name), in radeon_i2c_create()
920 "Radeon i2c bit bus %s", name); in radeon_i2c_create()
921 i2c->adapter.algo_data = &i2c->algo.bit; in radeon_i2c_create()
922 i2c->algo.bit.pre_xfer = pre_xfer; in radeon_i2c_create()
923 i2c->algo.bit.post_xfer = post_xfer; in radeon_i2c_create()
924 i2c->algo.bit.setsda = set_data; in radeon_i2c_create()
925 i2c->algo.bit.setscl = set_clock; in radeon_i2c_create()
926 i2c->algo.bit.getsda = get_data; in radeon_i2c_create()
927 i2c->algo.bit.getscl = get_clock; in radeon_i2c_create()
928 i2c->algo.bit.udelay = 20; in radeon_i2c_create()
931 i2c->algo.bit.timeout = 2; in radeon_i2c_create()
932 i2c->algo.bit.data = i2c; in radeon_i2c_create()
933 ret = i2c_bit_add_bus(&i2c->adapter); in radeon_i2c_create()
935 DRM_ERROR("Failed to register bit i2c %s\n", name); in radeon_i2c_create()
940 return i2c; in radeon_i2c_create()
942 kfree(i2c); in radeon_i2c_create()
951 struct radeon_i2c_chan *i2c; in radeon_i2c_create_dp() local
954 i2c = kzalloc(sizeof(struct radeon_i2c_chan), GFP_KERNEL); in radeon_i2c_create_dp()
955 if (i2c == NULL) in radeon_i2c_create_dp()
958 i2c->rec = *rec; in radeon_i2c_create_dp()
959 i2c->adapter.owner = THIS_MODULE; in radeon_i2c_create_dp()
960 i2c->adapter.class = I2C_CLASS_DDC; in radeon_i2c_create_dp()
961 i2c->adapter.dev.parent = &dev->pdev->dev; in radeon_i2c_create_dp()
962 i2c->dev = dev; in radeon_i2c_create_dp()
963 snprintf(i2c->adapter.name, sizeof(i2c->adapter.name), in radeon_i2c_create_dp()
965 i2c_set_adapdata(&i2c->adapter, i2c); in radeon_i2c_create_dp()
966 i2c->adapter.algo_data = &i2c->algo.dp; in radeon_i2c_create_dp()
967 i2c->algo.dp.aux_ch = radeon_dp_i2c_aux_ch; in radeon_i2c_create_dp()
968 i2c->algo.dp.address = 0; in radeon_i2c_create_dp()
969 ret = i2c_dp_aux_add_bus(&i2c->adapter); in radeon_i2c_create_dp()
971 DRM_INFO("Failed to register i2c %s\n", name); in radeon_i2c_create_dp()
975 return i2c; in radeon_i2c_create_dp()
977 kfree(i2c); in radeon_i2c_create_dp()
982 void radeon_i2c_destroy(struct radeon_i2c_chan *i2c) in radeon_i2c_destroy() argument
984 if (!i2c) in radeon_i2c_destroy()
986 i2c_del_adapter(&i2c->adapter); in radeon_i2c_destroy()
987 kfree(i2c); in radeon_i2c_destroy()
1077 DRM_DEBUG("i2c 0x%02x 0x%02x read failed\n", in radeon_i2c_get_byte()
1099 DRM_DEBUG("i2c 0x%02x 0x%02x write failed\n", in radeon_i2c_put_byte()