Messages in this thread Patch in this message | | | Date | Fri, 25 Sep 2015 09:54:26 +0900 | From | Chanwoo Choi <> | Subject | Re: [PATCH 4/6] extcon: arizona: Add device binding for second jack detect pin on GPIO5 |
| |
Hi Charles,
I have one comment. I think current extcon-arizona.c has the many platform data so, extcon-arizona.c use the too much if statement to support each feature for different wolfsonmicro codec. I think it cause the complicated code.
For example, You may use 'struct of_device_id' as following. You used already this method on drivers/mfd/arizona-core.c. If you separate the function of each wmXXXX arizona, it makes improved readability for extcon-arizona.c and some user will use extcon-arizora more easily.
struct arizona_extcon_data { void (*init)(...); void (*irq_handler)(...); ... };
struct arizona_extcon_data wm8994_data { .init = wm8994_extcon_init, .irq_handler = wm8994_extcon_irq_handler; ... };
static const struct of_device_id arizona_extcon_dt_match[] = { { .compatible = "wm8994-arizona-extcon", .data = (void *)wm8994_data; }, { .compatible = "wmXXXX-arizona-extcon", .data = (void *)wmXXXX_data; }, };
I expect that you will revise the arizona-extcon.c driver on next time.
Thanks, Chanwoo Choi
On 2015년 09월 16일 18:56, Charles Keepax wrote: > Some Arizona devices have the option to use the GPIO5 pin as a second > jack detection pin. This patch adds device bindings to specify to the > driver that it should use this pin. Note that the second jack detection > pin is hard wired in the chip so can only be enabled through the > binding, rather than a pin being specified. > > Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> > Acked-by: Chanwoo Choi <cw00.choi@samsung.com> > --- > drivers/extcon/extcon-arizona.c | 5 +++++ > 1 files changed, 5 insertions(+), 0 deletions(-) > > diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c > index dc1910d..992f80e 100644 > --- a/drivers/extcon/extcon-arizona.c > +++ b/drivers/extcon/extcon-arizona.c > @@ -1235,6 +1235,11 @@ static int arizona_extcon_device_get_pdata(struct arizona *arizona) > > device_property_read_u32(arizona->dev, "wlf,gpsw", &pdata->gpsw); > > + pdata->jd_gpio5 = device_property_read_bool(arizona->dev, > + "wlf,use-jd-gpio"); > + pdata->jd_gpio5_nopull = device_property_read_bool(arizona->dev, > + "wlf,use-jd-gpio-nopull"); > + > return 0; > } > >
| |