[PATCH 4/6] extcon: arizona: Add device binding for second jack detect pin on GPIO5

2015-09-16 Thread Charles Keepax
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 
Acked-by: Chanwoo Choi 
---
 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;
 }
 
-- 
1.7.2.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 4/6] extcon: arizona: Add device binding for second jack detect pin on GPIO5

2015-09-26 Thread Chanwoo Choi
On Fri, Sep 25, 2015 at 6:10 PM, Charles Keepax
 wrote:
> On Fri, Sep 25, 2015 at 09:54:26AM +0900, Chanwoo Choi wrote:
>> 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 wm 
>> 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 = "wm-arizona-extcon",
>>   .data = (void *)wm_data;
>>   },
>> };
>>
>> I expect that you will revise the arizona-extcon.c driver on next time.
>
> I will have an investigation to see what ideas I can come up with
> here and send through some patches.
>
> But I am slightly worried you think the gains will be better than
> they actually will be. Most of the platform data is just that
> platform data, and needs to be configured based on the system not
> based on the CODEC.

I agree. As you mentioned, platform data will be configured based on the system.
But, I mean that there are many platform datas for extcon-arizona in
"struct arizona_pdata" (in include/linux/mfd/arizona/pdata.h).

There are four sound code using the extcon-arizona driver as
following: I check the following list
in drivers/mfd/arizona-core.c.
- wm5102
- wm5110
- wm8997
- wm8998

If upper four sound codec include the same headset detection IP
(extcon-arizona.c)
without any difference about detection IP in sound codec, you don't
need to revise
the extcon-arizona.c driver.

But, If some field of  "struct arizona_pdata" (in
include/linux/mfd/arizona/pdata.h)
are used for only specific sound codec (wmXXX series), I think we need
to revise it.

I'm positive about your patches of extcon-arizona. Just I think that
you can make it
more easier and improved readability.

Thanks,
Chanwoo Choi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 4/6] extcon: arizona: Add device binding for second jack detect pin on GPIO5

2015-09-24 Thread Chanwoo Choi
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 wm 
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 = "wm-arizona-extcon",
.data = (void *)wm_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 
> Acked-by: Chanwoo Choi 
> ---
>  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;
>  }
>  
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 4/6] extcon: arizona: Add device binding for second jack detect pin on GPIO5

2015-09-25 Thread Charles Keepax
On Fri, Sep 25, 2015 at 09:54:26AM +0900, Chanwoo Choi wrote:
> 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 wm 
> 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 = "wm-arizona-extcon",
>   .data = (void *)wm_data;
>   }, 
> };
> 
> I expect that you will revise the arizona-extcon.c driver on next time.

I will have an investigation to see what ideas I can come up with
here and send through some patches.

But I am slightly worried you think the gains will be better than
they actually will be. Most of the platform data is just that
platform data, and needs to be configured based on the system not
based on the CODEC.

Thanks,
Charles
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/