From patchwork Thu Nov 19 17:18:10 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gregoire Gentil X-Patchwork-Id: 61403 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id nAJHIq7p005131 for ; Thu, 19 Nov 2009 17:18:52 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753611AbZKSRSp (ORCPT ); Thu, 19 Nov 2009 12:18:45 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753622AbZKSRSp (ORCPT ); Thu, 19 Nov 2009 12:18:45 -0500 Received: from fg-out-1718.google.com ([72.14.220.156]:7967 "EHLO fg-out-1718.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753576AbZKSRSo (ORCPT ); Thu, 19 Nov 2009 12:18:44 -0500 Received: by fg-out-1718.google.com with SMTP id d23so896610fga.1 for ; Thu, 19 Nov 2009 09:18:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:from:to:cc:subject :date:message-id:x-mailer:in-reply-to:references; bh=9yUVZ4cnYHfAnIwtyxyZPf2Lsq1x0FPlgKIUGX5IUAM=; b=ja8PHP7a5PgfAXOiIRwjFCISlD3sIPxOuI/LbjLiJko8Z78xh6CtUlHmRMDiA7p+nt GBN+uNKO5BPn4PgJoTW/m24Ypz3weZANNRH6ml0fk4m4LEbtNExCWSaRkcsd7wCgqqqB WA8Hwh8JdLooaksBcDquRleIk5Vu1bkEUuMIc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references; b=NyTYZjdSPJzbgaVMFr56XK0XJBEM2f2kzKstIC8RSuJA8Q58vMUMwIDvQEJuEOF8sU KF8mNV8paXTODmHNSGbJ7LVxCWnGYgIniofZmYO6uU5oDeHZi178gt04ovyTW9eW3Xm1 kTHECJAafJ+O+oz8XcgCmhRbNKPqvdbOMFgdg= Received: by 10.86.249.22 with SMTP id w22mr278404fgh.1.1258651130806; Thu, 19 Nov 2009 09:18:50 -0800 (PST) Received: from localhost.localdomain (adsl-99-138-86-218.dsl.pltn13.sbcglobal.net [99.138.86.218]) by mx.google.com with ESMTPS id l12sm1669010fgb.25.2009.11.19.09.18.48 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 19 Nov 2009 09:18:49 -0800 (PST) From: Gregoire Gentil To: linux-omap@vger.kernel.org Cc: Gregoire Gentil , Tony Lindgren , Tim Yamin Subject: [PATCH 7/8] Video driver of Always Innovating OMAP3-based Touch Book Date: Thu, 19 Nov 2009 09:18:10 -0800 Message-Id: <1258651091-31727-8-git-send-email-gregoire@gentil.com> X-Mailer: git-send-email 1.6.0.4 In-Reply-To: <1258651091-31727-7-git-send-email-gregoire@gentil.com> References: <1258651091-31727-1-git-send-email-gregoire@gentil.com> <1258651091-31727-2-git-send-email-gregoire@gentil.com> <1258651091-31727-3-git-send-email-gregoire@gentil.com> <1258651091-31727-4-git-send-email-gregoire@gentil.com> <1258651091-31727-5-git-send-email-gregoire@gentil.com> <1258651091-31727-6-git-send-email-gregoire@gentil.com> <1258651091-31727-7-git-send-email-gregoire@gentil.com> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org diff --git a/drivers/video/omap/lcd_omap3touchbook.c b/drivers/video/omap/lcd_omap3touchbook.c new file mode 100644 index 0000000..5b58703 --- /dev/null +++ b/drivers/video/omap/lcd_omap3touchbook.c @@ -0,0 +1,130 @@ +/* + * LCD panel support for the Touch Book + * + * Author: Gregoire Gentil + * + * Derived from drivers/video/omap/lcd-omap3beagle.c + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include + +#include +#include +#include + +#define LCD_PANEL_ENABLE_GPIO 176 + +static int omap3beagle_panel_init(struct lcd_panel *panel, + struct omapfb_device *fbdev) +{ + gpio_request(LCD_PANEL_ENABLE_GPIO, "LCD enable"); + return 0; +} + +static void omap3beagle_panel_cleanup(struct lcd_panel *panel) +{ + gpio_free(LCD_PANEL_ENABLE_GPIO); +} + +static int omap3beagle_panel_enable(struct lcd_panel *panel) +{ + gpio_set_value(LCD_PANEL_ENABLE_GPIO, 1); + return 0; +} + +static void omap3beagle_panel_disable(struct lcd_panel *panel) +{ + gpio_set_value(LCD_PANEL_ENABLE_GPIO, 0); +} + +static unsigned long omap3beagle_panel_get_caps(struct lcd_panel *panel) +{ + return 0; +} + +struct lcd_panel omap3beagle_panel = { + .name = "omap3beagle", + .config = OMAP_LCDC_PANEL_TFT, + + .bpp = 16, + .data_lines = 24, + .x_res = 1024, + .y_res = 600, + .hsw = 3, + .hfp = 3, + .hbp = 39, + .vsw = 1, + .vfp = 2, + .vbp = 7, + + .pixel_clock = 64000, + + .init = omap3touchbook_panel_init, + .cleanup = omap3touchbook_panel_cleanup, + .enable = omap3touchbook_panel_enable, + .disable = omap3touchbook_panel_disable, + .get_caps = omap3touchbook_panel_get_caps, +}; + +static int omap3touchbook_panel_probe(struct platform_device *pdev) +{ + omapfb_register_panel(&omap3beagle_panel); + return 0; +} + +static int omap3touchbook_panel_remove(struct platform_device *pdev) +{ + return 0; +} + +static int omap3touchbook_panel_suspend(struct platform_device *pdev, + pm_message_t mesg) +{ + return 0; +} + +static int omap3touchbook_panel_resume(struct platform_device *pdev) +{ + return 0; +} + +struct platform_driver omap3touchbook_panel_driver = { + .probe = omap3touchbook_panel_probe, + .remove = omap3touchbook_panel_remove, + .suspend = omap3touchbook_panel_suspend, + .resume = omap3touchbook_panel_resume, + .driver = { + .name = "omap3touchbook_lcd", + .owner = THIS_MODULE, + }, +}; + +static int __init omap3touchbook_panel_drv_init(void) +{ + return platform_driver_register(&omap3beagle_panel_driver); +} + +static void __exit omap3touchbook_panel_drv_exit(void) +{ + platform_driver_unregister(&omap3touchbook_panel_driver); +} + +module_init(omap3touchbook_panel_drv_init); +module_exit(omap3touchbook_panel_drv_exit);