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.infradead.lists.linux-riscv,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-gpio,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
Z3Bpb190b19waW4oKS4NCg0KQmVzdCBSZWdhcmRzLA0KQ2hhbmdodWFuZw0KX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBs
aXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh
ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=