From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from yx-out-2324.google.com (yx-out-2324.google.com [74.125.44.29]) by ozlabs.org (Postfix) with ESMTP id 7293EDDF31 for ; Sat, 7 Mar 2009 08:29:57 +1100 (EST) Received: by yx-out-2324.google.com with SMTP id 8so330565yxb.39 for ; Fri, 06 Mar 2009 13:29:55 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <20090306211123.24316.80764.stgit@localhost.localdomain> References: <20090306211123.24316.80764.stgit@localhost.localdomain> Date: Fri, 6 Mar 2009 16:29:55 -0500 Message-ID: <9e4733910903061329n202725edibb8af1b979920d5b@mail.gmail.com> Subject: Re: [RFC 1/2] powerpc/5200: add general purpose timer API for the MPC5200 From: Jon Smirl To: Grant Likely , linuxppc-dev@ozlabs.org, w.sang@pengutronix.de Content-Type: multipart/mixed; boundary=0016e646983c6cfb03046479fca1 List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , --0016e646983c6cfb03046479fca1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit I'm using a GPT pin in input capture mode to implement IR. I attached my GPT driver code. I can convert to your API. That's a really cheap way to do IR, just IR sensor, resistor and a cap. I also have an in-kernel IR system but Christoph (lirc maintainer) won't consider it. He is a microkernel type - he wants everything in user space. My in-kernel version is tiny, less than 10K. It turns IR events into keystrokes on a virtual keyboard device. This is my old device tree, what should the new one look like? ir0@670 { /* General Purpose Timer 6 in Input mode */ compatible = "gpt-ir"; cell-index = <7>; reg = <0x670 0x10>; interrupts = <0x1 0x10 0x0>; interrupt-parent = <&mpc5200_pic>; }; -- Jon Smirl jonsmirl@gmail.com --0016e646983c6cfb03046479fca1 Content-Type: application/octet-stream; name=jds-lirc-gpt Content-Disposition: attachment; filename=jds-lirc-gpt Content-Transfer-Encoding: base64 X-Attachment-Id: f_frzdcyyz0 R1BUIGRyaXZlciBmb3IgaW4ta2VybmVsIElSIHN1cHBvcnQuCgpGcm9tOiBKb24gU21pcmwgPGpv bnNtaXJsQGdtYWlsLmNvbT4KCkdQVCBpcyBhIEdQSU8gcGluIHRoYXQgaXMgY2FibGUgYWJsZSBv ZiBtZWFzdXJpbmcgdGhlIGxlbmdodCBvZiBwdWxzZXMuCkdQVHMgYXJlIGNvbW1vbiBvbiBlbWJl ZGRlZCBzeXN0ZW1zCi0tLQogZHJpdmVycy9pbnB1dC9pci9LY29uZmlnICB8ICAgIDYgKwogZHJp dmVycy9pbnB1dC9pci9NYWtlZmlsZSB8ICAgIDMgKwogZHJpdmVycy9pbnB1dC9pci9pci1ncHQu YyB8ICAxODQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAz IGZpbGVzIGNoYW5nZWQsIDE5MyBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvaW5wdXQvaXIvaXItZ3B0LmMKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2lucHV0L2lyL0tjb25maWcgYi9kcml2ZXJzL2lucHV0L2lyL0tjb25maWcKaW5kZXggYTZm M2YyNS4uMTcyYzBjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9pci9LY29uZmlnCisrKyBi L2RyaXZlcnMvaW5wdXQvaXIvS2NvbmZpZwpAQCAtMTIsNCArMTIsMTAgQEAgbWVudWNvbmZpZyBJ TlBVVF9JUgogCiBpZiBJTlBVVF9JUgogCitjb25maWcgSVJfR1BUCisJdHJpc3RhdGUgIkdQVCBC YXNlZCBJUiBSZWNlaXZlciIKKwlkZWZhdWx0IG0KKwloZWxwCisJICBEcml2ZXIgZm9yIEdQVC1i YXNlZCBJUiByZWNlaXZlciBmb3VuZCBvbiBEaWdpc3BlYWtlcgorCiBlbmRpZgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9pbnB1dC9pci9NYWtlZmlsZSBiL2RyaXZlcnMvaW5wdXQvaXIvTWFrZWZpbGUK aW5kZXggMmNjZGRhMy4uYWIwZGEzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9pci9NYWtl ZmlsZQorKysgYi9kcml2ZXJzL2lucHV0L2lyL01ha2VmaWxlCkBAIC02LDMgKzYsNiBAQAogb2Jq LSQoQ09ORklHX0lOUFVUX0lSKQkJKz0gaXIubwogaXItb2JqcyA6PSBpci1jb3JlLm8gaXItY29u ZmlnZnMubwogCisKK29iai0kKENPTkZJR19JUl9HUFQpCQkrPSBpci1ncHQubworCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2lucHV0L2lyL2lyLWdwdC5jIGIvZHJpdmVycy9pbnB1dC9pci9pci1ncHQu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWQyZmE2Ci0tLSAvZGV2L251 bGwKKysrIGIvZHJpdmVycy9pbnB1dC9pci9pci1ncHQuYwpAQCAtMCwwICsxLDE4NCBAQAorLyoK KyAqIEdQVCB0aW1lciBiYXNlZCBJUiBkZXZpY2UKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg Sm9uIFNtaXJsIDxqb25zbWlybEBnbWFpbC5jb20+CisgKi8KKworI2RlZmluZSBERUJVRworCisj aW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1 ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1 ZGUgPGxpbnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+Cisj aW5jbHVkZSA8bGludXgvaW5wdXQuaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxh c20vbXBjNTJ4eC5oPgorCitzdHJ1Y3QgaXJfZ3B0IHsKKwlzdHJ1Y3QgaW5wdXRfZGV2ICppbnB1 dDsKKwlpbnQgaXJxLCBwcmV2aW91czsKKwlzdHJ1Y3QgbXBjNTJ4eF9ncHQgX19pb21lbSAqcmVn czsKK307CisKKy8qCisgKiBJbnRlcnJ1cHQgaGFuZGxlcnMKKyAqLworc3RhdGljIGlycXJldHVy bl90IGRwZWFrX2lyX2lycShpbnQgaXJxLCB2b2lkICpfaXIpCit7CisJc3RydWN0IGlyX2dwdCAq aXJfZ3B0ID0gX2lyOworCWludCBzYW1wbGUsIGNvdW50LCBkZWx0YSwgYml0LCB3cmFwOworCisJ c2FtcGxlID0gaW5fYmUzMigmaXJfZ3B0LT5yZWdzLT5zdGF0dXMpOworCW91dF9iZTMyKCZpcl9n cHQtPnJlZ3MtPnN0YXR1cywgMHhGKTsKKworCWNvdW50ID0gc2FtcGxlID4+IDE2OworCXdyYXAg PSAoc2FtcGxlID4+IDEyKSAmIDc7CisJYml0ID0gKHNhbXBsZSA+PiA4KSAmIDE7CisKKwlkZWx0 YSA9IGNvdW50IC0gaXJfZ3B0LT5wcmV2aW91czsKKwlkZWx0YSArPSB3cmFwICogMHgxMDAwMDsK KworCWlyX2dwdC0+cHJldmlvdXMgPSBjb3VudDsKKworCWlmIChiaXQpCisJCWRlbHRhID0gLWRl bHRhOworCisJaW5wdXRfaXJfcXVldWUoaXJfZ3B0LT5pbnB1dCwgZGVsdGEpOworCisJcmV0dXJu IElSUV9IQU5ETEVEOworfQorCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogT0YgcGxhdGZvcm0gYnVz IGJpbmRpbmcgY29kZToKKyAqIC0gUHJvYmUvcmVtb3ZlIG9wZXJhdGlvbnMKKyAqIC0gT0YgZGV2 aWNlIG1hdGNoIHRhYmxlCisgKi8KK3N0YXRpYyBpbnQgX19kZXZpbml0IGlyX2dwdF9vZl9wcm9i ZShzdHJ1Y3Qgb2ZfZGV2aWNlICpvcCwKKwkJCQkgICAgICBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNl X2lkICptYXRjaCkKK3sKKwlzdHJ1Y3QgaXJfZ3B0ICppcl9ncHQ7CisJc3RydWN0IHJlc291cmNl IHJlczsKKwlpbnQgcmV0LCByYzsKKworCWRldl9kYmcoJm9wLT5kZXYsICJpcl9ncHRfb2ZfcHJv YmVcbiIpOworCisJLyogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgdGhlIGRyaXZlciBwcml2YXRl IGRhdGEgKi8KKwlpcl9ncHQgPSBremFsbG9jKHNpemVvZiAqaXJfZ3B0LCBHRlBfS0VSTkVMKTsK KwlpZiAoIWlyX2dwdCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpcl9ncHQtPmlucHV0ID0gaW5w dXRfYWxsb2NhdGVfZGV2aWNlKCk7CisJaWYgKCFpcl9ncHQtPmlucHV0KSB7CisJCXJldCA9IC1F Tk9NRU07CisJCWdvdG8gZnJlZV9tZW07CisJfQorCXJldCA9IGlucHV0X2lyX2NyZWF0ZShpcl9n cHQtPmlucHV0LCBpcl9ncHQsIE5VTEwpOworCWlmIChyZXQpCisJCWdvdG8gZnJlZV9pbnB1dDsK KworCWlyX2dwdC0+aW5wdXQtPmlkLmJ1c3R5cGUgPSBCVVNfSE9TVDsKKwlpcl9ncHQtPmlucHV0 LT5uYW1lID0gIkdQVCBJUiBSZWNlaXZlciI7CisKKwlpcl9ncHQtPmlucHV0LT5pcmJpdFswXSB8 PSBCSVRfTUFTSyhJUl9DQVBfUkVDRUlWRV8zNkspOworCWlyX2dwdC0+aW5wdXQtPmlyYml0WzBd IHw9IEJJVF9NQVNLKElSX0NBUF9SRUNFSVZFXzM4Syk7CisJaXJfZ3B0LT5pbnB1dC0+aXJiaXRb MF0gfD0gQklUX01BU0soSVJfQ0FQX1JFQ0VJVkVfNDBLKTsKKwlpcl9ncHQtPmlucHV0LT5pcmJp dFswXSB8PSBCSVRfTUFTSyhJUl9DQVBfUkVDRUlWRV9SQVcpOworCisJcmV0ID0gaW5wdXRfcmVn aXN0ZXJfZGV2aWNlKGlyX2dwdC0+aW5wdXQpOworCWlmIChyZXQpCisJCWdvdG8gZnJlZV9pbnB1 dDsKKwlyZXQgPSBpbnB1dF9pcl9yZWdpc3Rlcihpcl9ncHQtPmlucHV0KTsKKwlpZiAocmV0KQor CQlnb3RvIGZyZWVfaW5wdXQ7CisKKwkvKiBGZXRjaCB0aGUgcmVnaXN0ZXJzIGFuZCBJUlEgb2Yg dGhlIEdQVCAqLworCWlmIChvZl9hZGRyZXNzX3RvX3Jlc291cmNlKG9wLT5ub2RlLCAwLCAmcmVz KSkgeworCQlkZXZfZXJyKCZvcC0+ZGV2LCAiTWlzc2luZyByZWcgcHJvcGVydHlcbiIpOworCQly ZXQgPSAtRU5PREVWOworCQlnb3RvIGZyZWVfaW5wdXQ7CisJfQorCWlyX2dwdC0+cmVncyA9IGlv cmVtYXAocmVzLnN0YXJ0LCAxICsgcmVzLmVuZCAtIHJlcy5zdGFydCk7CisJaWYgKCFpcl9ncHQt PnJlZ3MpIHsKKwkJZGV2X2Vycigmb3AtPmRldiwgIkNvdWxkIG5vdCBtYXAgcmVnaXN0ZXJzXG4i KTsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBmcmVlX2lucHV0OworCX0KKwlpcl9ncHQtPmly cSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG9wLT5ub2RlLCAwKTsKKwlpZiAoaXJfZ3B0LT5pcnEg PT0gTk9fSVJRKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gZnJlZV9pbnB1dDsKKwl9CisJ ZGV2X2RiZygmb3AtPmRldiwgImlyX2dwdF9vZl9wcm9iZSBpcnE9JWRcbiIsIGlyX2dwdC0+aXJx KTsKKworCXJjID0gcmVxdWVzdF9pcnEoaXJfZ3B0LT5pcnEsICZkcGVha19pcl9pcnEsIElSUUZf U0hBUkVELAorCQkJICJncHQtaXIiLCBpcl9ncHQpOworCWRldl9kYmcoJm9wLT5kZXYsICJpcl9n cHRfb2ZfcHJvYmUgcmVxdWVzdCBpcnEgcmM9JWRcbiIsIHJjKTsKKworCS8qIHNldCBwcmVzY2Fs ZSB0byA/ICovCisJb3V0X2JlMzIoJmlyX2dwdC0+cmVncy0+Y291bnQsIDB4MDA4NzAwMDApOwor CisJLyogU2VsZWN0IGlucHV0IGNhcHR1cmUsIGVuYWJsZSB0aGUgY291bnRlciwgYW5kIGludGVy cnVwdCAqLworCW91dF9iZTMyKCZpcl9ncHQtPnJlZ3MtPm1vZGUsIDB4MCk7CisJb3V0X2JlMzIo JmlyX2dwdC0+cmVncy0+bW9kZSwgMHgwMDAwMDUwMSk7CisKKwkvKiBTYXZlIHdoYXQgd2UndmUg ZG9uZSBzbyBpdCBjYW4gYmUgZm91bmQgYWdhaW4gbGF0ZXIgKi8KKwlkZXZfc2V0X2RydmRhdGEo Jm9wLT5kZXYsIGlyX2dwdCk7CisKKwlwcmludGsoIkdQVCBJUiBSZWNlaXZlciBkcml2ZXJcbiIp OworCisJcmV0dXJuIDA7CisKK2ZyZWVfaW5wdXQ6CisJaW5wdXRfZnJlZV9kZXZpY2UoaXJfZ3B0 LT5pbnB1dCk7CitmcmVlX21lbToKKwlrZnJlZShpcl9ncHQpOworCXJldHVybiByZXQ7Cit9CisK K3N0YXRpYyBpbnQgX19kZXZleGl0IGlyX2dwdF9vZl9yZW1vdmUoc3RydWN0IG9mX2RldmljZSAq b3ApCit7CisJc3RydWN0IGlyX2dwdCAqaXJfZ3B0ID0gZGV2X2dldF9kcnZkYXRhKCZvcC0+ZGV2 KTsKKworCWRldl9kYmcoJm9wLT5kZXYsICJpcl9ncHRfcmVtb3ZlKClcbiIpOworCisJaW5wdXRf dW5yZWdpc3Rlcl9kZXZpY2UoaXJfZ3B0LT5pbnB1dCk7CisJa2ZyZWUoaXJfZ3B0KTsKKwlkZXZf c2V0X2RydmRhdGEoJm9wLT5kZXYsIE5VTEwpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIE1hdGNo IHRhYmxlIGZvciBvZl9wbGF0Zm9ybSBiaW5kaW5nICovCitzdGF0aWMgc3RydWN0IG9mX2Rldmlj ZV9pZCBpcl9ncHRfbWF0Y2hbXSBfX2RldmluaXRkYXRhID0geworCXsgLmNvbXBhdGlibGUgPSAi Z3B0LWlyIiwgfSwKKwl7fQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGlyX2dwdF9tYXRj aCk7CisKK3N0YXRpYyBzdHJ1Y3Qgb2ZfcGxhdGZvcm1fZHJpdmVyIGlyX2dwdF9kcml2ZXIgPSB7 CisJLm1hdGNoX3RhYmxlID0gaXJfZ3B0X21hdGNoLAorCS5wcm9iZSA9IGlyX2dwdF9vZl9wcm9i ZSwKKwkucmVtb3ZlID0gX19kZXZleGl0X3AoaXJfZ3B0X29mX3JlbW92ZSksCisJLmRyaXZlciA9 IHsKKwkJLm5hbWUgPSAiaXItZ3B0IiwKKwkJLm93bmVyID0gVEhJU19NT0RVTEUsCisJfSwKK307 CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICogTW9kdWxlIHNldHVwIGFuZCB0ZWFyZG93bjsgc2ltcGx5 IHJlZ2lzdGVyIHRoZSBvZl9wbGF0Zm9ybSBkcml2ZXIKKyAqLworc3RhdGljIGludCBfX2luaXQg aXJfZ3B0X2luaXQodm9pZCkKK3sKKwlyZXR1cm4gb2ZfcmVnaXN0ZXJfcGxhdGZvcm1fZHJpdmVy KCZpcl9ncHRfZHJpdmVyKTsKK30KK21vZHVsZV9pbml0KGlyX2dwdF9pbml0KTsKKworc3RhdGlj IHZvaWQgX19leGl0IGlyX2dwdF9leGl0KHZvaWQpCit7CisJb2ZfdW5yZWdpc3Rlcl9wbGF0Zm9y bV9kcml2ZXIoJmlyX2dwdF9kcml2ZXIpOworfQorbW9kdWxlX2V4aXQoaXJfZ3B0X2V4aXQpOwo= --0016e646983c6cfb03046479fca1--