Re: [PATCH V3 1/1] drivers/gpio: Altera soft IP GPIO driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Oct 24, 2013, at 12:09 AM, Tien Hock Loh wrote:

> On Thu, Oct 24, 2013 at 12:46 PM, Kumar Gala <galak@xxxxxxxxxxxxxx> wrote:
>> 
>> On Oct 23, 2013, at 9:44 PM, thloh@xxxxxxxxxx wrote:
>> 
>>> From: Tien Hock Loh <thloh@xxxxxxxxxx>
>>> 
>>> Add driver support for Altera GPIO soft IP, including interrupts and I/O.
>>> Tested on Altera CV SoC board using dipsw and LED using LED framework.
>>> 
>>> Signed-off-by: Tien Hock Loh <thloh@xxxxxxxxxx>
>>> ---
>>> .../devicetree/bindings/gpio/gpio-altera.txt       |  34 ++
>>> drivers/gpio/Kconfig                               |   7 +
>>> drivers/gpio/Makefile                              |   1 +
>>> drivers/gpio/gpio-altera.c                         | 395 +++++++++++++++++++++
>>> 4 files changed, 437 insertions(+)
>>> create mode 100644 Documentation/devicetree/bindings/gpio/gpio-altera.txt
>>> create mode 100644 drivers/gpio/gpio-altera.c
>>> 
>>> diff --git a/Documentation/devicetree/bindings/gpio/gpio-altera.txt b/Documentation/devicetree/bindings/gpio/gpio-altera.txt
>>> new file mode 100644
>>> index 0000000..641cec2
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/gpio/gpio-altera.txt
>>> @@ -0,0 +1,34 @@
>>> +Altera GPIO controller bindings
>>> +
>>> +Required properties:
>>> +- compatible:
>>> +  - "altr,pio-1.0"
>> 
>> any reason not to be "altr,gpio-1.0"?
> 
> The compatible field was following the name of the component generated
> by the verilog generator, thus pio-1.0 instead of gpio-1.0. Does it
> need to be gpio?

Its fine if its based on an auto generator.

>>> +- reg: Physical base address and length of the controller's registers.
>>> +- #gpio-cells : Should be 1
>>> +  - first cell is the gpio offset number
>>> +- gpio-controller : Marks the device node as a GPIO controller.
>>> +- #interrupt-cells : Should be 1.
>>> +- interrupts: Specify the interrupt.
>>> +- interrupt-controller: Mark the device node as an interrupt controller
>>> +  The first cell is the local interrupt offset number to the GPIO controller.
>>> +
>>> +Altera GPIO specific properties:
>>> +- width: Width of the GPIO bank, range from 1-32
>> 
>> This description isn't terrible helpful.  I'm not at all sure what this means.
>> 
> The number of pins of the GPIO bank, I'll update the document
> 
>>> +- interrupt_trigger: Specifies the interrupt trigger type the GPIO hardware is
>>> +  synthesized. This field is required if the Altera GPIO controller used has
>>> +  IRQ enabled as the interrupt type is not software controlled, but hardware
>>> +  synthesized.
>> 
>> Any vendor specific properties should be vendor prefixed:
>> 
>> "altr,width"
>> "altr,interrupt_trigger"
>> 
>> I'd also recommend that "altr,width" be a bit more specific like "altr,gpio-bank-width"
> OK, will do in patch v4. Thanks for the advice.
> 
>> 
>>> +
>>> +Example:
>>> +
>>> +gpio_altr: gpio_altr {
>>> +    compatible = "altr,pio-1.0";
>>> +    reg = <0xff200000 0x10>;
>>> +    interrupts = <0 45 4>;
>>> +    width = <32>;
>>> +    interrupt_trigger = <0>;
>>> +    #gpio-cells = <1>;
>>> +    gpio-controller;
>>> +    #interrupt-cells = <1>;
>>> +    interrupt-controller;
>>> +};
>> 
>> - k
>> 
>> --
>> Employee of Qualcomm Innovation Center, Inc.
>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
>> 

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux