From owner-freebsd-arm@FreeBSD.ORG Wed Apr 16 03:16:09 2014 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 21001D8C for ; Wed, 16 Apr 2014 03:16:09 +0000 (UTC) Received: from spoon.beta.com (spoon.beta.com [199.165.180.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C3B9411DF for ; Wed, 16 Apr 2014 03:16:08 +0000 (UTC) Received: from [199.165.180.42] (dhcp12.beta.com [199.165.180.42]) by spoon.beta.com (8.14.5/8.14.5) with ESMTP id s3G3G6DP014679 for ; Tue, 15 Apr 2014 23:16:06 -0400 (EDT) (envelope-from mcgovern@beta.com) Subject: Plans for standardizing digital/analog I/O? From: "Brian J. McGovern" To: freebsd-arm@freebsd.org Content-Type: text/plain; charset="us-ascii" Organization: B.E.T.A. Date: Tue, 15 Apr 2014 23:16:02 -0400 Message-ID: <1397618162.1484.26.camel@fbsd-laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-0.7 required=5.0 tests=HELO_MISC_IP, RP_MATCHES_RCVD autolearn=unavailable version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on spoon.beta.com X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: mcgovern@beta.com List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Apr 2014 03:16:09 -0000 This is probably best suited for a more generic list, but given digital and analog I/O are at the core of many of the ARM based development boards out there, I figured I'd ask here first... Is anyone talking about standardizing the various I/O framworks that exist/are being built? Or, perhaps more correctly,standardizing the _interfaces_ to the various I/O frameworks? To use the BBB as an example platform, the digital I/O work seems to use the gpio[ctl] framework, while the ADC uses sysctl under the new/current driver. I haven't looked at PWM outputs yet. Finally, given that I have passthrough driver for the various Velleman I/O boards (the 110, 140, and 167) which allow the application to speak the various protocols to the boards (not to mention allowing me to plug in 5V and 12V things in to the 1.8V BBB world without much modification), I'm discovering there are at least 6 ways to do I/O in my world, and I'm guessing there are a lot more if I were to keep digging. So, I'm curious if anyone is working on or proposing a more generic, or at least standard, kernel interface to plug in to? Perhaps sysctls are a way to go, or a set of /dev/hwio/* entries. I'd also be interested in hearing anyone's thoughts on the matter, should I decide to go off and build something, either in kernel or user space, to unify these spaces for the ease of application programming. -B