From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753257AbcGVJ3U (ORCPT ); Fri, 22 Jul 2016 05:29:20 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:43052 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751824AbcGVJ3Q (ORCPT ); Fri, 22 Jul 2016 05:29:16 -0400 MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 X-AuditID: cbfee68e-f79266d000001428-9e-5791e76a564e Content-transfer-encoding: 8BIT Subject: Re: [v6 PATCH 1/6] extcon: Add Type-C and DP support To: Chris Zhong , dianders@chromium.org, tfiga@chromium.org, heiko@sntech.de, yzq@rock-chips.com, groeck@chromium.org, myungjoo.ham@samsung.com, wulf@rock-chips.com, marcheu@chromium.org References: <1469106808-28297-1-git-send-email-zyw@rock-chips.com> <1469106808-28297-2-git-send-email-zyw@rock-chips.com> Cc: linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org From: Chanwoo Choi Message-id: <5791E769.9060403@samsung.com> Date: Fri, 22 Jul 2016 18:29:13 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 In-reply-to: <1469106808-28297-2-git-send-email-zyw@rock-chips.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrFIsWRmVeSWpSXmKPExsWyRsSkQDfr+cRwg1eP+SzOLjvIZnHq1TJm i/+PXrNaXN41h83i04P/zBbzDv1mtLjduILN4nPrPzaLVWuPM1vMXbeEzWL+gx3MDtwesxsu snhsXlLv8XfWfhaPvi2rGD22X5vH7PF5k1wAWxSXTUpqTmZZapG+XQJXxuu3J1gK/qpU/F5x jrGBcYJsFyMHh4SAicTyxXVdjJxAppjEhXvr2boYuTiEBFYwSkw5dIQVImEicWtzFzNEYhaj xMWGd+wgCV4BQYkfk++xgAxiFpCXOHIpGyTMLKAuMWneIqj6B4wS669fBKsXFrCVaH14GWyD iMAlRomlD1vYIarOM0q0LjvBBjHJRWLKR26QBjYBLYn9L26wQSzTktj3eD8ziM0ioCrx+vBq FhBbVCBC4tTZt2A1nALOEq9u3QebKSHwl13iyLnbrBANAhLfJh9igXhZVmLTAWaIzyQlDq64 wTKBUWwWkn9mIfwzC8k/CxiZVzGKphYkFxQnpRcZ6RUn5haX5qXrJefnbmIERunpf8/6djDe PGB9iFGAg1GJh/fE0wnhQqyJZcWVuYcYTYGOmMgsJZqcD0wFeSXxhsZmRhamJqbGRuaWZkri vAlSP4OFBNITS1KzU1MLUovii0pzUosPMTJxcEo1MAZU+5XxZribS1qZ7IiNSGgU2lQpzuto mJi5P5Znd7xfdsQl+/kqM/R3lUuW1MYkFhf8/X7y5979bOEGU5ze7Z/X1bNYVfpHcssWPw6B kBr7mv+62u+DORTmXvI7dCeZ/4+vffXiS0ViYT/NNp6dI+dnIF1yPUdH4Pjub+2fDnyTX7Bq Qpm1EktxRqKhFnNRcSIAAe95M80CAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgleLIzCtJLcpLzFFi42I5/e+xoG7W84nhBhvbOSzOLjvIZnHq1TJm i/+PXrNaXN41h83i04P/zBbzDv1mtLjduILN4nPrPzaLVWuPM1vMXbeEzWL+gx3MDtwesxsu snhsXlLv8XfWfhaPvi2rGD22X5vH7PF5k1wAW1QDo01GamJKapFCal5yfkpmXrqtkndwvHO8 qZmBoa6hpYW5kkJeYm6qrZKLT4CuW2YO0H1KCmWJOaVAoYDE4mIlfTtME0JD3HQtYBojdH1D guB6jAzQQMIaxozXb0+wFPxVqfi94hxjA+ME2S5GTg4JAROJW5u7mCFsMYkL99azdTFycQgJ zGKUuNjwjh0kwSsgKPFj8j2WLkYODmYBeYkjl7JBwswC6hKT5i1ihqh/wCix/vpFsHphAVuJ 1oeXwQaJCFxilFj6sIUdouo8o0TrshNsEJNcJKZ85AZpYBPQktj/4gYbxDItiX2P94NdxCKg KvH68GoWEFtUIELi1Nm3YDWcAs4Sr27dZ5/ACHQmwn2zEO6bheS+BYzMqxglUguSC4qT0nON 8lLL9YoTc4tL89L1kvNzNzGCU8Ez6R2Mh3e5H2IU4GBU4uE98XRCuBBrYllxZe4hRgkOZiUR 3mtPJ4YL8aYkVlalFuXHF5XmpBYfYjQFunEis5Rocj4wTeWVxBsam5gZWRqZG1oYGZsrifM+ /r8uTEggPbEkNTs1tSC1CKaPiYNTqoFR2kvP5LdFgME6s21zeif9WM1nqxHQlLeC58bU3dv2 MIvZXXMQan4p+Y5V9vSext7Ug9NDcr6tMWjN2C4hsOvfzimFW3q6kotvPn9cpXtXecX/0Gcv J3yKaCs3OfEwdK+vg8jVNC9hs68hJ39VH9rj7dn3cXGAGc+C2cUMds/DeNNa2CY+uHFYiaU4 I9FQi7moOBEA01plchsDAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Chris, I'm sorry for late reply. I finished the first draft to support the extcon property. You can check the patches[1]. But, I need more time to test it. After tested it, I'll send the patches. [1] https://git.kernel.org/cgit/linux/kernel/git/chanwoo/extcon.git/log/?h=extcon-test Chanwoo Choi (4): extcon: Add the extcon_type to group each connector into five category extcon: Add the support for extcon property according to type of connector extcon: Rename the extcon_set/get_state() to maintain the function naming pattern extcon: Add the sync APIs to support the notification for extcon property Chris Zhong (1): extcon: Add EXTCON_DISP_DP and the property for USB Type-C Regards, Chanwoo Choi On 2016년 07월 21일 22:13, Chris Zhong wrote: > Add EXTCON_DISP_DP for the Display external connector. For Type-C > connector the DisplayPort can work as an Alternate Mode(VESA DisplayPort > Alt Mode on USB Type-C Standard). The Type-C support both normal and > flipped orientation, so add a property to extcon. > > Signe-off-by: Chris Zhong > > Signed-off-by: Chris Zhong > --- > > Changes in v6: > - move the EXTCON_PROP_TYPEC_POLARITY to EXTCON_TYPE_USB in _supported > Series-changes: 5 > - support get property > > Changes in v5: None > Changes in v4: None > Changes in v3: None > Changes in v2: None > Changes in v1: None > > drivers/extcon/extcon.c | 26 ++++++++++++++++++++++++++ > include/linux/extcon.h | 13 +++++++++++++ > 2 files changed, 39 insertions(+) > > diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c > index a1117db..f79b510 100644 > --- a/drivers/extcon/extcon.c > +++ b/drivers/extcon/extcon.c > @@ -157,6 +157,11 @@ struct __extcon_info { > .id = EXTCON_DISP_VGA, > .name = "VGA", > }, > + [EXTCON_DISP_DP] = { > + .type = EXTCON_TYPE_DISP | EXTCON_TYPE_USB, > + .id = EXTCON_DISP_DP, > + .name = "DP", > + }, > > /* Miscellaneous external connector */ > [EXTCON_DOCK] = { > @@ -270,6 +275,7 @@ static bool is_extcon_property_supported(unsigned int id, > switch (prop) { > case EXTCON_PROP_USB_ID: > case EXTCON_PROP_USB_VBUS: > + case EXTCON_PROP_TYPEC_POLARITY: > return true; > default: > break; > @@ -547,6 +553,26 @@ int extcon_get_cable_property(struct extcon_dev *edev, unsigned int id, > enum extcon_property prop, > union extcon_property_value *val) > { > + struct extcon_cable *cable; > + int index; > + > + if (!edev) > + return -EINVAL; > + > + /* Check the property whether is supported or not */ > + if (!is_extcon_property_supported(id, prop)) > + return -EINVAL; > + > + /* Find the cable index of external connector by using id */ > + index = find_cable_index_by_id(edev, id); > + if (index < 0) > + return index; > + > + /* Store the property value */ > + cable = &edev->cables[index]; > + > + val->intval = cable->propval[prop].intval; > + > return 0; > } > > diff --git a/include/linux/extcon.h b/include/linux/extcon.h > index f6f0a8d..50ef87f 100644 > --- a/include/linux/extcon.h > +++ b/include/linux/extcon.h > @@ -77,6 +77,7 @@ enum extcon_type { > #define EXTCON_DISP_MHL 41 /* Mobile High-Definition Link */ > #define EXTCON_DISP_DVI 42 /* Digital Visual Interface */ > #define EXTCON_DISP_VGA 43 /* Video Graphics Array */ > +#define EXTCON_DISP_DP 44 /* DisplayPort */ > > /* Miscellaneous external connector */ > #define EXTCON_DOCK 60 > @@ -108,9 +109,13 @@ enum extcon_property { > * - EXTCON_PROP_USB_USB > * @type: integer (int value) > * @value: 0 (low) or 1 (high) > + * - EXTCON_PROP_TYPEC_POLARITY, > + * @type: integer (int value) > + * @value: 0 (normal) or 1 (flip) > */ > EXTCON_PROP_USB_ID = 0, > EXTCON_PROP_USB_VBUS, > + EXTCON_PROP_TYPEC_POLARITY, > > /* Properties of EXTCON_TYPE_CHG. */ > /* Properties of EXTCON_TYPE_JACK. */ > @@ -225,6 +230,14 @@ extern int extcon_get_cable_state_(struct extcon_dev *edev, unsigned int id); > extern int extcon_set_cable_state_(struct extcon_dev *edev, unsigned int id, > bool cable_state); > > +extern int extcon_get_cable_property(struct extcon_dev *edev, unsigned int id, > + enum extcon_property prop, > + union extcon_property_value *val); > + > +extern int extcon_set_cable_property(struct extcon_dev *edev, unsigned int id, > + enum extcon_property prop, > + union extcon_property_value val); > + > /* > * Following APIs are to monitor every action of a notifier. > * Registrar gets notified for every external port of a connection device. >