From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934830AbbEOPQg (ORCPT ); Fri, 15 May 2015 11:16:36 -0400 Received: from opensource.wolfsonmicro.com ([80.75.67.52]:52981 "EHLO opensource.wolfsonmicro.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934499AbbEOPQe (ORCPT ); Fri, 15 May 2015 11:16:34 -0400 Date: Fri, 15 May 2015 16:16:32 +0100 From: Charles Keepax To: Chanwoo Choi Cc: linux-kernel@vger.kernel.org, myungjoo.ham@samsung.com, k.kozlowski@samsung.com, gg@slimlogic.co.uk, kishon@ti.com, jaewon02.kim@samsung.com, rogerq@ti.com, ramakrishna.pallala@intel.com, george.cherian@ti.com, balbi@ti.com, aaro.koskinen@iki.fi Subject: Re: [PATCH 1/2] extcon: Use the unique id for external connector instead of string Message-ID: <20150515151632.GM3480@opensource.wolfsonmicro.com> References: <1431700278-30465-1-git-send-email-cw00.choi@samsung.com> <1431700278-30465-2-git-send-email-cw00.choi@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1431700278-30465-2-git-send-email-cw00.choi@samsung.com> User-Agent: Mutt/1.5.17+20080114 (2008-01-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, May 15, 2015 at 11:31:17PM +0900, Chanwoo Choi wrote: > This patch uses the unique id to identify the type of external connector instead > of string name. The string name have the many potential issues. So, this patch > defines the 'extcon' enumeration which includes all supported external connector > on EXTCON subsystem. If new external connector is necessary, the unique id of > new connector have to be added in 'extcon' enumeration. There are current > supported external connector in 'enum extcon' as following: > > enum extcon { > EXTCON_NONE = 0x0, /* NONE */ > > /* USB external connector */ > EXTCON_USB = 0x1, /* USB */ > EXTCON_USB_HOST = 0x2, /* USB-HOST */ > > /* Charger external connector */ > EXTCON_TA = 0x10, /* TA */ > EXTCON_FAST_CHARGER = 0x11, /* FAST-CHARGER */ > EXTCON_SLOW_CHARGER = 0x12, /* SLOW-CHARGER */ > EXTCON_CHARGE_DOWNSTREAM= 0x13, /* CHARGE-DOWNSTREAM */ > > /* Audio and video external connector */ > EXTCON_LINE_IN = 0x20, /* LINE-IN */ > EXTCON_LINE_OUT = 0x21, /* LINE-OUT */ > EXTCON_MICROPHONE = 0x22, /* MICROPHONE */ > EXTCON_HEADPHONE = 0x23, /* HEADPHONE */ > > EXTCON_HDMI = 0x30, /* HDMI */ > EXTCON_MHL = 0x31, /* MHL */ > EXTCON_DVI = 0x32, /* DVI */ > EXTCON_VGA = 0x33, /* VGA */ > EXTCON_SPDIF_IN = 0x34, /* SPDIF-IN */ > EXTCON_SPDIF_OUT = 0x35, /* SPDIF-OUT */ > EXTCON_VIDEO_IN = 0x36, /* VIDEO-IN */ > EXTCON_VIDEO_OUT = 0x37, /* VIDEO-OUT */ > > /* Miscellaneous external connector */ > EXTCON_DOCK = 0x50, /* DOCK */ > EXTCON_JIG = 0x51, /* JIG */ > EXTCON_MECHANICAL = 0x52, /* MECHANICAL */ > > __EXTCON_END, > }; > > For exmaple in extcon-arizoan.c: > To use unique id removes the potential issue about handling > the inconsistent name of external connector with string. > - Previously, use the string to register the type of arizona jack connector > static const char *arizona_cable[] = { > "Mechanical", > "Microphone", > "Headphone", > "Line-out", > }; > - Newly, use the unique id to register the type of arizona jack connector > static const enum extcon arizona_cable[] = { > EXTCON_MECHANICAL, > EXTCON_MICROPHONE, > EXTCON_HEADPHONE, > EXTCON_LINE_OUT, > > EXTCON_NONE, > }; > > And this patch modify the prototype of extcon_{get|set}_cable_state_() which > uses the 'enum extcon id' instead of 'cable_index'. Because although one more > extcon drivers support USB cable, each extcon driver might has the differnt > 'cable_index' for USB cable. All extcon drivers can use the unique id number > for same external connector with modified extcon_{get|set}_cable_state_(). > > - Previously, use 'cable_index' on these functions: > extcon_get_cable_state_(struct extcon_dev*, int cable_index) > extcon_set_cable_state_(struct extcon_dev*, int cable_index, bool state) > > -Newly, use 'enum extcon id' on these functions: > extcon_get_cable_state_(struct extcon_dev*, enum extcon id) > extcon_set_cable_state_(struct extcon_dev*, enum extcon id, bool state) > > Signed-off-by: Chanwoo Choi > Cc: MyungJoo Ham > Cc: Krzysztof Kozlowski > Cc: Charles Keepax > Cc: Graeme Gregory > Cc: Kishon Vijay Abraham I > Cc: Jaewon Kim > Cc: Roger Quadros > Cc: Ramakrishna Pallala > --- Acked-by: Charles Keepax Thanks, Charles