Re: [PATCH v3 04/21] pinctrl: starfive: Add StarFive JHB100 sys0 controller driver
Changhuang Liang <[email protected]> Mon, 3 Aug 2026 09:56:22 +0000
| Newsgroups | org.kernel.vger.linux-gpio,org.infradead.lists.linux-riscv,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <ZQ4PR01MB1202DC395D0213BABE68FF31F2D52@ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn> |
SGksIGxpbnVzDQoNClRoYW5rcyBmb3IgdGhlIHJldmlldy4NCg0KPiBPbiBUaHUsIEp1bCAzMCwg MjAyNiBhdCAxMjo1OOKAr1BNIENoYW5naHVhbmcgTGlhbmcNCj4gPGNoYW5naHVhbmcubGlhbmdA c3RhcmZpdmV0ZWNoLmNvbT4gd3JvdGU6DQo+IA0KPiA+ID4gSWYgYSBwaW4gY29udHJvbGxlciBi YWNrLWVuZCBpcyB1c2VkLCB0aGUgR1BJTyBjb250cm9sbGVyIG9yDQo+ID4gPiBoYXJkd2FyZSBk ZXNjcmlwdGlvbiBuZWVkcyB0byBwcm92aWRlICJHUElPIHJhbmdlcyIgbWFwcGluZyB0aGUgR1BJ Tw0KPiA+ID4gbGluZSBvZmZzZXRzIHRvIHBpbiBudW1iZXJzIG9uIHRoZSBwaW4gY29udHJvbGxl ciBzbyB0aGV5IGNhbg0KPiA+ID4gcHJvcGVybHkgY3Jvc3MtcmVmZXJlbmNlIGVhY2ggb3RoZXIu Ig0KPiA+DQo+ID4gSSB0cmllZCB0aGlzIGNoYW5nZSwgYnV0IGl0IGRvZXNuJ3Qgd29yay4gSW4g bXkgbmV3IHZlcnNpb24sIHRoZSBHUElPDQo+ID4gZGlyZWN0aW9uIGlzIHNldCB2aWEgdGhlIGBz dHJ1Y3QgcGlubXV4X29wcyAuZ3Bpb19zZXRfZGlyZWN0aW9uYA0KPiA+IGNhbGxiYWNrLCB3aGlj aCBpcyBleGVjdXRlZCBhZnRlciBgbXV0ZXhfbG9jaygmcGN0bGRldi0+bXV0ZXgpO2AuIEkNCj4g PiBuZWVkIHRvIGNvbmZpZ3VyZSBzb21lIHBpbmNvbmYgc2V0dGluZ3Mgd2hpbGUgc2V0dGluZyB0 aGUgR1BJTyBkaXJlY3Rpb24NCj4gaW5zaWRlIGAuZ3Bpb19zZXRfZGlyZWN0aW9uYCwgZm9yIGV4 YW1wbGU6DQo+ID4NCj4gPiAgICAgY29uZmlnID0gcGluY29uZl90b19jb25maWdfcGFja2VkKFBJ Tl9DT05GSUdfSU5QVVRfRU5BQkxFLCAwKTsNCj4gPiAgICAgcmV0ID0gcGluY3RybF9ncGlvX3Nl dF9jb25maWcoZ2MsIGdwaW8sIGNvbmZpZyk7DQo+ID4NCj4gPiBIb3dldmVyLCBgcGluY3RybF9n cGlvX3NldF9jb25maWdgIHdpbGwgYWdhaW4gYWNxdWlyZSB0aGUgbG9jayB3aXRoDQo+ID4gYG11 dGV4X2xvY2soJnBjdGxkZXYtPm11dGV4KTtgLg0KPiA+DQo+ID4gU28gdGhpcyBhcHByb2FjaCBt YXkgbm8gbG9uZ2VyIHdvcms/DQo+IA0KPiBJIGNhbid0IHNlZSBhbGwgeW91ciBjb2RlIHNvIEkg ZG9uJ3Qga25vdyBleGFjdGx5IHdoeSB0aGlzIGhhcHBlbnMsIGJ1dA0KPiBub21pbmFsbHkgeW91 IGltcGxlbWVudCB0aGUgR1BJTyBoZWxwZXJzOg0KPiANCj4gc3RydWN0IHBpbm11eF9vcHMgew0K PiAoLi4uKQ0KPiAgICAgICAgIGludCAoKmdwaW9fcmVxdWVzdF9lbmFibGUpIChzdHJ1Y3QgcGlu Y3RybF9kZXYgKnBjdGxkZXYsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBwaW5jdHJsX2dwaW9fcmFuZ2UNCj4gKnJhbmdlLA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0KTsNCj4gICAgICAgICB2b2lk ICgqZ3Bpb19kaXNhYmxlX2ZyZWUpIChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBpbmN0cmxfZ3Bpb19yYW5n ZSAqcmFuZ2UsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IG9mZnNldCk7DQo+ICAgICAgICAgaW50ICgqZ3Bpb19zZXRfZGlyZWN0aW9uKSAoc3RydWN0 IHBpbmN0cmxfZGV2ICpwY3RsZGV2LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBwaW5jdHJsX2dwaW9fcmFuZ2UgKnJhbmdlLA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQsDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYm9vbCBpbnB1dCk7DQo+IA0KPiBUaGVuIG9uIHRoZSBHUElP IHNpZGU6DQo+IA0KPiBzdGF0aWMgaW50IG15X2dwaW9fZGlyZWN0aW9uX2lucHV0KHN0cnVjdCBn cGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIGludCBvZmZzZXQpDQo+IHsNCj4gICAgICAgICByZXR1 cm4gcGluY3RybF9ncGlvX2RpcmVjdGlvbl9pbnB1dChjaGlwLCBvZmZzZXQpOyB9DQo+IA0KPiBz dGF0aWMgaW50IG15X2dwaW9fZGlyZWN0aW9uX291dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlw LCB1bnNpZ25lZCBpbnQNCj4gb2Zmc2V0LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgdmFsdWUpIHsNCj4gICAgICAgICBpbnQgcmV0Ow0KPiANCj4gICAgICAg ICByZXQgPSBteV9ncGlvX3NldChjaGlwLCBvZmZzZXQsIHZhbHVlKTsNCj4gICAgICAgICBpZiAo cmV0KQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gDQo+ICAgICAgICAgcmV0dXJu IHBpbmN0cmxfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KGNoaXAsIG9mZnNldCk7IH0NCj4gDQo+IHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZ3Bpb19jaGlwIG15X2dwaW9fY2hpcCA9IHsNCj4gICAgICAgICAu ZGlyZWN0aW9uX2lucHV0ID0gbXlfZ3Bpb19kaXJlY3Rpb25faW5wdXQsDQo+ICAgICAgICAgLmRp cmVjdGlvbl9vdXRwdXQgPSBteV9ncGlvX2RpcmVjdGlvbl9vdXRwdXQsDQo+ICAgICAgICAgLnNl dF9jb25maWcgPSBncGlvY2hpcF9nZW5lcmljX2NvbmZpZywgfTsNCj4gDQo+IEFuZCB0aGVzZSB3 aWxsIGNhbGwgaW50byB0aGUgcGluIGNvbnRyb2xsZXIgYmFja2VuZCBmb3IgeW91LCBzbyB5b3Ug ZG8gbm90IG5lZWQNCj4gdG8gc2V0IHRoaXMgeW91cnNlbGY/DQoNCkNvcHkgZnJvbSB2NDogLS0t LS0tLS0tLS06DQoNCnN0YXRpYyBpbnQgamhiMTAwX2dwaW9fZGlyZWN0aW9uX2lucHV0KHN0cnVj dCBncGlvX2NoaXAgKmdjLA0KCQkJCSAgICAgICB1bnNpZ25lZCBpbnQgZ3BpbykNCnsNCglzdHJ1 Y3QgamhiMTAwX2dwaW9fYmFuayAqYmFuayA9IGpoYjEwMF9nY190b19iYW5rKGdjKTsNCglzdHJ1 Y3QgamhiMTAwX3BpbmN0cmwgKnNmcCA9IGdwaW9jaGlwX2dldF9kYXRhKGdjKTsNCgljb25zdCBz dHJ1Y3QgamhiMTAwX3BpbmN0cmxfZG9tYWluX2luZm8gKmluZm8gPSBzZnAtPmluZm87DQoJY29u c3Qgc3RydWN0IGNvbmZpZ19yZWdfbGF5b3V0X2Rlc2MgKmNybF9kZXNjOw0KCXVuc2lnbmVkIGlu dCBwaW4gPSBqaGIxMDBfZ3Bpb190b19waW4oZ2MsIGdwaW8pOw0KCXVuc2lnbmVkIGludCBvZmZz ZXQgPSA0ICogYmFuay0+aWQ7DQoJdm9pZCBfX2lvbWVtICpyZWdfZ3Bpb19vZW47DQoJdTMyIGRv ZW4gPSAwOw0KDQoJY3JsX2Rlc2MgPSBnZXRfY3JsX2Rlc2NfYnlfcGluKHNmcCwgcGluKTsNCglp ZiAoIWNybF9kZXNjKSB7DQoJCWRldl9lcnIoc2ZwLT5kZXYsICJwaW4gJWQgY2FuJ3Qgbm90IGZv dW5kIHJlZyBsYXlvdXQgZGVzY3JpcHRvclxuIiwNCgkJCXBpbik7DQoJCXJldHVybiAtRUlOVkFM Ow0KCX0NCg0KCWpoYjEwMF9wYWRjZmdfcm13KHNmcCwgcGluLA0KCQkJICBSTF9ERVNDX0dFTk1B U0soY3JsX2Rlc2MsIFBBRF9DRkdfSU5QVVRfRU5BQkxFKSB8DQoJCQkgIFJMX0RFU0NfR0VOTUFT SyhjcmxfZGVzYywgUEFEX0NGR19TQ0hNSVRUX1RSSUdHRVJfU0VMRUNUKSwNCgkJCSAgUkxfREVT Q19HRU5NQVNLKGNybF9kZXNjLCBQQURfQ0ZHX0lOUFVUX0VOQUJMRSkgfA0KCQkJICBSTF9ERVND X0dFTk1BU0soY3JsX2Rlc2MsIFBBRF9DRkdfU0NITUlUVF9UUklHR0VSX1NFTEVDVCkpOw0KDQoJ cmVnX2dwaW9fb2VuID0gc2ZwLT5iYXNlICsgaW5mby0+cmVncy0+b3V0cHV0X2VuICsgb2Zmc2V0 Ow0KDQoJZ3VhcmQocmF3X3NwaW5sb2NrX2lycXNhdmUpKCZzZnAtPmxvY2spOw0KCWRvZW4gPSBy ZWFkbF9yZWxheGVkKHJlZ19ncGlvX29lbikgfCBCSVQoZ3Bpbyk7DQoJd3JpdGVsX3JlbGF4ZWQo ZG9lbiwgcmVnX2dwaW9fb2VuKTsNCg0KCXJldHVybiAwOw0KfQ0KDQpzdGF0aWMgaW50IGpoYjEw MF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQoc3RydWN0IGdwaW9fY2hpcCAqZ2MsIHVuc2lnbmVkIGlu dCBncGlvKQ0Kew0KCXN0cnVjdCBqaGIxMDBfZ3Bpb19iYW5rICpiYW5rID0gamhiMTAwX2djX3Rv X2JhbmsoZ2MpOw0KCXN0cnVjdCBqaGIxMDBfcGluY3RybCAqc2ZwID0gZ3Bpb2NoaXBfZ2V0X2Rh dGEoZ2MpOw0KCWNvbnN0IHN0cnVjdCBqaGIxMDBfcGluY3RybF9kb21haW5faW5mbyAqaW5mbyA9 IHNmcC0+aW5mbzsNCgljb25zdCBzdHJ1Y3QgY29uZmlnX3JlZ19sYXlvdXRfZGVzYyAqY3JsX2Rl c2M7DQoJdW5zaWduZWQgaW50IHBpbiA9IGpoYjEwMF9ncGlvX3RvX3BpbihnYywgZ3Bpbyk7DQoJ dW5zaWduZWQgaW50IG9mZnNldCA9IDQgKiBiYW5rLT5pZDsNCgl2b2lkIF9faW9tZW0gKnJlZ19n cGlvX29lbjsNCgl1MzIgZG9lbiA9IDA7DQoNCgljcmxfZGVzYyA9IGdldF9jcmxfZGVzY19ieV9w aW4oc2ZwLCBwaW4pOw0KCWlmICghY3JsX2Rlc2MpIHsNCgkJZGV2X2VycihzZnAtPmRldiwgInBp biAlZCBjYW4ndCBub3QgZm91bmQgcmVnIGxheW91dCBkZXNjcmlwdG9yXG4iLA0KCQkJcGluKTsN CgkJcmV0dXJuIC1FSU5WQUw7DQoJfQ0KDQoJamhiMTAwX3BhZGNmZ19ybXcoc2ZwLCBwaW4sDQoJ CQkgIFJMX0RFU0NfR0VOTUFTSyhjcmxfZGVzYywgUEFEX0NGR19JTlBVVF9FTkFCTEUpIHwNCgkJ CSAgUkxfREVTQ19HRU5NQVNLKGNybF9kZXNjLCBQQURfQ0ZHX1NDSE1JVFRfVFJJR0dFUl9TRUxF Q1QpIHwNCgkJCSAgUkxfREVTQ19HRU5NQVNLKGNybF9kZXNjLCBQQURfQ0ZHX1BVTExfRE9XTikg fA0KCQkJICBSTF9ERVNDX0dFTk1BU0soY3JsX2Rlc2MsIFBBRF9DRkdfUFVMTF9VUCksDQoJCQkg IDApOw0KDQoJcmVnX2dwaW9fb2VuID0gc2ZwLT5iYXNlICsgaW5mby0+cmVncy0+b3V0cHV0X2Vu ICsgb2Zmc2V0Ow0KDQoJZ3VhcmQocmF3X3NwaW5sb2NrX2lycXNhdmUpKCZzZnAtPmxvY2spOw0K CWRvZW4gPSByZWFkbF9yZWxheGVkKHJlZ19ncGlvX29lbikgJiB+QklUKGdwaW8pOw0KCXdyaXRl bF9yZWxheGVkKGRvZW4sIHJlZ19ncGlvX29lbik7DQoNCglyZXR1cm4gMDsNCn0NCg0Kc3RhdGlj IGludCBqaGIxMDBfZ3Bpb19zZXRfZGlyZWN0aW9uKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRl diwNCgkJCQkgICAgIHN0cnVjdCBwaW5jdHJsX2dwaW9fcmFuZ2UgKnJhbmdlLA0KCQkJCSAgICAg dW5zaWduZWQgaW50IHBpbiwNCgkJCQkgICAgIGJvb2wgaW5wdXQpDQp7DQoJc3RydWN0IGpoYjEw MF9waW5jdHJsICpzZnAgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsNCgl1bnNp Z25lZCBpbnQgaWQgPSBwaW4gLyBKSEIxMDBfTlJfR1BJT1NfUEVSX0JBTks7DQoJdW5zaWduZWQg aW50IGdwaW8gPSBwaW4gJSBKSEIxMDBfTlJfR1BJT1NfUEVSX0JBTks7DQoNCglpZiAoaW5wdXQp DQoJCXJldHVybiBqaGIxMDBfZ3Bpb19kaXJlY3Rpb25faW5wdXQoJnNmcC0+YmFua3NbaWRdLmNo aXAuZ2MsIGdwaW8pOw0KDQoJcmV0dXJuIGpoYjEwMF9ncGlvX2RpcmVjdGlvbl9vdXRwdXQoJnNm cC0+YmFua3NbaWRdLmNoaXAuZ2MsIGdwaW8pOw0KfQ0KDQpzdGF0aWMgY29uc3Qgc3RydWN0IHBp bm11eF9vcHMgamhiMTAwX3Bpbm11eF9vcHMgPSB7DQoJLmdldF9mdW5jdGlvbnNfY291bnQJPSBw aW5tdXhfZ2VuZXJpY19nZXRfZnVuY3Rpb25fY291bnQsDQoJLmdldF9mdW5jdGlvbl9uYW1lCT0g cGlubXV4X2dlbmVyaWNfZ2V0X2Z1bmN0aW9uX25hbWUsDQoJLmdldF9mdW5jdGlvbl9ncm91cHMJ PSBwaW5tdXhfZ2VuZXJpY19nZXRfZnVuY3Rpb25fZ3JvdXBzLA0KCS5zZXRfbXV4CQk9IGpoYjEw MF9zZXRfbXV4LA0KCS5ncGlvX3JlcXVlc3RfZW5hYmxlCT0gamhiMTAwX2dwaW9fcmVxdWVzdF9l bmFibGUsDQoJLmdwaW9fc2V0X2RpcmVjdGlvbgk9IGpoYjEwMF9ncGlvX3NldF9kaXJlY3Rpb24s DQp9Ow0KDQpZZXMsIEkgc2VudCB0aGUgbmV3IHZlcnNpb24gYXMgYWJvdmUuIEhvd2V2ZXIsIEkg c3RpbGwga2VwdCBqaGIxMDBfZ3Bpb190b19waW4oKSBpbiBqaGIxMDBfZ3Bpb19kaXJlY3Rpb25f aW5wdXQoKS4gDQpUaGUgZmlyc3QgdGltZSBJIHdhbnRlZCB0byByZXBsYWNlIHRoaXMgcGFydDoN Cg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnVuc2lnbmVkIGludCBwaW4gPSBqaGIxMDBfZ3Bpb190 b19waW4oZ2MsIGdwaW8pOw0KDQpqaGIxMDBfcGFkY2ZnX3JtdyhzZnAsIHBpbiwNCiAgICAgICAg ICBSTF9ERVNDX0dFTk1BU0soY3JsX2Rlc2MsIFBBRF9DRkdfSU5QVVRfRU5BQkxFKSB8DQogICAg ICAgICAgUkxfREVTQ19HRU5NQVNLKGNybF9kZXNjLCBQQURfQ0ZHX1NDSE1JVFRfVFJJR0dFUl9T RUxFQ1QpLA0KICAgICAgICAgIFJMX0RFU0NfR0VOTUFTSyhjcmxfZGVzYywgUEFEX0NGR19JTlBV VF9FTkFCTEUpIHwNCiAgICAgICAgICBSTF9ERVNDX0dFTk1BU0soY3JsX2Rlc2MsIFBBRF9DRkdf U0NITUlUVF9UUklHR0VSX1NFTEVDVCkpOw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCndpdGgNCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KY29uZmlnID0gcGluY29uZl90b19jb25maWdfcGFja2VkKFBJ Tl9DT05GSUdfSU5QVVRfRU5BQkxFLCAxKTsNCnJldCA9IHBpbmN0cmxfZ3Bpb19zZXRfY29uZmln KGdjLCBncGlvLCBjb25maWcpOw0KDQpjb25maWcgPSBwaW5jb25mX3RvX2NvbmZpZ19wYWNrZWQo UEFEX0NGR19TQ0hNSVRUX1RSSUdHRVJfU0VMRUNULCAxKTsNCnJldCA9IHBpbmN0cmxfZ3Bpb19z ZXRfY29uZmlnKGdjLCBncGlvLCBjb25maWcpOw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpI b3dldmVyLCBkdXJpbmcgdGVzdGluZywgSSBmb3VuZCBhIHJlY3Vyc2l2ZSBsb2NrIGlzc3VlOg0K DQpwaW5jdHJsX2dwaW9fZGlyZWN0aW9uKCkNCiAgbXV0ZXhfbG9jaygmcGN0bGRldi0+bXV0ZXgp Ow0KICAtPiBwaW5tdXhfZ3Bpb19kaXJlY3Rpb24oKQ0KICAgLT4gb3BzLT5ncGlvX3NldF9kaXJl Y3Rpb24NCgktPiBqaGIxMDBfZ3Bpb19zZXRfZGlyZWN0aW9uKCkNCiAgICAgLT4gamhiMTAwX2dw aW9fZGlyZWN0aW9uX2lucHV0KCkNCgkgIC0+IHBpbmN0cmxfZ3Bpb19zZXRfY29uZmlnKCkNCiAg ICAgICAtPiBwaW5jdHJsX2dldF9kZXZpY2VfZ3Bpb19yYW5nZSgpDQogICAgICAgIC0+IHBpbmN0 cmxfbWF0Y2hfZ3Bpb19yYW5nZSgpDQogICAgICAgICAtPiBtdXRleF9sb2NrKCZwY3RsZGV2LT5t dXRleCk7ICA9PT09PiAgRXhlY3V0ZXMgbXV0ZXhfbG9jaygmcGN0bGRldi0+bXV0ZXgpOyBhZ2Fp bg0KICBtdXRleF91bmxvY2soJnBjdGxkZXYtPm11dGV4KTsNCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCg0KU28gaW4gdjQsIEkgdGVtcG9yYXJpbHkga2VwdCBqaGIxMDBf Z3Bpb190b19waW4oKS4NCg0KQmVzdCBSZWdhcmRzLA0KQ2hhbmdodWFuZw0K