From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?Vm9rw6HEjSBNaWNoYWw=?= Subject: [RFC PATCH v3 2/2] pwm: imx: Configure output to GPIO in disabled state Date: Thu, 6 Dec 2018 13:41:31 +0000 Message-ID: <1544103655-104466-3-git-send-email-michal.vokac@ysoft.com> References: <1544103655-104466-1-git-send-email-michal.vokac@ysoft.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1544103655-104466-1-git-send-email-michal.vokac@ysoft.com> Content-Language: en-US Content-ID: <577EB1F8DB007F45B32FB85FF5611041@eurprd04.prod.outlook.com> Sender: linux-kernel-owner@vger.kernel.org To: Thierry Reding , Rob Herring Cc: Mark Rutland , "devicetree@vger.kernel.org" , "linux-pwm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Lukasz Majewski , Fabio Estevam , =?utf-8?B?TG90aGFyIFdhw59tYW5u?= , Linus Walleij , =?utf-8?B?Vm9rw6HEjSBNaWNoYWw=?= List-Id: linux-pwm@vger.kernel.org Tm9ybWFsbHkgdGhlIFBXTSBvdXRwdXQgaXMgaGVsZCBMT1cgd2hlbiBQV00gaXMgZGlzYWJsZWQu IFRoaXMgY2FuIGNhdXNlDQpwcm9ibGVtcyB3aGVuIGludmVydGVkIFBXTSBzaWduYWwgcG9sYXJp dHkgaXMgbmVlZGVkLiBXaXRoIHRoaXMgYmVoYXZpb3INCnRoZSBjb25uZWN0ZWQgY2lyY3VpdCBp cyBmZWQgYnkgMTAwJSBkdXR5IGN5Y2xlIGluc3RlYWQgb2YgYmVpbmcgc2h1dC1vZmYuDQoNCkFs bG93IHVzZXJzIHRvIGRlZmluZSBhICJwd20iIGFuZCBhICJncGlvIiBwaW5jdHJsIHN0YXRlcy4g VGhlIHB3bSBwaW5jdHJsDQpzdGF0ZSBpcyBzZWxlY3RlZCB3aGVuIFBXTSBpcyBlbmFibGVkIGFu ZCB0aGUgZ3BpbyBwaW5jdHJsIHN0YXRlIGlzDQpzZWxlY3RlZCB3aGVuIFBXTSBpcyBkaXNhYmxl ZC4gSW4gdGhlIGdwaW8gc3RhdGUgdGhlIG5ldyBwd20tZ3Bpb3MgR1BJTyBpcw0KY29uZmlndXJl ZCBhcyBpbnB1dCBhbmQgdGhlIGludGVybmFsIHB1bGwtdXAgcmVzaXN0b3IgaXMgdXNlZCB0byBw dWxsIHRoZQ0Kb3V0cHV0IGxldmVsIGhpZ2guDQoNCklmIGFsbCB0aGUgcGluY3RybCBzdGF0ZXMg YW5kIHRoZSBwd20tZ3Bpb3MgR1BJTyBhcmUgbm90IGNvcnJlY3RseQ0Kc3BlY2lmaWVkIGluIERU IHRoZSBQV00gd29yayBhcyB1c3VhbC4NCg0KQXMgYW4gZXhhbXBsZSwgd2l0aCB0aGlzIHBhdGNo IGEgUFdNIGNvbnRyb2xsZWQgYmFja2xpZ2h0IHdpdGggaW52ZXJzZWQNCnNpZ25hbCBwb2xhcml0 eSBjYW4gYmUgdXNlZCBpbiBmdWxsIGJyaWdodG5lc3MgcmFuZ2UuIFdpdGhvdXQgdGhpcyBwYXRj aA0KdGhlIGJhY2tsaWdodCBjYW4gbm90IGJlIHR1cm5lZCBvZmYgYXMgYnJpZ2h0bmVzcyA9IDAg ZGlzYWJsZXMgdGhlIFBXTQ0KYW5kIHRoYXQgaW4gdHVybiBzZXQgUFdNIG91dHB1dCBMT1csIHRo YXQgaXMgZnVsbCBicmlnaHRuZXNzLg0KDQpJbnZlcnRlZCBvdXRwdXQgb2YgdGhlIFBXTSB3aXRo ICJkZWZhdWx0IiBhbmQgd2l0aCAicHdtIisiZ3BpbyIgcGluY3RybDoNCg0KKy0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0gKy0tLS0tLS0tLS0t LS0rDQp8IEFmdGVyIHJlc2V0ICB8IEJvb3Rsb2FkZXIgfCAgIFBXTSBwcm9iZSAgIHwgICAgIFBX TSAgICB8ICAgICBQV00gICAgIHwNCnwgMTAwayBwdWxsLXVwIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCBlbmFibGUgMzAlIHwgICBkaXNhYmxlICAgfA0KKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rDQp8 IHBpbmN0cmwgICAgICB8ICAgIG5vbmUgICAgfCAgICBkZWZhdWx0ICAgIHwgICBkZWZhdWx0ICB8 ICAgZGVmYXVsdCAgIHwNCnwgb3V0IEggICBfX19fX19fX19fX19fX19fX18gICAgICAgICAgICAg ICAgICAgX18gICBfXyAgICAgICAgICAgICAgICAgfA0KfCBvdXQgTCAgICAgICAgICAgICAgICAg ICAgIFxfX19fX19fX19fX19fX19fXy8gIFxfLyAgXF8vXF9fX19fX19fX19fXyB8DQp8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgXiAgICBeICAgICAgICAg ICAgICAgIHwNCistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKw0KfCBwaW5jdHJsICAgICAgfCAgICBub25lICAgIHwg ICAgICBncGlvICAgICB8ICAgICBwd20gICAgfCAgICAgZ3BpbyAgICB8DQp8IG91dCBIICAgX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIF9fICAgX18gICBfX19fX19fX19fX19f IHwNCnwgb3V0IEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXF8vICBcXy8g IFxfLyAgICAgICAgICAgICAgfA0KfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeICAgIF4gICAgXiAgICAgICAgICAgICAgICB8DQorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCg0K U2lnbmVkLW9mZi1ieTogTWljaGFsIFZva8OhxI0gPG1pY2hhbC52b2thY0B5c29mdC5jb20+DQot LS0NCkNoYW5nZXMgaW4gdjM6DQogLSBDb21taXQgbWVzc2FnZSB1cGRhdGUuDQogLSBNaW5vciBm aXggaW4gY29kZSBjb21tZW50IChVd2UpDQogLSBBbGlnbiBmdW5jdGlvbiBhcmd1bWVudHMgdG8g dGhlIG9wZW5pbmcgcGFyZW50aGVzZXMuIChVd2UpDQogLSBEbyBub3QgdGVzdCBkZXZtX3BpbmN0 cmxfZ2V0IGZvciBOVUxMLiAoVGhpZXJyeSkNCiAtIENvbnZlcnQgYWxsIG1lc3NhZ2VzIHRvIGRl dl9kYmcoKSAoVGhpZXJyeSkNCiAtIERvIG5vdCBhY3RpdmVseSBkcml2ZSB0aGUgcGluIGluIGdw aW8gc3RhdGUuIENvbmZpZ3VyZSBpdCBhcyBpbnB1dA0KICAgYW5kIHJlbHkgc29sZWx5IG9uIHRo ZSBpbnRlcm5hbCBwdWxsLXVwLiAoVGhpZXJyeSkNCg0KQ2hhbmdlcyBpbiB2MjoNCiAtIFV0aWxp emUgdGhlICJwd20iIGFuZCAiZ3BpbyIgcGluY3RybCBzdGF0ZXMuDQogLSBVc2UgdGhlIHB3bS1n cGlvcyBzaWduYWwgdG8gZHJpdmUgdGhlIG91dHB1dCBpbiAiZ3BpbyIgcGluY3RybCBzdGF0ZS4N CiAtIFNlbGVjdCB0aGUgcmlnaHQgcGluY3RybCBzdGF0ZSBpbiBwcm9iZS4NCg0KIGRyaXZlcnMv cHdtL3B3bS1pbXguYyB8IDc3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKw0KIDEgZmlsZSBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspDQoNCmRpZmYg LS1naXQgYS9kcml2ZXJzL3B3bS9wd20taW14LmMgYi9kcml2ZXJzL3B3bS9wd20taW14LmMNCmlu ZGV4IDFkNTI0MmMuLjg0ZWFlYzggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3B3bS9wd20taW14LmMN CisrKyBiL2RyaXZlcnMvcHdtL3B3bS1pbXguYw0KQEAgLTEyLDEwICsxMiwxMiBAQA0KICNpbmNs dWRlIDxsaW51eC9lcnIuaD4NCiAjaW5jbHVkZSA8bGludXgvY2xrLmg+DQogI2luY2x1ZGUgPGxp bnV4L2RlbGF5Lmg+DQorI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4NCiAjaW5jbHVk ZSA8bGludXgvaW8uaD4NCiAjaW5jbHVkZSA8bGludXgvcHdtLmg+DQogI2luY2x1ZGUgPGxpbnV4 L29mLmg+DQogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9w aW5jdHJsL2NvbnN1bWVyLmg+DQogDQogLyogaS5NWDEgYW5kIGkuTVgyMSBzaGFyZSB0aGUgc2Ft ZSBQV00gZnVuY3Rpb24gYmxvY2s6ICovDQogDQpAQCAtNTIsMTAgKzU0LDQ0IEBAIHN0cnVjdCBp bXhfY2hpcCB7DQogCXZvaWQgX19pb21lbQkqbW1pb19iYXNlOw0KIA0KIAlzdHJ1Y3QgcHdtX2No aXAJY2hpcDsNCisNCisJc3RydWN0IHBpbmN0cmwgKnBpbmN0cmw7DQorCXN0cnVjdCBwaW5jdHJs X3N0YXRlICpwaW5jdHJsX3BpbnNfZ3BpbzsNCisJc3RydWN0IHBpbmN0cmxfc3RhdGUgKnBpbmN0 cmxfcGluc19wd207DQorCXN0cnVjdCBncGlvX2Rlc2MgKnB3bV9ncGlvZDsNCiB9Ow0KIA0KICNk ZWZpbmUgdG9faW14X2NoaXAoY2hpcCkJY29udGFpbmVyX29mKGNoaXAsIHN0cnVjdCBpbXhfY2hp cCwgY2hpcCkNCiANCitzdGF0aWMgaW50IGlteF9wd21faW5pdF9waW5jdHJsX2luZm8oc3RydWN0 IGlteF9jaGlwICppbXhfY2hpcCwNCisJCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQor ew0KKwlpbXhfY2hpcC0+cGluY3RybCA9IGRldm1fcGluY3RybF9nZXQoJnBkZXYtPmRldik7DQor CWlmIChJU19FUlIoaW14X2NoaXAtPnBpbmN0cmwpKSB7DQorCQlkZXZfZGJnKCZwZGV2LT5kZXYs ICJjYW4gbm90IGdldCBwaW5jdHJsXG4iKTsNCisJCXJldHVybiBQVFJfRVJSKGlteF9jaGlwLT5w aW5jdHJsKTsNCisJfQ0KKw0KKwlpbXhfY2hpcC0+cGluY3RybF9waW5zX3B3bSA9IHBpbmN0cmxf bG9va3VwX3N0YXRlKGlteF9jaGlwLT5waW5jdHJsLA0KKwkJCQkJCQkgICJwd20iKTsNCisJaW14 X2NoaXAtPnBpbmN0cmxfcGluc19ncGlvID0gcGluY3RybF9sb29rdXBfc3RhdGUoaW14X2NoaXAt PnBpbmN0cmwsDQorCQkJCQkJCSAgICJncGlvIik7DQorCWlteF9jaGlwLT5wd21fZ3Bpb2QgPSBk ZXZtX2dwaW9kX2dldF9vcHRpb25hbCgmcGRldi0+ZGV2LCAicHdtIiwNCisJCQkJCQkgICAgICBH UElPRF9JTik7DQorDQorCWlmIChQVFJfRVJSKGlteF9jaGlwLT5wd21fZ3Bpb2QpID09IC1FUFJP QkVfREVGRVIpIHsNCisJCXJldHVybiAtRVBST0JFX0RFRkVSOw0KKwl9IGVsc2UgaWYgKElTX0VS UihpbXhfY2hpcC0+cHdtX2dwaW9kKSB8fA0KKwkJICAgSVNfRVJSKGlteF9jaGlwLT5waW5jdHJs X3BpbnNfcHdtKSB8fA0KKwkJICAgSVNfRVJSKGlteF9jaGlwLT5waW5jdHJsX3BpbnNfZ3Bpbykp IHsNCisJCWRldl9kYmcoJnBkZXYtPmRldiwgIlBXTSBwaW5jdHJsIGluZm9ybWF0aW9uIGluY29t cGxldGVcbiIpOw0KKwkJZGV2bV9waW5jdHJsX3B1dChpbXhfY2hpcC0+cGluY3RybCk7DQorCQlp bXhfY2hpcC0+cGluY3RybCA9IE5VTEw7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KIHN0 YXRpYyBpbnQgaW14X3B3bV9jb25maWdfdjEoc3RydWN0IHB3bV9jaGlwICpjaGlwLA0KIAkJc3Ry dWN0IHB3bV9kZXZpY2UgKnB3bSwgaW50IGR1dHlfbnMsIGludCBwZXJpb2RfbnMpDQogew0KQEAg LTIxNiw3ICsyNTIsMjUgQEAgc3RhdGljIGludCBpbXhfcHdtX2FwcGx5X3YyKHN0cnVjdCBwd21f Y2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwNCiAJCQljciB8PSBNWDNfUFdNQ1Jf UE9VVEM7DQogDQogCQl3cml0ZWwoY3IsIGlteC0+bW1pb19iYXNlICsgTVgzX1BXTUNSKTsNCisN CisJCS8qDQorCQkgKiBJZiB3ZSBhcmUgaW4gY2hhcmdlIG9mIHBpbmN0cmwgdGhlbiBzd2l0Y2gg b3V0cHV0IHRvDQorCQkgKiB0aGUgUFdNIHNpZ25hbC4NCisJCSAqLw0KKwkJaWYgKGlteC0+cGlu Y3RybCkNCisJCQlwaW5jdHJsX3NlbGVjdF9zdGF0ZShpbXgtPnBpbmN0cmwsDQorCQkJCQkgICAg IGlteC0+cGluY3RybF9waW5zX3B3bSk7DQogCX0gZWxzZSBpZiAoY3N0YXRlLmVuYWJsZWQpIHsN CisJCS8qDQorCQkgKiBQV00gYmxvY2sgd2lsbCBiZSBkaXNhYmxlZC4gTm9ybWFsbHkgaXRzIG91 dHB1dCB3aWxsIGJlIHNldA0KKwkJICogbG93IG5vIG1hdHRlciB3aGF0IG91dHB1dCBwb2xhcml0 eSBpcyBjb25maWd1cmVkLiBMZXQncyB1c2UNCisJCSAqIHBpbmN0cmwgdG8gc3dpdGNoIHRoZSBv dXRwdXQgcGluIHRvIEdQSU8gZnVuY3RvbiBhbmQga2VlcA0KKwkJICogdGhlIG91dHB1dCBhdCB0 aGUgc2FtZSBsZXZlbCBhcyBmb3IgZHV0eS1jeWNsZSA9IDAuDQorCQkgKi8NCisJCWlmIChpbXgt PnBpbmN0cmwpDQorCQkJcGluY3RybF9zZWxlY3Rfc3RhdGUoaW14LT5waW5jdHJsLA0KKwkJCQkJ ICAgICBpbXgtPnBpbmN0cmxfcGluc19ncGlvKTsNCisNCiAJCXdyaXRlbCgwLCBpbXgtPm1taW9f YmFzZSArIE1YM19QV01DUik7DQogDQogCQljbGtfZGlzYWJsZV91bnByZXBhcmUoaW14LT5jbGtf cGVyKTsNCkBAIC0yNjMsNiArMzE3LDcgQEAgc3RhdGljIGludCBpbXhfcHdtX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm9m X2lkID0NCiAJCQlvZl9tYXRjaF9kZXZpY2UoaW14X3B3bV9kdF9pZHMsICZwZGV2LT5kZXYpOw0K IAljb25zdCBzdHJ1Y3QgaW14X3B3bV9kYXRhICpkYXRhOw0KKwlzdHJ1Y3QgcHdtX3N0YXRlIGNz dGF0ZTsNCiAJc3RydWN0IGlteF9jaGlwICppbXg7DQogCXN0cnVjdCByZXNvdXJjZSAqcjsNCiAJ aW50IHJldCA9IDA7DQpAQCAtMjk0LDYgKzM0OSwxMCBAQCBzdGF0aWMgaW50IGlteF9wd21fcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCiAJCWlteC0+Y2hpcC5vZl9wd21fbl9j ZWxscyA9IDM7DQogCX0NCiANCisJcmV0ID0gaW14X3B3bV9pbml0X3BpbmN0cmxfaW5mbyhpbXgs IHBkZXYpOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsNCisNCiAJciA9IHBsYXRmb3JtX2dl dF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7DQogCWlteC0+bW1pb19iYXNlID0g ZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHIpOw0KIAlpZiAoSVNfRVJSKGlteC0+ bW1pb19iYXNlKSkNCkBAIC0zMDMsNiArMzYyLDI0IEBAIHN0YXRpYyBpbnQgaW14X3B3bV9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAlpZiAocmV0IDwgMCkNCiAJCXJldHVy biByZXQ7DQogDQorCWlmIChpbXgtPnBpbmN0cmwpIHsNCisJCS8qDQorCQkgKiBVcGRhdGUgY3N0 YXRlIGFmdGVyIHB3bWNoaXBfYWRkKCkgY2FsbCBhcyB0aGUgY29yZSBtaWdodA0KKwkJICogY2Fs bCB0aGUgZ2V0X3N0YXRlKCkgZnVuY3Rpb24gdG8gcmVhZCB0aGUgUFdNIHJlZ2lzdGVycw0KKwkJ ICogdG8gZ2V0IHRoZSBhY3R1YWwgSFfCoHN0YXRlLg0KKwkJICovDQorCQlwd21fZ2V0X3N0YXRl KGlteC0+Y2hpcC5wd21zLCAmY3N0YXRlKTsNCisJCWlmIChjc3RhdGUuZW5hYmxlZCkgew0KKwkJ CWRldl9kYmcoJnBkZXYtPmRldiwNCisJCQkJIlBXTSBlbnRlcmVkIHByb2JlIGluIGVuYWJsZWQg c3RhdGVcbiIpOw0KKwkJCXBpbmN0cmxfc2VsZWN0X3N0YXRlKGlteC0+cGluY3RybCwNCisJCQkJ CSAgICAgaW14LT5waW5jdHJsX3BpbnNfcHdtKTsNCisJCX0gZWxzZSB7DQorCQkJcGluY3RybF9z ZWxlY3Rfc3RhdGUoaW14LT5waW5jdHJsLA0KKwkJCQkJICAgICBpbXgtPnBpbmN0cmxfcGluc19n cGlvKTsNCisJCX0NCisJfQ0KKw0KIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBpbXgpOw0K IAlyZXR1cm4gMDsNCiB9DQotLSANCjIuMS40DQoNCg==