From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sylwester Nawrocki Subject: [PATCH RFC 6/7] ASoC: samsung: Add Odroid ASoC machine driver Date: Fri, 21 Apr 2017 19:19:50 +0200 Message-ID: <1492795191-31298-7-git-send-email-s.nawrocki@samsung.com> References: <1492795191-31298-1-git-send-email-s.nawrocki@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1492795191-31298-1-git-send-email-s.nawrocki@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, alsa-devel@alsa-project.org, devicetree@vger.kernel.org Cc: javier@osg.samsung.com, b.zolnierkie@samsung.com, sw0312.kim@samsung.com, krzk@kernel.org, cw00.choi@samsung.com, broonie@kernel.org, Sylwester Nawrocki , robh+dt@kernel.org List-Id: devicetree@vger.kernel.org VGhpcyBkZWRpY2F0ZWQgZHJpdmVyIGFsbG93cyB0byBzdXBwb3J0IFNvQyBzcGVjaWZpYyBjbG9j awpzZXR0aW5ncyBhbmQgaGVscHMgdG8gZW5zdXJlIHByb3BlciBudW1iZXIgb2YgY2hhbm5lbHMg Z2V0cwpuZWdvdGlhdGVkIGluIG11bHRpY29kZWMgc3lzdGVtIGNvbmZpZ3VyYXRpb25zLgoKU2ln bmVkLW9mZi1ieTogU3lsd2VzdGVyIE5hd3JvY2tpIDxzLm5hd3JvY2tpQHNhbXN1bmcuY29tPgot LS0KIHNvdW5kL3NvYy9zYW1zdW5nL0tjb25maWcgIHwgICA4ICsrCiBzb3VuZC9zb2Mvc2Ftc3Vu Zy9NYWtlZmlsZSB8ICAgMiArCiBzb3VuZC9zb2Mvc2Ftc3VuZy9vZHJvaWQuYyB8IDIxOSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgMjI5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzb3VuZC9zb2Mvc2Ftc3Vu Zy9vZHJvaWQuYwoKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zYW1zdW5nL0tjb25maWcgYi9zb3Vu ZC9zb2Mvc2Ftc3VuZy9LY29uZmlnCmluZGV4IGYxZjFkNzkuLjA1MjBmNWEgMTAwNjQ0Ci0tLSBh L3NvdW5kL3NvYy9zYW1zdW5nL0tjb25maWcKKysrIGIvc291bmQvc29jL3NhbXN1bmcvS2NvbmZp ZwpAQCAtMTg1LDYgKzE4NSwxNCBAQCBjb25maWcgU05EX1NPQ19TTk9XCiAJICBTYXkgWSBpZiB5 b3Ugd2FudCB0byBhZGQgYXVkaW8gc3VwcG9ydCBmb3IgdmFyaW91cyBTbm93CiAJICBib2FyZHMg YmFzZWQgb24gRXh5bm9zNSBzZXJpZXMgb2YgU29Dcy4KIAorY29uZmlnIFNORF9TT0NfT0RST0lE CisJdHJpc3RhdGUgIkF1ZGlvIHN1cHBvcnQgZm9yIE9kcm9pZCBYVTMvWFU0IgorCWRlcGVuZHMg b24gU05EX1NPQ19TQU1TVU5HICYmIEkyQworCXNlbGVjdCBTTkRfU09DX01BWDk4MDkwCisJc2Vs ZWN0IFNORF9TQU1TVU5HX0kyUworCWhlbHAKKwkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIGF1ZGlv IHN1cHBvcnQgZm9yIHRoZSBPZHJvaWQgWFUzL1hVNC4KKwogY29uZmlnIFNORF9TT0NfQVJOREFM RV9SVDU2MzFfQUxDNTYzMQogICAgICAgICB0cmlzdGF0ZSAiQXVkaW8gc3VwcG9ydCBmb3IgUlQ1 NjMxKEFMQzU2MzEpIG9uIEFybmRhbGUgQm9hcmQiCiAgICAgICAgIGRlcGVuZHMgb24gSTJDCmRp ZmYgLS1naXQgYS9zb3VuZC9zb2Mvc2Ftc3VuZy9NYWtlZmlsZSBiL3NvdW5kL3NvYy9zYW1zdW5n L01ha2VmaWxlCmluZGV4IGI1ZGY1ZTJlLi5iNmMyZWUzIDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mv c2Ftc3VuZy9NYWtlZmlsZQorKysgYi9zb3VuZC9zb2Mvc2Ftc3VuZy9NYWtlZmlsZQpAQCAtNDAs NiArNDAsNyBAQCBzbmQtc29jLXRvYmVybW9yeS1vYmpzIDo9IHRvYmVybW9yeS5vCiBzbmQtc29j LWxvd2xhbmQtb2JqcyA6PSBsb3dsYW5kLm8KIHNuZC1zb2MtbGl0dGxlbWlsbC1vYmpzIDo9IGxp dHRsZW1pbGwubwogc25kLXNvYy1iZWxscy1vYmpzIDo9IGJlbGxzLm8KK3NuZC1zb2Mtb2Ryb2lk LW9ianMgOj0gb2Ryb2lkLm8KIHNuZC1zb2MtYXJuZGFsZS1ydDU2MzEtb2JqcyA6PSBhcm5kYWxl X3J0NTYzMS5vCiBzbmQtc29jLXRtMi13bTUxMTAtb2JqcyA6PSB0bTJfd201MTEwLm8KIApAQCAt NjIsNSArNjMsNiBAQCBvYmotJChDT05GSUdfU05EX1NPQ19UT0JFUk1PUlkpICs9IHNuZC1zb2Mt dG9iZXJtb3J5Lm8KIG9iai0kKENPTkZJR19TTkRfU09DX0xPV0xBTkQpICs9IHNuZC1zb2MtbG93 bGFuZC5vCiBvYmotJChDT05GSUdfU05EX1NPQ19MSVRUTEVNSUxMKSArPSBzbmQtc29jLWxpdHRs ZW1pbGwubwogb2JqLSQoQ09ORklHX1NORF9TT0NfQkVMTFMpICs9IHNuZC1zb2MtYmVsbHMubwor b2JqLSQoQ09ORklHX1NORF9TT0NfT0RST0lEKSArPSBzbmQtc29jLW9kcm9pZC5vCiBvYmotJChD T05GSUdfU05EX1NPQ19BUk5EQUxFX1JUNTYzMV9BTEM1NjMxKSArPSBzbmQtc29jLWFybmRhbGUt cnQ1NjMxLm8KIG9iai0kKENPTkZJR19TTkRfU09DX1NBTVNVTkdfVE0yX1dNNTExMCkgKz0gc25k LXNvYy10bTItd201MTEwLm8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zYW1zdW5nL29kcm9pZC5j IGIvc291bmQvc29jL3NhbXN1bmcvb2Ryb2lkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMGMwYjAwZQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9zYW1zdW5nL29k cm9pZC5jCkBAIC0wLDAgKzEsMjE5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFNhbXN1 bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFz CisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisj aW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxs aW51eC9vZl9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxz b3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY21fcGFyYW1zLmg+CisjaW5jbHVkZSAiaTJz LmgiCisjaW5jbHVkZSAiaTJzLXJlZ3MuaCIKKworc3RydWN0IG9kcm9pZF9wcml2IHsKKwlzdHJ1 Y3Qgc25kX3NvY19jYXJkIGNhcmQ7CisJc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgZGFpX2xpbms7 CisKKwlzdHJ1Y3QgY2xrICpwbGw7CisJc3RydWN0IGNsayAqcmNsazsKK307CisKK3N0YXRpYyBp bnQgb2Ryb2lkX2NhcmRfc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVh bSkKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50 aW1lOworCisJc25kX3BjbV9od19jb25zdHJhaW50X3NpbmdsZShydW50aW1lLCBTTkRSVl9QQ01f SFdfUEFSQU1fQ0hBTk5FTFMsIDIpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG9kcm9p ZF9jYXJkX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJ CQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25k X3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0 IG9kcm9pZF9wcml2ICpwcml2ID0gc25kX3NvY19jYXJkX2dldF9kcnZkYXRhKHJ0ZC0+Y2FyZCk7 CisJdW5zaWduZWQgaW50IHBsbF9mcmVxLCByY2xrX2ZyZXE7CisJaW50IHJldDsKKworCXN3aXRj aCAocGFyYW1zX3JhdGUocGFyYW1zKSkgeworCWNhc2UgMzIwMDA6CisJY2FzZSA2NDAwMDoKKwkJ cGxsX2ZyZXEgPSAxMzEwNzIwMDBVOworCQlicmVhazsKKwljYXNlIDQ0MTAwOgorCWNhc2UgODgy MDA6CisJY2FzZSAxNzY0MDA6CisJCXBsbF9mcmVxID0gMTgwNjMzNjAwVTsKKwkJYnJlYWs7CisJ Y2FzZSA0ODAwMDoKKwljYXNlIDk2MDAwOgorCWNhc2UgMTkyMDAwOgorCQlwbGxfZnJlcSA9IDE5 NjYwODAwMFU7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKwor CXJldCA9IGNsa19zZXRfcmF0ZShwcml2LT5wbGwsIHBsbF9mcmVxICsgMSk7CisJaWYgKHJldCA8 IDApCisJCXJldHVybiByZXQ7CisKKwlyY2xrX2ZyZXEgPSBwYXJhbXNfcmF0ZShwYXJhbXMpICog MjU2ICogNDsKKworCXJldCA9IGNsa19zZXRfcmF0ZShwcml2LT5yY2xrLCByY2xrX2ZyZXEpOwor CWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJaWYgKHJ0ZC0+bnVtX2NvZGVjcyA+IDEp IHsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmNvZGVjX2RhaXNbMV07 CisKKwkJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIDAsIHJjbGtfZnJl cSwKKwkJCQkJICAgICBTTkRfU09DX0NMT0NLX0lOKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1 cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9z b2Nfb3BzIG9kcm9pZF9jYXJkX29wcyA9IHsKKwkuc3RhcnR1cCA9IG9kcm9pZF9jYXJkX3N0YXJ0 dXAsCisJLmh3X3BhcmFtcyA9IG9kcm9pZF9jYXJkX2h3X3BhcmFtcywKK307CisKK3N0YXRpYyB2 b2lkIG9kcm9pZF9wdXRfY29kZWNfb2Zfbm9kZXMoc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgKmxp bmspCit7CisJc3RydWN0IHNuZF9zb2NfZGFpX2xpbmtfY29tcG9uZW50ICpjb21wb25lbnQgPSBs aW5rLT5jb2RlY3M7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbGluay0+bnVtX2NvZGVj czsgaSsrLCBjb21wb25lbnQrKykgeworCQlpZiAoIWNvbXBvbmVudC0+b2Zfbm9kZSkKKwkJCWJy ZWFrOworCQlvZl9ub2RlX3B1dChjb21wb25lbnQtPm9mX25vZGUpOworCX0KK30KKworc3RhdGlj IGludCBvZHJvaWRfYXVkaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sK KwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCBkZXZpY2Vfbm9kZSAq Y3B1LCAqY29kZWM7CisJc3RydWN0IG9kcm9pZF9wcml2ICpwcml2OworCXN0cnVjdCBzbmRfc29j X2RhaV9saW5rICpsaW5rOworCXN0cnVjdCBzbmRfc29jX2NhcmQgKmNhcmQ7CisJaW50IHJldDsK KworCXByaXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnByaXYpLCBHRlBfS0VSTkVMKTsK KwlpZiAoIXByaXYpCisJCXJldHVybiAtRU5PTUVNOworCisJY2FyZCA9ICZwcml2LT5jYXJkOwor CWNhcmQtPmRldiA9IGRldjsKKworCWNhcmQtPm93bmVyID0gVEhJU19NT0RVTEU7CisJY2FyZC0+ ZnVsbHlfcm91dGVkID0gdHJ1ZTsKKworCXNuZF9zb2NfY2FyZF9zZXRfZHJ2ZGF0YShjYXJkLCBw cml2KTsKKworCXByaXYtPnBsbCA9IGRldm1fY2xrX2dldChkZXYsICJlcGxsIik7CisJaWYgKElT X0VSUihwcml2LT5wbGwpKQorCQlyZXR1cm4gUFRSX0VSUihwcml2LT5wbGwpOworCisJcHJpdi0+ cmNsayA9IGRldm1fY2xrX2dldChkZXYsICJpMnNfcmNsayIpOworCWlmIChJU19FUlIocHJpdi0+ cmNsaykpCisJCXJldHVybiBQVFJfRVJSKHByaXYtPnJjbGspOworCisJcmV0ID0gc25kX3NvY19v Zl9wYXJzZV9jYXJkX25hbWUoY2FyZCwgIm1vZGVsIik7CisJaWYgKHJldCA8IDApCisJCXJldHVy biByZXQ7CisKKwlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKGRldi0+b2Zfbm9kZSwgInNhbXN1 bmcsYXVkaW8td2lkZ2V0cyIpKSB7CisJCXJldCA9IHNuZF9zb2Nfb2ZfcGFyc2VfYXVkaW9fc2lt cGxlX3dpZGdldHMoY2FyZCwKKwkJCQkJCSJzYW1zdW5nLGF1ZGlvLXdpZGdldHMiKTsKKwkJaWYg KHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCX0KKworCWlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jv b2woZGV2LT5vZl9ub2RlLCAic2Ftc3VuZyxhdWRpby1yb3V0aW5nIikpIHsKKwkJcmV0ID0gc25k X3NvY19vZl9wYXJzZV9hdWRpb19yb3V0aW5nKGNhcmQsCisJCQkJCQkic2Ftc3VuZyxhdWRpby1y b3V0aW5nIik7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlsaW5rID0g JnByaXYtPmRhaV9saW5rOworCisJbGluay0+b3BzID0gJm9kcm9pZF9jYXJkX29wczsKKwlsaW5r LT5kYWlfZm10ID0gU05EX1NPQ19EQUlGTVRfSTJTIHwgU05EX1NPQ19EQUlGTVRfTkJfTkYgfAor CQkJU05EX1NPQ19EQUlGTVRfQ0JTX0NGUzsKKworCWNhcmQtPmRhaV9saW5rID0gJnByaXYtPmRh aV9saW5rOworCWNhcmQtPm51bV9saW5rcyA9IDE7CisKKwljcHUgPSBvZl9nZXRfY2hpbGRfYnlf bmFtZShkZXYtPm9mX25vZGUsICJjcHUiKTsKKwljb2RlYyA9IG9mX2dldF9jaGlsZF9ieV9uYW1l KGRldi0+b2Zfbm9kZSwgImNvZGVjIik7CisKKwlsaW5rLT5jcHVfb2Zfbm9kZSA9IG9mX3BhcnNl X3BoYW5kbGUoY3B1LCAic291bmQtZGFpIiwgMCk7CisJaWYgKCFsaW5rLT5jcHVfb2Zfbm9kZSkg eworCQlkZXZfZXJyKGRldiwgIkZhaWxlZCBwYXJzaW5nIGNwdS9zb3VuZC1kYWkgcHJvcGVydHlc biIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXQgPSBzbmRfc29jX29mX2dldF9kYWlf bGlua19jb2RlY3MoZGV2LCBjb2RlYywgbGluayk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gZXJy X3B1dF9jb2RlY19uOworCisJbGluay0+cGxhdGZvcm1fb2Zfbm9kZSA9IGxpbmstPmNwdV9vZl9u b2RlOworCisJbGluay0+bmFtZSA9ICJQcmltYXJ5IjsKKwlsaW5rLT5zdHJlYW1fbmFtZSA9IGxp bmstPm5hbWU7CisKKwlyZXQgPSBkZXZtX3NuZF9zb2NfcmVnaXN0ZXJfY2FyZChkZXYsIGNhcmQp OworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIoZGV2LCAic25kX3NvY19yZWdpc3Rlcl9jYXJk KCkgZmFpbGVkOiAlZFxuIiwgcmV0KTsKKwkJZ290byBlcnJfcHV0X2kyc19uOworCX0KKworCXJl dHVybiAwOworCitlcnJfcHV0X2kyc19uOgorCW9mX25vZGVfcHV0KGxpbmstPmNwdV9vZl9ub2Rl KTsKK2Vycl9wdXRfY29kZWNfbjoKKwlvZHJvaWRfcHV0X2NvZGVjX29mX25vZGVzKGxpbmspOwor CXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgb2Ryb2lkX2F1ZGlvX3JlbW92ZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBvZHJvaWRfcHJpdiAqcHJpdiA9IHBs YXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCisJb2Zfbm9kZV9wdXQocHJpdi0+ZGFpX2xpbmsu Y3B1X29mX25vZGUpOworCW9kcm9pZF9wdXRfY29kZWNfb2Zfbm9kZXMoJnByaXYtPmRhaV9saW5r KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBv ZHJvaWRfYXVkaW9fb2ZfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlCT0gInNhbXN1bmcsb2Ry b2lkLXh1My1hdWRpbyIgfSwKKwl7IC5jb21wYXRpYmxlCT0gInNhbXN1bmcsb2Ryb2lkLXh1NC1h dWRpbyJ9LAorCXsgfSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvZHJvaWRfYXVkaW9f b2ZfbWF0Y2gpOworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBvZHJvaWRfYXVkaW9f ZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lCQk9ICJvZHJvaWQtYXVkaW8iLAorCQku b2ZfbWF0Y2hfdGFibGUJPSBvZHJvaWRfYXVkaW9fb2ZfbWF0Y2gsCisJCS5wbQkJPSAmc25kX3Nv Y19wbV9vcHMsCisJfSwKKwkucHJvYmUJPSBvZHJvaWRfYXVkaW9fcHJvYmUsCisJLnJlbW92ZQk9 IG9kcm9pZF9hdWRpb19yZW1vdmUsCit9OworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihvZHJvaWRf YXVkaW9fZHJpdmVyKTsKKworTU9EVUxFX0FVVEhPUigiU3lsd2VzdGVyIE5hd3JvY2tpIDxzLm5h d3JvY2tpQHNhbXN1bmcuY29tPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJPZHJvaWQgWFUzL1hV NCBhdWRpbyBzdXBwb3J0Iik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Ci0tIAoxLjkuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==