From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,1/2] i2c: buses: add i2c bus driver for NVIDIA GPU From: Ajay Gupta Message-Id: <516518a477754718bda9869a55de3ce4@bgmail101.nvidia.com> Date: Wed, 29 Aug 2018 22:57:13 +0000 To: Andy Shevchenko , "wsa@the-dreams.de" , "heikki.krogerus@linux.intel.com" Cc: "linux-usb@vger.kernel.org" , "linux-i2c@vger.kernel.org" List-ID: SGkgQW5keSwNCg0KPiA+IExhdGVzdCBOVklESUEgR1BVIGNhcmQgaGFzIFVTQiBUeXBlLUMgaW50 ZXJmYWNlLiBUaGVyZSBpcyBhDQo+ID4gVHlwZS1DIGNvbnRyb2xsZXIgd2hpY2ggY2FuIGJlIGFj Y2Vzc2VkIG92ZXIgSTJDLg0KPiA+DQo+ID4gVGhpcyBkcml2ZXIgYWRkIEkyQyBidXMgZHJpdmVy IHRvIGNvbW11bmljYXRlIHdpdGggVHlwZS1DIGNvbnRyb2xsZXIuDQo+ID4gSTJDIGNsaWVudCBk cml2ZXIgd2lsbCBiZSBwYXJ0IG9mIFVTQiBUeXBlLUMgVUNTSSBkcml2ZXIuDQo+IA0KPiA+ICBk cml2ZXJzL2kyYy9idXNzZXMvaTJjLWdwdS5jICAgICB8IDQ5Mw0KPiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysNCj4gDQo+IENhbiB3ZSBnb3QgbW9yZSBiZXR0ZXIgbmFt ZSwgd2hpY2ggaW5jbHVkZXMgdmVuZG9yIGFuZC9vciBtb2RlbCBvZiB0aGUgSTJDDQo+IGhvc3Q/ DQpTdXJlIHdpbGwgY2hhbmdlIHRvIGkyYy1udmlkaWEtZ3B1LmMNCg0KPiA+ICsvKiBTVEFUVVMg ZGVmaW5pdGlvbnMgICovDQo+ID4gKyNkZWZpbmUgU1RBVFVTX1NVQ0NFU1MgICAgICAgICAgICAg ICAgIDANCj4gPiArI2RlZmluZSBTVEFUVVNfVU5TVUNDRVNTRlVMICAgICAgICAgICAgMHg4MDAw MDAwMFVMDQo+ID4gKyNkZWZpbmUgU1RBVFVTX1RJTUVPVVQgICAgICAgICAgICAgICAgIDB4ODAw MDAwMDFVTA0KPiA+ICsjZGVmaW5lIFNUQVRVU19JT19ERVZJQ0VfRVJST1IgICAgICAgICAweDgw MDAwMDAyVUwNCj4gPiArI2RlZmluZSBTVEFUVVNfSU9fVElNRU9VVCAgICAgICAgICAgICAgMHg4 MDAwMDAwNFVMDQo+ID4gKyNkZWZpbmUgU1RBVFVTX0lPX1BSRUVNUFRFRCAgICAgICAgICAgIDB4 ODAwMDAwMDhVTA0KPiANCj4gTG9va3Mgc2xpZ2h0bHkgZGlmZmVyZW50IGZyb20gbXkgcG9pbnQg b2Ygdmlldywgc29tZXRoaW5nIGxpa2UNCj4gDQo+IC8qIEJpdCAzMSBzaG93cyBlcnJvciBjb25k aXRpb24gd2hpbGUgTFNCIGVuY29kZXMgdGhlIGVycm9yIGNvZGUgKi8NCj4gU1RBVFVTX1RJTUVP VVQgQklUKDApDQo+IC4uLg0KPiBTVEFUVVNfRVJST1IgIEJJVCgzMSkNCldpbGwgZml4Lg0KDQo+ ID4gKyAgICAgICBkZXZfZGJnKGRldiwgIiVzOiAlcCAoSTJDX01TVF9IWUJSSURfUEFEQ1RMKSA8 LSAlMDh4IiwgX19mdW5jX18sDQo+ID4gKyAgICAgICAgICAgICAgIChnZGV2LT5yZWdzICsgSTJD X01TVF9IWUJSSURfUEFEQ1RMKSwgdmFsKTsNCj4gDQo+IFBhcmVucyBhcmUgcmVkdW5kYW50LCBf X2Z1bmNfXyBpcyByZWR1bmRhbnQuDQpXaWxsIGZpeC4NCg0KPiA+ICsgICAgICAgZGV2X2RiZyhk ZXYsICIlczogJXAgKEkyQ19NU1RfSTJDMF9USU1JTkcpIDwtICUwOHgiLCBfX2Z1bmNfXywNCj4g PiArICAgICAgICAgICAgICAgZ2Rldi0+cmVncyArIEkyQ19NU1RfSTJDMF9USU1JTkcsIHZhbCk7 DQo+IA0KPiBEaXR0by4gQ2hlY2sgeW91ciBkZWJ1ZyBtZXNzYWdlcywgYW5kIHBlcmhlcHMgZXZl biBkcm9wIHNvbWUuDQpXaWxsIGZpeC4NCg0KPiA+ICtzdGF0aWMgdTMyIGkyY19jaGVja19zdGF0 dXMoc3RydWN0IGdwdV9pMmNfZGV2ICpnZGV2KQ0KPiA+ICt7DQo+IA0KPiA+ICsgICAgICAgd2hp bGUgKHRpbWVfaXNfYWZ0ZXJfamlmZmllcyh0YXJnZXQpKSB7DQo+ID4gKyAgICAgICB9DQo+IA0K PiBGb3IgZnVuY3Rpb25zIGxpa2UgdGhpcyBiZXR0ZXIgdG8gZ2V0IGluIGEgZm9ybQ0KPiBkbyB7 DQo+IH0gd2hpbGUoKS4NCk9rLCB3aWxsIGZpeC4NCg0KPiBUaGVyZSBpcyBubyBndWFyYW50ZWUg dGhhdCBpdCBydW5zIGV2ZW4gb25jZSBpbiB5b3VyIGNhc2UuDQo+IA0KPiA+ICsgICAgICAgICAg ICAgICBkZXZfZXJyKGRldiwgIiVzaTJjIHRpbWVvdXQiLCBfX2Z1bmNfXyk7DQo+IA0KPiBObyBz cGFjZT8NCk9rLCB3aWxsIGZpeC4NCj4gDQo+ID4gKyAgICAgICB2YWwgPSByZWFkbChnZGV2LT5y ZWdzICsgSTJDX01TVF9EQVRBKTsNCj4gPiArICAgICAgIHN3aXRjaCAobGVuKSB7DQo+ID4gKyAg ICAgICBjYXNlIDE6DQo+ID4gKyAgICAgICAgICAgICAgIGRhdGFbMF0gPSAodmFsID4+IDApICYg MHhmZjsNCj4gPiArICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICBjYXNlIDI6DQo+ ID4gKyAgICAgICAgICAgICAgIGRhdGFbMF0gPSAodmFsID4+IDgpICYgMHhmZjsNCj4gPiArICAg ICAgICAgICAgICAgZGF0YVsxXSA9ICh2YWwgPj4gMCkgJiAweGZmOw0KPiA+ICsgICAgICAgICAg ICAgICBicmVhazsNCj4gPiArICAgICAgIGNhc2UgMzoNCj4gPiArICAgICAgICAgICAgICAgZGF0 YVswXSA9ICh2YWwgPj4gMTYpICYgMHhmZjsNCj4gPiArICAgICAgICAgICAgICAgZGF0YVsxXSA9 ICh2YWwgPj4gOCkgJiAweGZmOw0KPiA+ICsgICAgICAgICAgICAgICBkYXRhWzJdID0gKHZhbCA+ PiAwKSAmIDB4ZmY7DQo+ID4gKyAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgICAgY2Fz ZSA0Og0KPiA+ICsgICAgICAgICAgICAgICBkYXRhWzBdID0gKHZhbCA+PiAyNCkgJiAweGZmOw0K PiA+ICsgICAgICAgICAgICAgICBkYXRhWzFdID0gKHZhbCA+PiAxNikgJiAweGZmOw0KPiA+ICsg ICAgICAgICAgICAgICBkYXRhWzJdID0gKHZhbCA+PiA4KSAmIDB4ZmY7DQo+ID4gKyAgICAgICAg ICAgICAgIGRhdGFbM10gPSAodmFsID4+IDApICYgMHhmZjsNCj4gPiArICAgICAgICAgICAgICAg YnJlYWs7DQo+IA0KPiBSZWR1bmRhbnQgICYgMHhmZi4NCj4gV2UgaGF2ZSBnZXRfdW5hbGlnbmVk KigpLCBwdXRfdW5hbGlnbmVkKigpIGFuZCBtYW55IHZhcmlhdGlvbnMgb2YNCj4gY3B1X3RvX1hl KigpIGFuZCBYZSpfdG9fY3B1KCkuDQpPaywgd2lsbCBmaXguDQo+IA0KPiA+ICsgICAgICAgdTMy IHZhbCA9IDA7DQo+IA0KPiBSZWR1bmRhbnQgYXNzaWdubWVudC4NCk9rLCB3aWxsIGZpeC4NCj4g DQo+ID4gKyAgICAgICB2YWwgPSBhZGRyIDw8IEkyQ19NU1RfQUREUl9EQUI7DQo+IA0KPiA+ICsg ICAgICAgdmFsID0gMDsNCj4gDQo+IERpdHRvLiBXaGF0J3Mgd3Jvbmcgd2l0aCBhc3NpZ24gdmFs dWUgYmVsb3cgZGlyZWN0bHk/DQo+IA0KPiA+ICsgICAgICAgdmFsIHw9IEkyQ19NU1RfQ05UTF9H RU5fU1RBUlQgfCBJMkNfTVNUX0NOVExfQ01EX05PTkUgfA0KPiA+ICsgICAgICAgICAgICAgICBJ MkNfTVNUX0NOVExfR0VOX05BQ0s7DQo+IA0KPiA+ICsgICAgICAgdTMyIHZhbCA9IDA7DQo+IA0K PiBDaGVjayB5b3VyIGNvZGUgZm9yIHRoZXNlIGtpbmQgb2Ygc3R5bGUgbWlzdGFrZXMuDQo+IA0K PiA+ICsvKiBnZGV2IGkyYyBhZGFwdGVyICovDQo+IA0KPiBQb2ludGxlc3MuDQo+IA0KPiA+ICtz dGF0aWMgaW50IGdwdV9pMmNfbWFzdGVyX3hmZXIoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLA0K PiA+ICsgICAgICAgc3RydWN0IGkyY19tc2cgKm1zZ3MsIGludCBudW0pDQo+ID4gK3sNCj4gPiAr ICAgICAgIHN0cnVjdCBncHVfaTJjX2RldiAqZ2RldiA9IGkyY19nZXRfYWRhcGRhdGEoYWRhcCk7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmZ2Rldi0+cGNpX2Rldi0+ZGV2Ow0K PiA+ICsgICAgICAgaW50IHJldHJ5MWIgPSAxMDsNCj4gPiArICAgICAgIHUzMiBzdGF0dXM7DQo+ ID4gKyAgICAgICBpbnQgaSwgajsNCj4gDQo+ID4gKyAgICAgICBnb3RvIGV4aXQ7DQo+ID4gK2V4 aXRfc3RvcDoNCj4gPiArICAgICAgIHN0YXR1cyA9IGkyY19tYW51YWxfc3RvcChnZGV2KTsNCj4g PiArICAgICAgIGlmIChzdGF0dXMgIT0gU1RBVFVTX1NVQ0NFU1MpDQo+ID4gKyAgICAgICAgICAg ICAgIGRldl9lcnIoZGV2LCAiaTJjX21hbnVhbF9zdG9wIGZhaWxlZCAleCIsIHN0YXR1cyk7DQo+ ID4gK2V4aXQ6DQo+ID4gKyAgICAgICBtdXRleF91bmxvY2soJmdkZXYtPm11dGV4KTsNCj4gPiAr ICAgICAgIHJldHVybiBpOw0KPiA+ICt9DQo+IA0KPiBPdWNoISBCZXNpZGVzIG1hbnkgc21hbGwg c3R5bGUgaXNzdWVzIGFuZCByZWR1bmRhbmN5IChsaWtlIF9fTElORV9fKSwNCj4gdGhpcyBmdW5j dGlvbiBuZWVkcyB0byBiZSByZWZhY3RvcmVkIHRvIGZldyBzbWFsbGVyIGFuZCByZWFkYWJsZSBv bmVzLg0KT2ssIHdpbGwgZml4Lg0KPiANCj4gPiArI2RlZmluZSBQQ0lfQ0xBU1NfU0VSSUFMX1VO S05PV04gICAgICAgMHgwYzgwDQo+IA0KPiA+ICsvKiBwY2kgZHJpdmVyICovDQo+IA0KPiBQb2lu dGxlc3MuDQpPaywgd2lsbCBmaXguDQo+IA0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9k ZXZpY2VfaWQgZ3B1X2kyY19pZHNbXSA9IHsNCj4gPiArICAgICAgIHsgUENJX1ZFTkRPUl9JRF9O VklESUEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsDQo+ID4gKyAgICAgICAg ICAgICAgIFBDSV9DTEFTU19TRVJJQUxfVU5LTk9XTiA8PCA4LCAweGZmZmZmZjAwfSwNCj4gDQo+ IEFyZSB5b3Ugc3VyZT8hDQpZZXMsIHdlIHdhbnQgdG8gaWRlbnRpZnkgdXNpbmcgdmVuZG9yIElE IGFuZCBjbGFzcyBjb2RlLiANCkN1cnJlbnRseSB0aGVyZSBpcyBubyBjbGFzcyBjb2RlIGRlZmlu ZWQgZm9yIFVDU0kgZGV2aWNlIG92ZXIgUENJIHNvIHVzaW5nIFVOS05PV04uDQoNCj4gDQo+ID4g KyAgICAgICB7IH0sDQo+IA0KPiBUZXJtaW5hdG9yIGxpbmUgYmV0dGVyIHcvbyBjb21tYS4NCk9r LCB3aWxsIGZpeC4NCj4gDQo+ID4gK307DQo+ID4gK01PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBn cHVfaTJjX2lkcyk7DQo+IA0KPiA+ICtzdGF0aWMgaW50IGdwdV9pMmNfcHJvYmUoc3RydWN0IHBj aV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQNCj4gKmlkKQ0KPiA+ICt7DQo+ ID4gKyAgICAgICBzdHJ1Y3QgZ3B1X2kyY19kZXYgKmdkZXY7DQo+ID4gKyAgICAgICBpbnQgc3Rh dHVzOw0KPiA+ICsNCj4gDQo+ID4gKyAgICAgICBkZXZfaW5mbygmZGV2LT5kZXYsDQo+ID4gKyAg ICAgICAgICAgICAgICJkZXYgJXAgaWQgJTA4eCAlMDh4IHN1YiAlMDh4ICUwOHggY2xhc3MgJTA4 eCAlMDh4XG4iLA0KPiA+ICsgICAgICAgICAgICAgICBkZXYsIGlkLT52ZW5kb3IsIGlkLT5kZXZp Y2UsIGlkLT5zdWJ2ZW5kb3IsIGlkLT5zdWJkZXZpY2UsDQo+ID4gKyAgICAgICAgICAgICAgIGlk LT5jbGFzcywgaWQtPmNsYXNzX21hc2spOw0KPiANCj4gVXNlbGVzcy4gV2UgaGF2ZSBQQ0kgY29y ZSBwcmludGVkIHRoaXMgaW5mb3JtYXRpb24gb3V0IHNldmVyYWwgdGltZXMNCj4gZHVyaW5nIHRo ZSBib290IG9yLCBpZiBjYXJkIGlzIGhvdHBsdWdnYWJsZSwgd2hlbiBpdCdzIHBsdWdnZWQgaW4u DQpPaywgd2lsbCBmaXguDQo+IA0KPiA+ICsgICAgICAgZ2RldiA9IGRldm1fa3phbGxvYygmZGV2 LT5kZXYsIHNpemVvZihzdHJ1Y3QgZ3B1X2kyY19kZXYpLA0KPiBHRlBfS0VSTkVMKTsNCj4gPiAr ICAgICAgIGlmICghZ2RldikNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ IA0KPiA+ICsgICAgICAgc3RhdHVzID0gcGNpX2VuYWJsZV9kZXZpY2UoZGV2KTsNCj4gDQo+IFVz aW5nIGRldm1fIHdpdGhvdXQgcGNpbV8gc291bmQgc2xpZ2h0bHkgaW5jb25zaXN0ZW50Lg0KT2ss IHdpbGwgZml4Lg0KPiANCj4gPiArICAgICAgIHN0YXR1cyA9IHBjaV9lbmFibGVfbXNpKGRldik7 DQo+IA0KPiBUaGlzIGRvbmUgaW4gdGhlIG90aGVyIHdheS4gQ2hlY2sgcGNpX2FsbG9jX2lycV92 ZWN0b3JzKCksIElJUkMuDQpzdXJlLCB3aWxsIGZpeC4NCj4gDQo+ID4gK2kyY19pbml0X2VycjoN Cj4gPiArICAgICAgIHBjaV9kaXNhYmxlX21zaShkZXYpOw0KPiA+ICtlbmFibGVfbXNpX2VycjoN Cj4gPiArICAgICAgIHBjaV9pb3VubWFwKGRldiwgZ2Rldi0+cmVncyk7DQo+ID4gK2lvbWFwX2Vy cjoNCj4gPiArICAgICAgIHBjaV9kaXNhYmxlX2RldmljZShkZXYpOw0KPiANCj4gQXQgbGVhc3Qg YWJvdmUgd2lsbCBnb25lIGFmdGVyIHN3aXRjaGluZyB0byBwY2ltXw0KPiANCj4gPiArICAgICAg IHBjaV9kaXNhYmxlX21zaShkZXYpOw0KPiA+ICsgICAgICAgcGNpX2lvdW5tYXAoZGV2LCBnZGV2 LT5yZWdzKTsNCj4gDQo+IFNhbWUuDQo+IA0KPiA+ICsgICAgICAgZGV2X2RiZyhkZXYsICIlc1xu IiwgX19mdW5jX18pOw0KPiANCj4gUG9pbnRsZXNzLiBXZSBoYXZlIGZ0cmFjZSwgZm9yIGV4YW1w bGUgdG8gc2VlIHRoaXMuDQo+IA0KPiA+ICsgICAgICAgZGV2X2RiZyhkZXYsICIlc1xuIiwgX19m dW5jX18pOw0KPiANCj4gRGl0dG8uDQo+IA0KPiANClRoYW5rcw0KQWpheQ0KLS0NCm52cHVibGlj DQotLQ0KDQo+IC0tDQo+IFdpdGggQmVzdCBSZWdhcmRzLA0KPiBBbmR5IFNoZXZjaGVua28K