From owner-freebsd-usb@FreeBSD.ORG Fri Nov 11 21:37:37 2011 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF43D1065674 for ; Fri, 11 Nov 2011 21:37:37 +0000 (UTC) (envelope-from jdl.ntq@gmail.com) Received: from mail-pz0-f44.google.com (mail-pz0-f44.google.com [209.85.210.44]) by mx1.freebsd.org (Postfix) with ESMTP id A79D78FC0C for ; Fri, 11 Nov 2011 21:37:37 +0000 (UTC) Received: by pzk33 with SMTP id 33so11599356pzk.3 for ; Fri, 11 Nov 2011 13:37:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=VJBBsXdqt4FTeWoXtCcPu7oLMAo3SWDC7x618GBZgp4=; b=O005UdgJquxDrG1sEI75dVHw5VUYTnDdwZTCho5B3aOJYkl/GGjj7KE7+1nIEkG3Wt BlsZcP79Iz4lwQk+gIh/iJVV1RPDFqK8VZg++YXucfO/eQTDEt+JH2zhz5R1GD4tduSS AFc9fddsW4G/UPkkUvea0HZpxWGXyTuP3WpiU= MIME-Version: 1.0 Received: by 10.68.38.169 with SMTP id h9mr27198078pbk.113.1321045579986; Fri, 11 Nov 2011 13:06:19 -0800 (PST) Received: by 10.68.52.74 with HTTP; Fri, 11 Nov 2011 13:06:19 -0800 (PST) Date: Fri, 11 Nov 2011 23:06:19 +0200 Message-ID: From: JD Louw To: freebsd-usb@freebsd.org Content-Type: multipart/mixed; boundary=bcaec520f1bd86f6b604b17be40b Subject: [uslcom][patch] Add GPIO support X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Nov 2011 21:37:37 -0000 --bcaec520f1bd86f6b604b17be40b Content-Type: text/plain; charset=ISO-8859-1 This patch adds custom IOCTLs to read and write the 4 GPIO pins on the cp2103 usb-to-serial chip. Time from IOCTL to actual pin change is pretty slow though. --bcaec520f1bd86f6b604b17be40b Content-Type: text/plain; charset=US-ASCII; name="gpio.patch.txt" Content-Disposition: attachment; filename="gpio.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_guvodzts0 SW5kZXg6IHNlcmlhbC91c2xjb20uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzZXJpYWwvdXNsY29tLmMJKHJl dmlzaW9uIDIyNzQ1MykKKysrIHNlcmlhbC91c2xjb20uYwkod29ya2luZyBjb3B5KQpAQCAtNDIs NiArNDIsNyBAQAogI2luY2x1ZGUgPGRldi91c2IvdXNiZGkuaD4KICNpbmNsdWRlIDxkZXYvdXNi L3VzYmRpX3V0aWwuaD4KICNpbmNsdWRlICJ1c2JkZXZzLmgiCisjaW5jbHVkZSA8ZGV2L3VzYi91 c2JfaW9jdGwuaD4KIAogI2RlZmluZQlVU0JfREVCVUdfVkFSIHVzbGNvbV9kZWJ1ZwogI2luY2x1 ZGUgPGRldi91c2IvdXNiX2RlYnVnLmg+CkBAIC03NSw2ICs3Niw3IEBACiAjZGVmaW5lCVVTTENP TV9DVFJMCQkweDA3CiAjZGVmaW5lCVVTTENPTV9SQ1RSTCAgICAgICAgICAgIDB4MDgKICNkZWZp bmUJVVNMQ09NX1NFVF9GTE9XQ1RSTCAgICAgMHgxMworI2RlZmluZQlVU0xDT01fVkVORE9SX1NQ RUNJRklDCTB4ZmYKIAogLyogVVNMQ09NX1VBUlQgdmFsdWVzICovCiAjZGVmaW5lCVVTTENPTV9V QVJUX0RJU0FCTEUJMHgwMApAQCAtMTEzLDYgKzExNSwxMCBAQAogI2RlZmluZQlVU0xDT01fRkxP V19SVFNfT04gICAgICAweDAwMDAwMDQwIC8qIFJUUyBzdGF0aWMgYWN0aXZlICovCiAjZGVmaW5l CVVTTENPTV9GTE9XX1JUU19IUyAgICAgIDB4MDAwMDAwODAgLyogUlRTIGhhbmRzaGFrZSAqLwog CisvKiBVU0xDT01fVkVORE9SX1NQRUNJRklDIHZhbHVlcyAqLworI2RlZmluZQlVU0xDT01fV1JJ VEVfTEFUQ0gJMHgzN0UxCisjZGVmaW5lCVVTTENPTV9SRUFEX0xBVENICTB4MDBDMgorCiBlbnVt IHsKIAlVU0xDT01fQlVMS19EVF9XUiwKIAlVU0xDT01fQlVMS19EVF9SRCwKQEAgLTE0NSw2ICsx NTEsOCBAQAogc3RhdGljIHZvaWQgdXNsY29tX3NldF9kdHIoc3RydWN0IHVjb21fc29mdGMgKiwg dWludDhfdCk7CiBzdGF0aWMgdm9pZCB1c2xjb21fc2V0X3J0cyhzdHJ1Y3QgdWNvbV9zb2Z0YyAq LCB1aW50OF90KTsKIHN0YXRpYyB2b2lkIHVzbGNvbV9zZXRfYnJlYWsoc3RydWN0IHVjb21fc29m dGMgKiwgdWludDhfdCk7CitzdGF0aWMgaW50IHVzbGNvbV9pb2N0bChzdHJ1Y3QgdWNvbV9zb2Z0 YyAqLCB1aW50MzJfdCwgY2FkZHJfdCwgaW50LAorCQlzdHJ1Y3QgdGhyZWFkICopOwogc3RhdGlj IGludCB1c2xjb21fcHJlX3BhcmFtKHN0cnVjdCB1Y29tX3NvZnRjICosIHN0cnVjdCB0ZXJtaW9z ICopOwogc3RhdGljIHZvaWQgdXNsY29tX3BhcmFtKHN0cnVjdCB1Y29tX3NvZnRjICosIHN0cnVj dCB0ZXJtaW9zICopOwogc3RhdGljIHZvaWQgdXNsY29tX2dldF9zdGF0dXMoc3RydWN0IHVjb21f c29mdGMgKiwgdWludDhfdCAqLCB1aW50OF90ICopOwpAQCAtMTkyLDYgKzIwMCw3IEBACiAJLnVj b21fY2ZnX3NldF9kdHIgPSAmdXNsY29tX3NldF9kdHIsCiAJLnVjb21fY2ZnX3NldF9ydHMgPSAm dXNsY29tX3NldF9ydHMsCiAJLnVjb21fY2ZnX3NldF9icmVhayA9ICZ1c2xjb21fc2V0X2JyZWFr LAorCS51Y29tX2lvY3RsID0gJnVzbGNvbV9pb2N0bCwKIAkudWNvbV9jZmdfcGFyYW0gPSAmdXNs Y29tX3BhcmFtLAogCS51Y29tX3ByZV9wYXJhbSA9ICZ1c2xjb21fcHJlX3BhcmFtLAogCS51Y29t X3N0YXJ0X3JlYWQgPSAmdXNsY29tX3N0YXJ0X3JlYWQsCkBAIC01OTEsNiArNjAwLDU3IEBACiAJ fQogfQogCitzdGF0aWMgaW50Cit1c2xjb21faW9jdGwoc3RydWN0IHVjb21fc29mdGMgKnVjb20s IHVpbnQzMl90IGNtZCwgY2FkZHJfdCBkYXRhLAorICAgIGludCBmbGFnLCBzdHJ1Y3QgdGhyZWFk ICp0ZCkKK3sKKwlzdHJ1Y3QgdXNsY29tX3NvZnRjICpzYyA9IHVjb20tPnNjX3BhcmVudDsKKwlz dHJ1Y3QgdXNiX2RldmljZV9yZXF1ZXN0IHJlcTsKKwlpbnQgZXJyb3IgPSAwOworCXVpbnQ4X3Qg bGF0Y2g7CisKKwlEUFJJTlRGKCJjbWQ9MHglMDh4XG4iLCBjbWQpOworCisJc3dpdGNoIChjbWQp IHsKKworCWNhc2UgVVNCX0dFVF9HUElPOgorCQlyZXEuYm1SZXF1ZXN0VHlwZSA9IFVTTENPTV9S RUFEOworCQlyZXEuYlJlcXVlc3QgPSBVU0xDT01fVkVORE9SX1NQRUNJRklDOworCQlVU0VUVyhy ZXEud1ZhbHVlLCBVU0xDT01fUkVBRF9MQVRDSCk7CisJCVVTRVRXKHJlcS53SW5kZXgsIDApOwor CQlVU0VUVyhyZXEud0xlbmd0aCwgc2l6ZW9mKGxhdGNoKSk7CisKKyAgICAgICAgCWlmICh1Y29t X2NmZ19kb19yZXF1ZXN0KHNjLT5zY191ZGV2LCAmc2MtPnNjX3Vjb20sIAorCQkgICAgJnJlcSwg JmxhdGNoLCAwLCAxMDAwKSkgeworCQkJRFBSSU5URigiR2V0IExBVENIIGZhaWxlZFxuIik7CisJ CQllcnJvciA9IEVJTzsKKwkJfQorCQkqKHVpbnQ4X3QgKilkYXRhID0gbGF0Y2g7CisJCWJyZWFr OworCisJY2FzZSBVU0JfU0VUX0dQSU86CisJCXJlcS5ibVJlcXVlc3RUeXBlID0gVVNMQ09NX1dS SVRFOworCQlyZXEuYlJlcXVlc3QgPSBVU0xDT01fVkVORE9SX1NQRUNJRklDOworCQlVU0VUVyhy ZXEud1ZhbHVlLCBVU0xDT01fV1JJVEVfTEFUQ0gpOworCQlVU0VUVyhyZXEud0luZGV4LCAoKih1 aW50MTZfdCAqKWRhdGEpKTsKKwkJVVNFVFcocmVxLndMZW5ndGgsIDApOworCQkKKyAgICAgICAg CWlmICh1Y29tX2NmZ19kb19yZXF1ZXN0KHNjLT5zY191ZGV2LCAmc2MtPnNjX3Vjb20sIAorCQkg ICAgJnJlcSwgTlVMTCwgMCwgMTAwMCkpIHsKKwkJCURQUklOVEYoIlNldCBMQVRDSCBmYWlsZWRc biIpOworCQkJZXJyb3IgPSBFSU87CisJCX0KKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlEUFJJ TlRGKCJ1bmtub3duXG4iKTsKKwkJZXJyb3IgPSBFTk9JT0NUTDsKKwkJYnJlYWs7CisJfQorCisJ cmV0dXJuIChlcnJvcik7Cit9CisKIHN0YXRpYyB2b2lkCiB1c2xjb21fd3JpdGVfY2FsbGJhY2so c3RydWN0IHVzYl94ZmVyICp4ZmVyLCB1c2JfZXJyb3JfdCBlcnJvcikKIHsKSW5kZXg6IHVzYl9p b2N0bC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHVzYl9pb2N0bC5oCShyZXZpc2lvbiAyMjc0NTMpCisrKyB1 c2JfaW9jdGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjg5LDYgKzI4OSwxMCBAQAogI2RlZmluZQlV U0JfR0VUX0NNX09WRVJfREFUQQlfSU9SICgnVScsIDE4MCwgaW50KQogI2RlZmluZQlVU0JfU0VU X0NNX09WRVJfREFUQQlfSU9XICgnVScsIDE4MSwgaW50KQogCisvKiBHUElPIGNvbnRyb2wgKi8K KyNkZWZpbmUJVVNCX0dFVF9HUElPCQlfSU9SICgnVScsIDE4MiwgaW50KQorI2RlZmluZQlVU0Jf U0VUX0dQSU8JCV9JT1cgKCdVJywgMTgzLCBpbnQpCisKIC8qIFVTQiBmaWxlIHN5c3RlbSBpbnRl cmZhY2UgKi8KICNkZWZpbmUJVVNCX0ZTX1NUQVJUCQlfSU9XICgnVScsIDE5Miwgc3RydWN0IHVz Yl9mc19zdGFydCkKICNkZWZpbmUJVVNCX0ZTX1NUT1AJCV9JT1cgKCdVJywgMTkzLCBzdHJ1Y3Qg dXNiX2ZzX3N0b3ApCg== --bcaec520f1bd86f6b604b17be40b--