[PATCH v9 06/12] clk: zte: Add regmap-based clocks
Stefan Dösinger <[email protected]> Sun, 02 Aug 2026 23:33:38 +0300
| Newsgroups | org.infradead.lists.linux-phy,dev.linux.lists.mfd,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
VGhpcyBpcyBiYXNlZCBvbiBtZXNvbi9jbGstcmVnbWFwLmMsIGFsdGhvdWdoIHNsaWdodGx5IHNp bXBsaWZpZWQuIEkKaGF2ZSBrZXB0IHRoZSBjb3B5cmlnaHQgbGluZXMgYXQgdGhlIHRvcCBvZiB0 aGUgZmlsZSB0byBpbmRpY2F0ZSBpdHMKb3JpZ2luLgoKSSBzZWUgdGhhdCBudW1lcm91cyBjbG9j ayBkcml2ZXJzIGhhdmUgdGhlaXIgb3duIGluY2FybmF0aW9uIG9mIHJlZ21hcC0KYmFzZWQgbXV4 L2Rpdi9nYXRlIGNsb2Nrcy4gSWYgdGhlcmUgaXMgYW55IHZlcnNpb24gb2YgaXQgdGhhdCBpcyBs aWtlbHkKdG8gYmUgZWxldmF0ZWQgdG8gc2hhcmVkIGNvZGUgbGlrZSBjbGstZ2F0ZS5jIEknbGwg Y29weSB0aGF0IGFuZCB0cnkgdG8KdXNlIGl0IGFzIHVubW9kaWZpZWQgYXMgcG9zc2libGUuCgpT aWduZWQtb2ZmLWJ5OiBTdGVmYW4gRMO2c2luZ2VyIDxzdGVmYW5kb2VzaW5nZXJAZ21haWwuY29t PgoKLS0tCgpWZXJzaW9uIDk6ClJlZ2lzdGVyIHNpbmdsZSBjbG9ja3MgcGVyIGZ1bmN0aW9uIGlu dm9jYXRpb24sIHJlbW92ZQpaWDI5NzUyMFYzX0NMS19OT19FWFBPUlQgYWdhaW4KClZlcnNpb24g ODogVXNlIFpYMjk3NTIwVjNfQ0xLX05PX0VYUE9SVCBpbnN0ZWFkIG9mIDAgZm9yIHVuZXhwb3J0 ZWQgY2xvY2tzLgoKVmVyc2lvbiA2OiBSZW1vdmUgc3RyYXkgcmVnbWFwIChTYXNoaWtvKQoKVmVy c2lvbiA1OiBVc2UgcmVnbWFwX3Rlc3RfYml0cyBpbiB6dGVfY2xrX3JlZ21hcF9nYXRlX2lzX2Vu YWJsZWQKLS0tCiBkcml2ZXJzL2Nsay96dGUvY2xrLXJlZ21hcC5jIHwgMjE5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMTIgaW5z ZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay96dGUv Y2xrLXJlZ21hcC5jIGIvZHJpdmVycy9jbGsvenRlL2Nsay1yZWdtYXAuYwppbmRleCA4MDMzMmRi YTk3ZjYuLjAyMmIyYmU3YmIzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvenRlL2Nsay1yZWdt YXAuYworKysgYi9kcml2ZXJzL2Nsay96dGUvY2xrLXJlZ21hcC5jCkBAIC0xLDMyICsxLDIzNyBA QAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIC8qCisgKiBDb3B5cmlnaHQg KGMpIDIwMTggQmF5TGlicmUsIFNBUy4KICAqIENvcHlyaWdodCAoYykgMjAyNiBTdGVmYW4gRMO2 c2luZ2VyCiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4KICNpbmNsdWRlIDxsaW51eC9j bGstcHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9jb250YWluZXJfb2YuaD4KICNpbmNsdWRl IDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51 eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+CiAKICNpbmNsdWRlICJjbGstenguaCIKIAorc3RydWN0IHp0ZV9jbGtfcmVnbWFwIHsK KwlzdHJ1Y3QgY2xrX2h3CWh3OworCXN0cnVjdCByZWdtYXAJKm1hcDsKKwl1MTYJCXJlZzsKKwl1 OAkJc2hpZnQ7CisJdTgJCXNpemU7Cit9OworCitzdGF0aWMgaW5saW5lIHN0cnVjdCB6dGVfY2xr X3JlZ21hcCAqdG9fenRlX2Nsa19yZWdtYXAoc3RydWN0IGNsa19odyAqaHcpCit7CisJcmV0dXJu IGNvbnRhaW5lcl9vZihodywgc3RydWN0IHp0ZV9jbGtfcmVnbWFwLCBodyk7Cit9CisKK3N0YXRp YyBpbnQgenRlX2Nsa19yZWdtYXBfZ2F0ZV9lbmFibGUoc3RydWN0IGNsa19odyAqaHcpCit7CisJ c3RydWN0IHp0ZV9jbGtfcmVnbWFwICpjbGsgPSB0b196dGVfY2xrX3JlZ21hcChodyk7CisKKwly ZXR1cm4gcmVnbWFwX3NldF9iaXRzKGNsay0+bWFwLCBjbGstPnJlZywgQklUKGNsay0+c2hpZnQp KTsKK30KKworc3RhdGljIHZvaWQgenRlX2Nsa19yZWdtYXBfZ2F0ZV9kaXNhYmxlKHN0cnVjdCBj bGtfaHcgKmh3KQoreworCXN0cnVjdCB6dGVfY2xrX3JlZ21hcCAqY2xrID0gdG9fenRlX2Nsa19y ZWdtYXAoaHcpOworCisJcmVnbWFwX2NsZWFyX2JpdHMoY2xrLT5tYXAsIGNsay0+cmVnLCBCSVQo Y2xrLT5zaGlmdCkpOworfQorCitzdGF0aWMgaW50IHp0ZV9jbGtfcmVnbWFwX2dhdGVfaXNfZW5h YmxlZChzdHJ1Y3QgY2xrX2h3ICpodykKK3sKKwlzdHJ1Y3QgenRlX2Nsa19yZWdtYXAgKmNsayA9 IHRvX3p0ZV9jbGtfcmVnbWFwKGh3KTsKKworCXJldHVybiByZWdtYXBfdGVzdF9iaXRzKGNsay0+ bWFwLCBjbGstPnJlZywgQklUKGNsay0+c2hpZnQpKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVj dCBjbGtfb3BzIHp0ZV9jbGtfcmVnbWFwX2dhdGVfb3BzID0geworCS5lbmFibGUJCT0genRlX2Ns a19yZWdtYXBfZ2F0ZV9lbmFibGUsCisJLmRpc2FibGUJPSB6dGVfY2xrX3JlZ21hcF9nYXRlX2Rp c2FibGUsCisJLmlzX2VuYWJsZWQJPSB6dGVfY2xrX3JlZ21hcF9nYXRlX2lzX2VuYWJsZWQsCit9 OworCiBzdHJ1Y3QgY2xrX2h3ICp6eF9jbGtfcmVnaXN0ZXJfZ2F0ZShzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCByZWdtYXAgKnJlZ21hcCwKLQkJCQkgICAgY29uc3Qgc3RydWN0IHp4X2dhdGVf ZGVzYyAqZGVzYywKLQkJCQkgICAgc3RydWN0IGNsa19odyAqIGNvbnN0ICpjbG9ja3MpCisJCQkJ ICAgIGNvbnN0IHN0cnVjdCB6eF9nYXRlX2Rlc2MgKmRlc2MsIHN0cnVjdCBjbGtfaHcgKiBjb25z dCAqY2xvY2tzKQoreworCXN0cnVjdCBjbGtfcGFyZW50X2RhdGEgcGFyZW50ID0genhfZ2V0X3Bh cmVudCgmZGVzYy0+cGFyZW50LCBjbG9ja3MpOworCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQg PSB7fTsKKwlzdHJ1Y3QgenRlX2Nsa19yZWdtYXAgKmNsazsKKwlpbnQgcmVzOworCisJY2xrID0g ZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpjbGspLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNsaykK KwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwlpbml0Lm5hbWUgPSBkZXNjLT5uYW1lOwor CWluaXQub3BzID0gJnp0ZV9jbGtfcmVnbWFwX2dhdGVfb3BzOworCWluaXQucGFyZW50X2RhdGEg PSAmcGFyZW50OworCWluaXQubnVtX3BhcmVudHMgPSAxOworCWluaXQuZmxhZ3MgPSBDTEtfU0VU X1JBVEVfUEFSRU5UIHwgZGVzYy0+ZmxhZ3M7CisJY2xrLT5ody5pbml0ID0gJmluaXQ7CisJY2xr LT5tYXAgPSByZWdtYXA7CisJY2xrLT5yZWcgPSBkZXNjLT5yZWc7CisJY2xrLT5zaGlmdCA9IGRl c2MtPnNoaWZ0OworCWNsay0+c2l6ZSA9IDE7CisKKwlyZXMgPSBkZXZtX2Nsa19od19yZWdpc3Rl cihkZXYsICZjbGstPmh3KTsKKwlpZiAocmVzKQorCQlyZXR1cm4gRVJSX1BUUihyZXMpOworCisJ cmV0dXJuICZjbGstPmh3OworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyB6dGVfY2xrX3JlZ21h cF9kaXZfcmVjYWxjX3JhdGUoc3RydWN0IGNsa19odyAqaHcsCisJCQkJCQkgICAgdW5zaWduZWQg bG9uZyBwcmF0ZSkKK3sKKwlzdHJ1Y3QgenRlX2Nsa19yZWdtYXAgKmNsayA9IHRvX3p0ZV9jbGtf cmVnbWFwKGh3KTsKKwl1bnNpZ25lZCBpbnQgdmFsOworCWludCByZXQ7CisKKwlyZXQgPSByZWdt YXBfcmVhZChjbGstPm1hcCwgY2xrLT5yZWcsICZ2YWwpOworCWlmIChyZXQpCisJCXJldHVybiAw OyAvKiBHaXZlcyBhIGhpbnQgdGhhdCBzb21ldGhpbmcgaXMgd3JvbmcgKi8KKworCXZhbCA+Pj0g Y2xrLT5zaGlmdDsKKwl2YWwgJj0gY2xrX2Rpdl9tYXNrKGNsay0+c2l6ZSk7CisKKwlyZXR1cm4g ZGl2aWRlcl9yZWNhbGNfcmF0ZShodywgcHJhdGUsIHZhbCwgTlVMTCwgMCwgY2xrLT5zaXplKTsK K30KKworc3RhdGljIGludCB6dGVfY2xrX3JlZ21hcF9kaXZfZGV0ZXJtaW5lX3JhdGUoc3RydWN0 IGNsa19odyAqaHcsCisJCQkJCSAgICAgc3RydWN0IGNsa19yYXRlX3JlcXVlc3QgKnJlcSkKK3sK KwlzdHJ1Y3QgenRlX2Nsa19yZWdtYXAgKmNsayA9IHRvX3p0ZV9jbGtfcmVnbWFwKGh3KTsKKwor CXJldHVybiBkaXZpZGVyX2RldGVybWluZV9yYXRlKGh3LCByZXEsIE5VTEwsIGNsay0+c2l6ZSwg MCk7Cit9CisKK3N0YXRpYyBpbnQgenRlX2Nsa19yZWdtYXBfZGl2X3NldF9yYXRlKHN0cnVjdCBj bGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCisJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcg cGFyZW50X3JhdGUpCiB7Ci0JcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7CisJc3RydWN0IHp0ZV9j bGtfcmVnbWFwICpjbGsgPSB0b196dGVfY2xrX3JlZ21hcChodyk7CisJdW5zaWduZWQgaW50IHZh bDsKKwlpbnQgcmV0OworCisJcmV0ID0gZGl2aWRlcl9nZXRfdmFsKHJhdGUsIHBhcmVudF9yYXRl LCBOVUxMLCBjbGstPnNpemUsIDApOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJ dmFsID0gKHVuc2lnbmVkIGludClyZXQgPDwgY2xrLT5zaGlmdDsKKworCXJldHVybiByZWdtYXBf dXBkYXRlX2JpdHMoY2xrLT5tYXAsIGNsay0+cmVnLCBjbGtfZGl2X21hc2soY2xrLT5zaXplKSA8 PCBjbGstPnNoaWZ0LCB2YWwpOwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgenRl X2Nsa19yZWdtYXBfZGl2aWRlcl9vcHMgPSB7CisJLnJlY2FsY19yYXRlID0genRlX2Nsa19yZWdt YXBfZGl2X3JlY2FsY19yYXRlLAorCS5kZXRlcm1pbmVfcmF0ZSA9IHp0ZV9jbGtfcmVnbWFwX2Rp dl9kZXRlcm1pbmVfcmF0ZSwKKwkuc2V0X3JhdGUgPSB6dGVfY2xrX3JlZ21hcF9kaXZfc2V0X3Jh dGUsCit9OworCiBzdHJ1Y3QgY2xrX2h3ICp6eF9jbGtfcmVnaXN0ZXJfZGl2aWRlcihzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCByZWdtYXAgKnJlZ21hcCwKIAkJCQkgICAgICAgY29uc3Qgc3Ry dWN0IHp4X2Rpdl9kZXNjICpkZXNjLAogCQkJCSAgICAgICBzdHJ1Y3QgY2xrX2h3ICogY29uc3Qg KmNsb2NrcykKIHsKLQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKKwlzdHJ1Y3QgY2xrX3BhcmVu dF9kYXRhIHBhcmVudCA9IHp4X2dldF9wYXJlbnQoJmRlc2MtPnBhcmVudCwgY2xvY2tzKTsKKwlz dHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0ID0ge307CisJc3RydWN0IHp0ZV9jbGtfcmVnbWFwICpj bGs7CisJaW50IHJlczsKKworCWNsayA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqY2xrKSwg R0ZQX0tFUk5FTCk7CisJaWYgKCFjbGspCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJ aW5pdC5uYW1lID0gZGVzYy0+bmFtZTsKKwlpbml0Lm9wcyA9ICZ6dGVfY2xrX3JlZ21hcF9kaXZp ZGVyX29wczsKKwlpbml0LnBhcmVudF9kYXRhID0gJnBhcmVudDsKKwlpbml0Lm51bV9wYXJlbnRz ID0gMTsKKwlpbml0LmZsYWdzID0gQ0xLX1NFVF9SQVRFX1BBUkVOVDsKKwljbGstPmh3LmluaXQg PSAmaW5pdDsKKwljbGstPm1hcCA9IHJlZ21hcDsKKwljbGstPnJlZyA9IGRlc2MtPnJlZzsKKwlj bGstPnNoaWZ0ID0gZGVzYy0+c2hpZnQ7CisJY2xrLT5zaXplID0gZGVzYy0+c2l6ZTsKKworCXJl cyA9IGRldm1fY2xrX2h3X3JlZ2lzdGVyKGRldiwgJmNsay0+aHcpOworCWlmIChyZXMpCisJCXJl dHVybiBFUlJfUFRSKHJlcyk7CisKKwlyZXR1cm4gJmNsay0+aHc7CiB9CiAKK3N0YXRpYyB1OCB6 dGVfY2xrX3JlZ21hcF9tdXhfZ2V0X3BhcmVudChzdHJ1Y3QgY2xrX2h3ICpodykKK3sKKwlzdHJ1 Y3QgenRlX2Nsa19yZWdtYXAgKmNsayA9IHRvX3p0ZV9jbGtfcmVnbWFwKGh3KTsKKwl1bnNpZ25l ZCBpbnQgdmFsOworCWludCByZXQ7CisKKwlyZXQgPSByZWdtYXBfcmVhZChjbGstPm1hcCwgY2xr LT5yZWcsICZ2YWwpOworCWlmIChyZXQpCisJCXJldHVybiAweGZmOworCisJdmFsID4+PSBjbGst PnNoaWZ0OworCXZhbCAmPSBHRU5NQVNLKGNsay0+c2l6ZSAtIDEsIDApOworCisJcmV0dXJuIGNs a19tdXhfdmFsX3RvX2luZGV4KGh3LCBOVUxMLCAwLCB2YWwpOworfQorCitzdGF0aWMgaW50IHp0 ZV9jbGtfcmVnbWFwX211eF9zZXRfcGFyZW50KHN0cnVjdCBjbGtfaHcgKmh3LCB1OCBpbmRleCkK K3sKKwlzdHJ1Y3QgenRlX2Nsa19yZWdtYXAgKmNsayA9IHRvX3p0ZV9jbGtfcmVnbWFwKGh3KTsK Kwl1bnNpZ25lZCBpbnQgdmFsID0gY2xrX211eF9pbmRleF90b192YWwoTlVMTCwgMCwgaW5kZXgp OworCisJcmV0dXJuIHJlZ21hcF91cGRhdGVfYml0cyhjbGstPm1hcCwgY2xrLT5yZWcsCisJCQkJ ICBHRU5NQVNLKGNsay0+c2l6ZSAtIDEsIDApIDw8IGNsay0+c2hpZnQsCisJCQkJICB2YWwgPDwg Y2xrLT5zaGlmdCk7Cit9CisKK3N0YXRpYyBpbnQgenRlX2Nsa19yZWdtYXBfbXV4X2RldGVybWlu ZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCBzdHJ1Y3QgY2xrX3JhdGVfcmVxdWVzdCAqcmVxKQor eworCXJldHVybiBjbGtfbXV4X2RldGVybWluZV9yYXRlX2ZsYWdzKGh3LCByZXEsIDApOworfQor CitzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgenRlX2Nsa19yZWdtYXBfbXV4X29wcyA9IHsK KwkuZ2V0X3BhcmVudCA9IHp0ZV9jbGtfcmVnbWFwX211eF9nZXRfcGFyZW50LAorCS5zZXRfcGFy ZW50ID0genRlX2Nsa19yZWdtYXBfbXV4X3NldF9wYXJlbnQsCisJLmRldGVybWluZV9yYXRlID0g enRlX2Nsa19yZWdtYXBfbXV4X2RldGVybWluZV9yYXRlLAorfTsKKwogc3RydWN0IGNsa19odyAq enhfY2xrX3JlZ2lzdGVyX211eChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCByZWdtYXAgKnJl Z21hcCwKLQkJCQkgICBjb25zdCBzdHJ1Y3QgenhfbXV4X2Rlc2MgKmRlc2MsCi0JCQkJICAgc3Ry dWN0IGNsa19odyAqIGNvbnN0ICpjbG9ja3MpCisJCQkgIGNvbnN0IHN0cnVjdCB6eF9tdXhfZGVz YyAqZGVzYywgc3RydWN0IGNsa19odyAqIGNvbnN0ICpjbG9ja3MpCiB7Ci0JcmV0dXJuIEVSUl9Q VFIoLUVOT0RFVik7CisJc3RydWN0IGNsa19wYXJlbnRfZGF0YSBwYXJlbnRzW0NMS19aWF9NQVhf UEFSRU5UU107CisJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdCA9IHt9OworCXN0cnVjdCB6dGVf Y2xrX3JlZ21hcCAqY2xrOworCXVuc2lnbmVkIGludCBpOworCWludCByZXM7CisKKwlpZiAoV0FS Tl9PTihkZXNjLT5udW1fcGFyZW50cyA+IEFSUkFZX1NJWkUocGFyZW50cykpKQorCQlyZXR1cm4g RVJSX1BUUigtRUlOVkFMKTsKKworCWZvciAoaSA9IDA7IGkgPCBkZXNjLT5udW1fcGFyZW50czsg KytpKQorCQlwYXJlbnRzW2ldID0genhfZ2V0X3BhcmVudCgmZGVzYy0+cGFyZW50c1tpXSwgY2xv Y2tzKTsKKworCWNsayA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqY2xrKSwgR0ZQX0tFUk5F TCk7CisJaWYgKCFjbGspCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJaW5pdC5uYW1l ID0gZGVzYy0+bmFtZTsKKwlpbml0Lm9wcyA9ICZ6dGVfY2xrX3JlZ21hcF9tdXhfb3BzOworCWlu aXQucGFyZW50X2RhdGEgPSBwYXJlbnRzOworCWluaXQubnVtX3BhcmVudHMgPSBkZXNjLT5udW1f cGFyZW50czsKKwljbGstPmh3LmluaXQgPSAmaW5pdDsKKwljbGstPm1hcCA9IHJlZ21hcDsKKwlj bGstPnJlZyA9IGRlc2MtPnJlZzsKKwljbGstPnNoaWZ0ID0gZGVzYy0+c2hpZnQ7CisJY2xrLT5z aXplID0gZGVzYy0+c2l6ZTsKKworCXJlcyA9IGRldm1fY2xrX2h3X3JlZ2lzdGVyKGRldiwgJmNs ay0+aHcpOworCWlmIChyZXMpCisJCXJldHVybiBFUlJfUFRSKHJlcyk7CisKKwlyZXR1cm4gJmNs ay0+aHc7CiB9CgotLSAKMi41NC4wCgoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgt cGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtcGh5Cg==