[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <515163F6.3010400@slimlogic.co.uk>
Date: Tue, 26 Mar 2013 09:01:42 +0000
From: Graeme Gregory <gg@...mlogic.co.uk>
To: Kishon Vijay Abraham I <kishon@...com>
CC: Laxman Dewangan <ldewangan@...dia.com>,
"balbi@...com" <balbi@...com>, Rajendra Nayak <rnayak@...com>,
"grant.likely@...retlab.ca" <grant.likely@...retlab.ca>,
"rob.herring@...xeda.com" <rob.herring@...xeda.com>,
"rob@...dley.net" <rob@...dley.net>,
"gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
"s-guiriec@...com" <s-guiriec@...com>,
"sameo@...ux.intel.com" <sameo@...ux.intel.com>,
"broonie@...nsource.wolfsonmicro.com"
<broonie@...nsource.wolfsonmicro.com>,
"devicetree-discuss@...ts.ozlabs.org"
<devicetree-discuss@...ts.ozlabs.org>,
"linux-doc@...r.kernel.org" <linux-doc@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>
Subject: Re: [PATCH v3] USB: PHY: Palmas USB Transceiver Driver
On 26/03/13 06:03, Kishon Vijay Abraham I wrote:
> Hi,
>
> On Monday 25 March 2013 03:16 PM, Laxman Dewangan wrote:
>> On Monday 25 March 2013 03:02 PM, Kishon Vijay Abraham I wrote:
>>> From: Graeme Gregory <gg@...mlogic.co.uk>
>>>
>>> This is the driver for the OTG transceiver built into the Palmas
>>> chip. It
>>> handles the various USB OTG events that can be generated by cable
>>> insertion/removal.
>>>
>>> Signed-off-by: Graeme Gregory <gg@...mlogic.co.uk>
>>> Signed-off-by: Moiz Sonasath <m-sonasath@...com>
>>> Signed-off-by: Ruchika Kharwar <ruchika@...com>
>>> Signed-off-by: Kishon Vijay Abraham I <kishon@...com>
>>> Signed-off-by: Sebastien Guiriec <s-guiriec@...com>
>>> ---
>>
>> I think this driver is more over the cable connection like vbus
>> detetcion or ID pin detection.
>> Then why not it is implemented based on extcon framework?
>
> extcon framework uses notification mechanism and Felipe dint like
> using notification here. right Felipe?
>>
>> That way, generic usb driver (like tegra_usb driver) will get
>> notification through extcon.
>>
>> We need this cable detection through extcon on our tegra solution
>> through the Palmas.
>>
>>
>> +#include <linux/of.h>
>> +#include <linux/of_platform.h>
>> +
>> +static int palmas_usb_read(struct palmas *palmas, unsigned int reg,
>> + unsigned int *dest)
>> +{
>> + unsigned int addr;
>> + int slave;
>> +
>> + slave = PALMAS_BASE_TO_SLAVE(PALMAS_USB_OTG_BASE);
>> + addr = PALMAS_BASE_TO_REG(PALMAS_USB_OTG_BASE, reg);
>> +
>> + return regmap_read(palmas->regmap[slave], addr, dest);
>>
>>
>> Please use the generic api for palmas_read()/palmas_write(0 as it will
>> be ease on debugging on register access.
>> Direct regmap_read() does not help much on this.
>
> Graeme,
> Any reason why you dint use palmas_read()/palmas_write here?
> Btw palmas_read()/palmas_write() internally uses regmap APIs.
Because I was not a fan of tightly coupling the child devices to the
parent MFD. palmas_read/write were added by Laxman.
>>
>>> +}
>>> +
>>> +static int palmas_usb_write(struct palmas *palmas, unsigned int reg,
>>> + unsigned int data)
>>> +{
>>> + unsigned int addr;
>>> + int slave;
>>> +
>>> + slave = PALMAS_BASE_TO_SLAVE(PALMAS_USB_OTG_BASE);
>>> + addr = PALMAS_BASE_TO_REG(PALMAS_USB_OTG_BASE, reg);
>>> +
>>> + return regmap_write(palmas->regmap[slave], addr, data);
>>
>> Same as above.
>>
>>
>>
>>> +
>>> + if (status != OMAP_DWC3_UNKNOWN) {
>>> + palmas_usb->linkstat = status;
>>> + palmas_usb->mailboxstat = dwc3_omap_mailbox(status);
>> Omap specific call, why? This is generic palma driver.
>
> hmm.. I think we should either fall-back to the notification mechanism
> or have the client drivers pass function pointer here. Felipe?
>>
>>
>>> +
>>
>>> + palmas_usb->dev = &pdev->dev;
>>> +
>>> + palmas_usb->irq1 = regmap_irq_get_virq(palmas->irq_data,
>>> + PALMAS_ID_OTG_IRQ);
>>> + palmas_usb->irq2 = regmap_irq_get_virq(palmas->irq_data,
>>> + PALMAS_ID_IRQ);
>>> + palmas_usb->irq3 = regmap_irq_get_virq(palmas->irq_data,
>>> + PALMAS_VBUS_OTG_IRQ);
>>> + palmas_usb->irq4 = regmap_irq_get_virq(palmas->irq_data,
>>> + PALMAS_VBUS_IRQ);
>>
>> Should be come from platform_get_irq() through platform driver.
>
> No. It can be obtained from regmap too.
>
> Thanks
> Kishon
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists