diff mbox

[v3,1/2] gpio: davinci: Add keystone-k2g compatible

Message ID 1501051524-5990-1-git-send-email-j-keerthy@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

J, KEERTHY July 26, 2017, 6:45 a.m. UTC
The patch adds keystone-k2g compatible, specific properties and
an example.

Signed-off-by: Keerthy <j-keerthy@ti.com>
---

Changes in v3:

  * Added details about family of SoCs corresponding to compatibles.

 .../devicetree/bindings/gpio/gpio-davinci.txt      | 40 +++++++++++++++++++++-
 1 file changed, 39 insertions(+), 1 deletion(-)

Comments

Suman Anna July 26, 2017, 1 p.m. UTC | #1
Hi Keerthy,

On 07/26/2017 01:45 AM, Keerthy wrote:
> The patch adds keystone-k2g compatible, specific properties and
> an example.

Please update patch header to "dt-bindings: gpio: davinci: ...."

> 
> Signed-off-by: Keerthy <j-keerthy@ti.com>
> ---
> 
> Changes in v3:
> 
>   * Added details about family of SoCs corresponding to compatibles.
> 
>  .../devicetree/bindings/gpio/gpio-davinci.txt      | 40 +++++++++++++++++++++-
>  1 file changed, 39 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
> index 5079ba7..fb9efee 100644
> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
> @@ -1,7 +1,10 @@
>  Davinci/Keystone GPIO controller bindings
>  
>  Required Properties:
> -- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio"
> +- compatible: should be "ti,dm6441-gpio": for Davinci da850 SoCs 
> +			"ti,keystone-gpio": for Keystone 2 66AK2H/K, 66AK2L,
> +						66AK2E SoCs
> +			"ti,keystone-k2g-gpio", "ti,keystone-gpio": for 66AK2G
>  
>  - reg: Physical base address of the controller and the size of memory mapped
>         registers.
> @@ -26,6 +29,17 @@ The GPIO controller also acts as an interrupt controller. It uses the default
>  two cells specifier as described in Documentation/devicetree/bindings/
>  interrupt-controller/interrupts.txt.
>  
> +Required Properties specific to keystone-k2g

Thanks for updating the binding for the clocks, but clocks are not
specific to K2G. They also apply to other K2 SoCs. Davinci platforms do
not have DT clocks atm, so the Davinci portion can be updated later if
and when they get added.

> +
> +- clocks: Should contain devices input clock. The first parameter
> +           is a handle to k2g_clks. The second parameter is the
> +           device ID and the third parameter is the clock ID. One can
> +           refer: http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data

No need for this link here, just refer to the appropriate clock
bindings. Some thing like the following would be better

- clocks:               Should contain the device's input clock, and
                        should be defined as per the appropriate clock
bindings consumer usage in,

Documentation/devicetree/bindings/clock/keystone-gate.txt
                            for 66AK2HK/66AK2L/66AK2E SoCs or,

Documentation/devicetree/bindings/clock/ti,sci-clk.txt
                            for 66AK2G SoCs

> +
> +           Example: <&k2g_clks 0x001c 0x0>;

This can be dropped as well, below example already demonstrates it.

> +
> +- clock-names: The driver expects the clock name to be "gpio";

Just say, Should be "gpio". No need of mentioning about the driver.

> +
>  Example:
>  
>  gpio: gpio@1e26000 {
> @@ -60,3 +74,27 @@ leds {
>  		...
>  	};
>  };
> +
> +Example for keystone-k2g:

s/keystone-k2g/66AK2G/

> +
> +gpio0: gpio@2603000 {
> +	compatible = "ti,keystone-k2g-gpio", "ti,keystone-gpio";
> +	reg = <0x02603000 0x100>;
> +	gpio-controller;
> +	#gpio-cells = <2>;
> +	interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
> +			<GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
> +			<GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
> +			<GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
> +			<GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
> +			<GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
> +			<GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
> +			<GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
> +			<GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
> +	interrupt-controller;
> +	#interrupt-cells = <2>;
> +	ti,ngpio = <144>;
> +	ti,davinci-gpio-unbanked = <0>;
> +	clocks = <&k2g_clks 0x001b 0x0>;
> +	clock-names = "gpio";
> +};
> 

regards
Suman
Franklin Cooper July 26, 2017, 1:27 p.m. UTC | #2
On 07/26/2017 08:00 AM, Suman Anna wrote:
> Hi Keerthy,
> 
> On 07/26/2017 01:45 AM, Keerthy wrote:
>> The patch adds keystone-k2g compatible, specific properties and
>> an example.

Seems we are adding information regarding several Keystone 2 SoCs. So
the commit and subject should be tweaked to reflect this.
> 
> Please update patch header to "dt-bindings: gpio: davinci: ...."
> 
>>
>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>> ---
>>
>> Changes in v3:
>>
>>   * Added details about family of SoCs corresponding to compatibles.
>>
>>  .../devicetree/bindings/gpio/gpio-davinci.txt      | 40 +++++++++++++++++++++-
>>  1 file changed, 39 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>> index 5079ba7..fb9efee 100644
>> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>> @@ -1,7 +1,10 @@
>>  Davinci/Keystone GPIO controller bindings
>>  
>>  Required Properties:
>> -- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio"
>> +- compatible: should be "ti,dm6441-gpio": for Davinci da850 SoCs 
>> +			"ti,keystone-gpio": for Keystone 2 66AK2H/K, 66AK2L,
>> +						66AK2E SoCs
>> +			"ti,keystone-k2g-gpio", "ti,keystone-gpio": for 66AK2G
>>  
>>  - reg: Physical base address of the controller and the size of memory mapped
>>         registers.
>> @@ -26,6 +29,17 @@ The GPIO controller also acts as an interrupt controller. It uses the default
>>  two cells specifier as described in Documentation/devicetree/bindings/
>>  interrupt-controller/interrupts.txt.
>>  
>> +Required Properties specific to keystone-k2g
> 
> Thanks for updating the binding for the clocks, but clocks are not
> specific to K2G. They also apply to other K2 SoCs. Davinci platforms do
> not have DT clocks atm, so the Davinci portion can be updated later if
> and when they get added.
> 

What about power-domain property?

>> +
>> +- clocks: Should contain devices input clock. The first parameter
>> +           is a handle to k2g_clks. The second parameter is the
>> +           device ID and the third parameter is the clock ID. One can
>> +           refer: http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
> 
> No need for this link here, just refer to the appropriate clock
> bindings. Some thing like the following would be better

This information is helpful especially with the macros being dropped.
However, I agree that this is not the place for this information.
Probably should be linked to in the ti,sci-clk.txt and
sci-pm-domain.txt. However, both of these are outdated since it is
referring to macros and includes that don't exist or will no longer exist.

> 
> - clocks:               Should contain the device's input clock, and
>                         should be defined as per the appropriate clock
> bindings consumer usage in,
> 
> Documentation/devicetree/bindings/clock/keystone-gate.txt
>                             for 66AK2HK/66AK2L/66AK2E SoCs or,
> 
> Documentation/devicetree/bindings/clock/ti,sci-clk.txt
>                             for 66AK2G SoCs
> 
>> +
>> +           Example: <&k2g_clks 0x001c 0x0>;
> 
> This can be dropped as well, below example already demonstrates it.
> 
>> +
>> +- clock-names: The driver expects the clock name to be "gpio";
> 
> Just say, Should be "gpio". No need of mentioning about the driver.
> 
>> +
>>  Example:
>>  
>>  gpio: gpio@1e26000 {
>> @@ -60,3 +74,27 @@ leds {
>>  		...
>>  	};
>>  };
>> +
>> +Example for keystone-k2g:
> 
> s/keystone-k2g/66AK2G/
> 
>> +
>> +gpio0: gpio@2603000 {
>> +	compatible = "ti,keystone-k2g-gpio", "ti,keystone-gpio";
>> +	reg = <0x02603000 0x100>;
>> +	gpio-controller;
>> +	#gpio-cells = <2>;
>> +	interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
>> +	interrupt-controller;
>> +	#interrupt-cells = <2>;
>> +	ti,ngpio = <144>;
>> +	ti,davinci-gpio-unbanked = <0>;
>> +	clocks = <&k2g_clks 0x001b 0x0>;
>> +	clock-names = "gpio";
>> +};

If your going to talk about other Keystone 2 devices it would be helpful
to include an example for one of them since they have slightly different
properties.
>>
> 
> regards
> Suman
>
J, KEERTHY July 26, 2017, 1:33 p.m. UTC | #3
On Wednesday 26 July 2017 06:30 PM, Suman Anna wrote:
> Hi Keerthy,
> 
> On 07/26/2017 01:45 AM, Keerthy wrote:
>> The patch adds keystone-k2g compatible, specific properties and
>> an example.
> 
> Please update patch header to "dt-bindings: gpio: davinci: ...."

Okay

> 
>>
>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>> ---
>>
>> Changes in v3:
>>
>>   * Added details about family of SoCs corresponding to compatibles.
>>
>>  .../devicetree/bindings/gpio/gpio-davinci.txt      | 40 +++++++++++++++++++++-
>>  1 file changed, 39 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>> index 5079ba7..fb9efee 100644
>> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>> @@ -1,7 +1,10 @@
>>  Davinci/Keystone GPIO controller bindings
>>  
>>  Required Properties:
>> -- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio"
>> +- compatible: should be "ti,dm6441-gpio": for Davinci da850 SoCs 
>> +			"ti,keystone-gpio": for Keystone 2 66AK2H/K, 66AK2L,
>> +						66AK2E SoCs
>> +			"ti,keystone-k2g-gpio", "ti,keystone-gpio": for 66AK2G
>>  
>>  - reg: Physical base address of the controller and the size of memory mapped
>>         registers.
>> @@ -26,6 +29,17 @@ The GPIO controller also acts as an interrupt controller. It uses the default
>>  two cells specifier as described in Documentation/devicetree/bindings/
>>  interrupt-controller/interrupts.txt.
>>  
>> +Required Properties specific to keystone-k2g
> 
> Thanks for updating the binding for the clocks, but clocks are not
> specific to K2G. They also apply to other K2 SoCs. Davinci platforms do
> not have DT clocks atm, so the Davinci portion can be updated later if
> and when they get added.

Yes. I can add that information.

> 
>> +
>> +- clocks: Should contain devices input clock. The first parameter
>> +           is a handle to k2g_clks. The second parameter is the
>> +           device ID and the third parameter is the clock ID. One can
>> +           refer: http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
> 
> No need for this link here, just refer to the appropriate clock
> bindings. Some thing like the following would be better
> 
> - clocks:               Should contain the device's input clock, and
>                         should be defined as per the appropriate clock
> bindings consumer usage in,
> 
> Documentation/devicetree/bindings/clock/keystone-gate.txt
>                             for 66AK2HK/66AK2L/66AK2E SoCs or,
> 
> Documentation/devicetree/bindings/clock/ti,sci-clk.txt
>                             for 66AK2G SoCs

Okay

> 
>> +
>> +           Example: <&k2g_clks 0x001c 0x0>;
> 
> This can be dropped as well, below example already demonstrates it.

Okay

> 
>> +
>> +- clock-names: The driver expects the clock name to be "gpio";
> 
> Just say, Should be "gpio". No need of mentioning about the driver.

Okay

> 
>> +
>>  Example:
>>  
>>  gpio: gpio@1e26000 {
>> @@ -60,3 +74,27 @@ leds {
>>  		...
>>  	};
>>  };
>> +
>> +Example for keystone-k2g:
> 
> s/keystone-k2g/66AK2G/

oops missed out here. I will correct this.

> 
>> +
>> +gpio0: gpio@2603000 {
>> +	compatible = "ti,keystone-k2g-gpio", "ti,keystone-gpio";
>> +	reg = <0x02603000 0x100>;
>> +	gpio-controller;
>> +	#gpio-cells = <2>;
>> +	interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
>> +			<GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
>> +	interrupt-controller;
>> +	#interrupt-cells = <2>;
>> +	ti,ngpio = <144>;
>> +	ti,davinci-gpio-unbanked = <0>;
>> +	clocks = <&k2g_clks 0x001b 0x0>;
>> +	clock-names = "gpio";
>> +};
>>
> 
> regards
> Suman
>
Suman Anna July 26, 2017, 1:35 p.m. UTC | #4
Franklin,

On 07/26/2017 08:27 AM, Franklin S Cooper Jr wrote:
> 
> On 07/26/2017 08:00 AM, Suman Anna wrote:
>> Hi Keerthy,
>>
>> On 07/26/2017 01:45 AM, Keerthy wrote:
>>> The patch adds keystone-k2g compatible, specific properties and
>>> an example.
> 
> Seems we are adding information regarding several Keystone 2 SoCs. So
> the commit and subject should be tweaked to reflect this.
>>
>> Please update patch header to "dt-bindings: gpio: davinci: ...."
>>
>>>
>>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>>> ---
>>>
>>> Changes in v3:
>>>
>>>   * Added details about family of SoCs corresponding to compatibles.
>>>
>>>  .../devicetree/bindings/gpio/gpio-davinci.txt      | 40 +++++++++++++++++++++-
>>>  1 file changed, 39 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>> index 5079ba7..fb9efee 100644
>>> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>> @@ -1,7 +1,10 @@
>>>  Davinci/Keystone GPIO controller bindings
>>>  
>>>  Required Properties:
>>> -- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio"
>>> +- compatible: should be "ti,dm6441-gpio": for Davinci da850 SoCs 
>>> +			"ti,keystone-gpio": for Keystone 2 66AK2H/K, 66AK2L,
>>> +						66AK2E SoCs
>>> +			"ti,keystone-k2g-gpio", "ti,keystone-gpio": for 66AK2G
>>>  
>>>  - reg: Physical base address of the controller and the size of memory mapped
>>>         registers.
>>> @@ -26,6 +29,17 @@ The GPIO controller also acts as an interrupt controller. It uses the default
>>>  two cells specifier as described in Documentation/devicetree/bindings/
>>>  interrupt-controller/interrupts.txt.
>>>  
>>> +Required Properties specific to keystone-k2g
>>
>> Thanks for updating the binding for the clocks, but clocks are not
>> specific to K2G. They also apply to other K2 SoCs. Davinci platforms do
>> not have DT clocks atm, so the Davinci portion can be updated later if
>> and when they get added.
>>
> 
> What about power-domain property?
> 
>>> +
>>> +- clocks: Should contain devices input clock. The first parameter
>>> +           is a handle to k2g_clks. The second parameter is the
>>> +           device ID and the third parameter is the clock ID. One can
>>> +           refer: http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
>>
>> No need for this link here, just refer to the appropriate clock
>> bindings. Some thing like the following would be better
> 
> This information is helpful especially with the macros being dropped.
> However, I agree that this is not the place for this information.
> Probably should be linked to in the ti,sci-clk.txt and
> sci-pm-domain.txt. However, both of these are outdated since it is
> referring to macros and includes that don't exist or will no longer exist.

You are probably looking at the bindings on current master. These have
already been addressed/updated, lookup linux-next.

regards
Suman

> 
>>
>> - clocks:               Should contain the device's input clock, and
>>                         should be defined as per the appropriate clock
>> bindings consumer usage in,
>>
>> Documentation/devicetree/bindings/clock/keystone-gate.txt
>>                             for 66AK2HK/66AK2L/66AK2E SoCs or,
>>
>> Documentation/devicetree/bindings/clock/ti,sci-clk.txt
>>                             for 66AK2G SoCs
>>
>>> +
>>> +           Example: <&k2g_clks 0x001c 0x0>;
>>
>> This can be dropped as well, below example already demonstrates it.
>>
>>> +
>>> +- clock-names: The driver expects the clock name to be "gpio";
>>
>> Just say, Should be "gpio". No need of mentioning about the driver.
>>
>>> +
>>>  Example:
>>>  
>>>  gpio: gpio@1e26000 {
>>> @@ -60,3 +74,27 @@ leds {
>>>  		...
>>>  	};
>>>  };
>>> +
>>> +Example for keystone-k2g:
>>
>> s/keystone-k2g/66AK2G/
>>
>>> +
>>> +gpio0: gpio@2603000 {
>>> +	compatible = "ti,keystone-k2g-gpio", "ti,keystone-gpio";
>>> +	reg = <0x02603000 0x100>;
>>> +	gpio-controller;
>>> +	#gpio-cells = <2>;
>>> +	interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
>>> +	interrupt-controller;
>>> +	#interrupt-cells = <2>;
>>> +	ti,ngpio = <144>;
>>> +	ti,davinci-gpio-unbanked = <0>;
>>> +	clocks = <&k2g_clks 0x001b 0x0>;
>>> +	clock-names = "gpio";
>>> +};
> 
> If your going to talk about other Keystone 2 devices it would be helpful
> to include an example for one of them since they have slightly different
> properties.
>>>
>>
>> regards
>> Suman
>>
J, KEERTHY July 26, 2017, 1:36 p.m. UTC | #5
On Wednesday 26 July 2017 06:57 PM, Franklin S Cooper Jr wrote:
> 
> 
> On 07/26/2017 08:00 AM, Suman Anna wrote:
>> Hi Keerthy,
>>
>> On 07/26/2017 01:45 AM, Keerthy wrote:
>>> The patch adds keystone-k2g compatible, specific properties and
>>> an example.
> 
> Seems we are adding information regarding several Keystone 2 SoCs. So
> the commit and subject should be tweaked to reflect this.

Okay i can add that as well.

>>
>> Please update patch header to "dt-bindings: gpio: davinci: ...."
>>
>>>
>>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>>> ---
>>>
>>> Changes in v3:
>>>
>>>   * Added details about family of SoCs corresponding to compatibles.
>>>
>>>  .../devicetree/bindings/gpio/gpio-davinci.txt      | 40 +++++++++++++++++++++-
>>>  1 file changed, 39 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>> index 5079ba7..fb9efee 100644
>>> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>> @@ -1,7 +1,10 @@
>>>  Davinci/Keystone GPIO controller bindings
>>>  
>>>  Required Properties:
>>> -- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio"
>>> +- compatible: should be "ti,dm6441-gpio": for Davinci da850 SoCs 
>>> +			"ti,keystone-gpio": for Keystone 2 66AK2H/K, 66AK2L,
>>> +						66AK2E SoCs
>>> +			"ti,keystone-k2g-gpio", "ti,keystone-gpio": for 66AK2G
>>>  
>>>  - reg: Physical base address of the controller and the size of memory mapped
>>>         registers.
>>> @@ -26,6 +29,17 @@ The GPIO controller also acts as an interrupt controller. It uses the default
>>>  two cells specifier as described in Documentation/devicetree/bindings/
>>>  interrupt-controller/interrupts.txt.
>>>  
>>> +Required Properties specific to keystone-k2g
>>
>> Thanks for updating the binding for the clocks, but clocks are not
>> specific to K2G. They also apply to other K2 SoCs. Davinci platforms do
>> not have DT clocks atm, so the Davinci portion can be updated later if
>> and when they get added.
>>
> 
> What about power-domain property?

Driver has no pm_runtime implemented yet.

> 
>>> +
>>> +- clocks: Should contain devices input clock. The first parameter
>>> +           is a handle to k2g_clks. The second parameter is the
>>> +           device ID and the third parameter is the clock ID. One can
>>> +           refer: http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
>>
>> No need for this link here, just refer to the appropriate clock
>> bindings. Some thing like the following would be better
> 
> This information is helpful especially with the macros being dropped.
> However, I agree that this is not the place for this information.
> Probably should be linked to in the ti,sci-clk.txt and
> sci-pm-domain.txt. However, both of these are outdated since it is
> referring to macros and includes that don't exist or will no longer exist.

Hence included here but yes i can point to something like what Suman
asked me to.

> 
>>
>> - clocks:               Should contain the device's input clock, and
>>                         should be defined as per the appropriate clock
>> bindings consumer usage in,
>>
>> Documentation/devicetree/bindings/clock/keystone-gate.txt
>>                             for 66AK2HK/66AK2L/66AK2E SoCs or,
>>
>> Documentation/devicetree/bindings/clock/ti,sci-clk.txt
>>                             for 66AK2G SoCs
>>
>>> +
>>> +           Example: <&k2g_clks 0x001c 0x0>;
>>
>> This can be dropped as well, below example already demonstrates it.
>>
>>> +
>>> +- clock-names: The driver expects the clock name to be "gpio";
>>
>> Just say, Should be "gpio". No need of mentioning about the driver.
>>
>>> +
>>>  Example:
>>>  
>>>  gpio: gpio@1e26000 {
>>> @@ -60,3 +74,27 @@ leds {
>>>  		...
>>>  	};
>>>  };
>>> +
>>> +Example for keystone-k2g:
>>
>> s/keystone-k2g/66AK2G/
>>
>>> +
>>> +gpio0: gpio@2603000 {
>>> +	compatible = "ti,keystone-k2g-gpio", "ti,keystone-gpio";
>>> +	reg = <0x02603000 0x100>;
>>> +	gpio-controller;
>>> +	#gpio-cells = <2>;
>>> +	interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
>>> +			<GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
>>> +	interrupt-controller;
>>> +	#interrupt-cells = <2>;
>>> +	ti,ngpio = <144>;
>>> +	ti,davinci-gpio-unbanked = <0>;
>>> +	clocks = <&k2g_clks 0x001b 0x0>;
>>> +	clock-names = "gpio";
>>> +};
> 
> If your going to talk about other Keystone 2 devices it would be helpful
> to include an example for one of them since they have slightly different
> properties.

Sure.

>>>
>>
>> regards
>> Suman
>>
Suman Anna July 26, 2017, 2:20 p.m. UTC | #6
On 07/26/2017 08:36 AM, Keerthy wrote:
> 
> On Wednesday 26 July 2017 06:57 PM, Franklin S Cooper Jr wrote:
>>
>>
>> On 07/26/2017 08:00 AM, Suman Anna wrote:
>>> Hi Keerthy,
>>>
>>> On 07/26/2017 01:45 AM, Keerthy wrote:
>>>> The patch adds keystone-k2g compatible, specific properties and
>>>> an example.
>>
>> Seems we are adding information regarding several Keystone 2 SoCs. So
>> the commit and subject should be tweaked to reflect this.
> 
> Okay i can add that as well.
> 
>>>
>>> Please update patch header to "dt-bindings: gpio: davinci: ...."
>>>
>>>>
>>>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>>>> ---
>>>>
>>>> Changes in v3:
>>>>
>>>>   * Added details about family of SoCs corresponding to compatibles.
>>>>
>>>>  .../devicetree/bindings/gpio/gpio-davinci.txt      | 40 +++++++++++++++++++++-
>>>>  1 file changed, 39 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>>> index 5079ba7..fb9efee 100644
>>>> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>>> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>>> @@ -1,7 +1,10 @@
>>>>  Davinci/Keystone GPIO controller bindings
>>>>  
>>>>  Required Properties:
>>>> -- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio"
>>>> +- compatible: should be "ti,dm6441-gpio": for Davinci da850 SoCs 
>>>> +			"ti,keystone-gpio": for Keystone 2 66AK2H/K, 66AK2L,
>>>> +						66AK2E SoCs
>>>> +			"ti,keystone-k2g-gpio", "ti,keystone-gpio": for 66AK2G
>>>>  
>>>>  - reg: Physical base address of the controller and the size of memory mapped
>>>>         registers.
>>>> @@ -26,6 +29,17 @@ The GPIO controller also acts as an interrupt controller. It uses the default
>>>>  two cells specifier as described in Documentation/devicetree/bindings/
>>>>  interrupt-controller/interrupts.txt.
>>>>  
>>>> +Required Properties specific to keystone-k2g
>>>
>>> Thanks for updating the binding for the clocks, but clocks are not
>>> specific to K2G. They also apply to other K2 SoCs. Davinci platforms do
>>> not have DT clocks atm, so the Davinci portion can be updated later if
>>> and when they get added.
>>>
>>
>> What about power-domain property?

The correct name is "power-domains".

> Driver has no pm_runtime implemented yet.

True, not yet, but this is in general a required property on K2G SoCs to
automatically enable clocks through runtime_pm. Clock properties on K2G
nodes should only be truly required if a driver is using clk API
(ideally to control optional clocks or for adjusting clock frequencies).
When the gpio-davinci driver gets updated to use pm_runtime, the clock
properties will be rendered obsolete for K2G.

Rob,
Any suggestions on how we need to handle this? Should we be adding the
property now or later when we adapt the driver for runtime_pm? This
would be a common theme for K2G nodes that are reusing Davinci drivers.

My take on this would be to add the property now, and mark the clock
properties obsolete when the driver gets converted.

regards
Suman

> 
>>
>>>> +
>>>> +- clocks: Should contain devices input clock. The first parameter
>>>> +           is a handle to k2g_clks. The second parameter is the
>>>> +           device ID and the third parameter is the clock ID. One can
>>>> +           refer: http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
>>>
>>> No need for this link here, just refer to the appropriate clock
>>> bindings. Some thing like the following would be better
>>
>> This information is helpful especially with the macros being dropped.
>> However, I agree that this is not the place for this information.
>> Probably should be linked to in the ti,sci-clk.txt and
>> sci-pm-domain.txt. However, both of these are outdated since it is
>> referring to macros and includes that don't exist or will no longer exist.
> 
> Hence included here but yes i can point to something like what Suman
> asked me to.
> 
>>
>>>
>>> - clocks:               Should contain the device's input clock, and
>>>                         should be defined as per the appropriate clock
>>> bindings consumer usage in,
>>>
>>> Documentation/devicetree/bindings/clock/keystone-gate.txt
>>>                             for 66AK2HK/66AK2L/66AK2E SoCs or,
>>>
>>> Documentation/devicetree/bindings/clock/ti,sci-clk.txt
>>>                             for 66AK2G SoCs
>>>
>>>> +
>>>> +           Example: <&k2g_clks 0x001c 0x0>;
>>>
>>> This can be dropped as well, below example already demonstrates it.
>>>
>>>> +
>>>> +- clock-names: The driver expects the clock name to be "gpio";
>>>
>>> Just say, Should be "gpio". No need of mentioning about the driver.
>>>
>>>> +
>>>>  Example:
>>>>  
>>>>  gpio: gpio@1e26000 {
>>>> @@ -60,3 +74,27 @@ leds {
>>>>  		...
>>>>  	};
>>>>  };
>>>> +
>>>> +Example for keystone-k2g:
>>>
>>> s/keystone-k2g/66AK2G/
>>>
>>>> +
>>>> +gpio0: gpio@2603000 {
>>>> +	compatible = "ti,keystone-k2g-gpio", "ti,keystone-gpio";
>>>> +	reg = <0x02603000 0x100>;
>>>> +	gpio-controller;
>>>> +	#gpio-cells = <2>;
>>>> +	interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
>>>> +			<GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
>>>> +			<GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
>>>> +			<GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
>>>> +			<GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
>>>> +			<GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
>>>> +			<GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
>>>> +			<GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
>>>> +			<GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
>>>> +	interrupt-controller;
>>>> +	#interrupt-cells = <2>;
>>>> +	ti,ngpio = <144>;
>>>> +	ti,davinci-gpio-unbanked = <0>;
>>>> +	clocks = <&k2g_clks 0x001b 0x0>;
>>>> +	clock-names = "gpio";
>>>> +};
>>
>> If your going to talk about other Keystone 2 devices it would be helpful
>> to include an example for one of them since they have slightly different
>> properties.
> 
> Sure.
> 
>>>>
>>>
>>> regards
>>> Suman
>>>
Franklin Cooper July 26, 2017, 6:37 p.m. UTC | #7
On 07/26/2017 09:20 AM, Suman Anna wrote:
> On 07/26/2017 08:36 AM, Keerthy wrote:
>>
>> On Wednesday 26 July 2017 06:57 PM, Franklin S Cooper Jr wrote:
>>>
>>>
>>> On 07/26/2017 08:00 AM, Suman Anna wrote:
>>>> Hi Keerthy,
>>>>
>>>> On 07/26/2017 01:45 AM, Keerthy wrote:
>>>>> The patch adds keystone-k2g compatible, specific properties and
>>>>> an example.
>>>
>>> Seems we are adding information regarding several Keystone 2 SoCs. So
>>> the commit and subject should be tweaked to reflect this.
>>
>> Okay i can add that as well.
>>
>>>>
>>>> Please update patch header to "dt-bindings: gpio: davinci: ...."
>>>>
>>>>>
>>>>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>>>>> ---
>>>>>
>>>>> Changes in v3:
>>>>>
>>>>>   * Added details about family of SoCs corresponding to compatibles.
>>>>>
>>>>>  .../devicetree/bindings/gpio/gpio-davinci.txt      | 40 +++++++++++++++++++++-
>>>>>  1 file changed, 39 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>>>> index 5079ba7..fb9efee 100644
>>>>> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>>>> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>>>> @@ -1,7 +1,10 @@
>>>>>  Davinci/Keystone GPIO controller bindings
>>>>>  
>>>>>  Required Properties:
>>>>> -- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio"
>>>>> +- compatible: should be "ti,dm6441-gpio": for Davinci da850 SoCs 
>>>>> +			"ti,keystone-gpio": for Keystone 2 66AK2H/K, 66AK2L,
>>>>> +						66AK2E SoCs
>>>>> +			"ti,keystone-k2g-gpio", "ti,keystone-gpio": for 66AK2G
>>>>>  
>>>>>  - reg: Physical base address of the controller and the size of memory mapped
>>>>>         registers.
>>>>> @@ -26,6 +29,17 @@ The GPIO controller also acts as an interrupt controller. It uses the default
>>>>>  two cells specifier as described in Documentation/devicetree/bindings/
>>>>>  interrupt-controller/interrupts.txt.
>>>>>  
>>>>> +Required Properties specific to keystone-k2g
>>>>
>>>> Thanks for updating the binding for the clocks, but clocks are not
>>>> specific to K2G. They also apply to other K2 SoCs. Davinci platforms do
>>>> not have DT clocks atm, so the Davinci portion can be updated later if
>>>> and when they get added.
>>>>
>>>
>>> What about power-domain property?
> 
> The correct name is "power-domains".
> 
>> Driver has no pm_runtime implemented yet.
> 
> True, not yet, but this is in general a required property on K2G SoCs to
> automatically enable clocks through runtime_pm. Clock properties on K2G
> nodes should only be truly required if a driver is using clk API
> (ideally to control optional clocks or for adjusting clock frequencies).
> When the gpio-davinci driver gets updated to use pm_runtime, the clock
> properties will be rendered obsolete for K2G.

Now I understand better when we do or do not need this property after
some offline discussion. If the driver doesn't support pm_runtime then
no point in adding this property. Binding should discuss how to use the
current driver. Not how a feature that may never exist may possibly be used.

> 
> Rob,
> Any suggestions on how we need to handle this? Should we be adding the
> property now or later when we adapt the driver for runtime_pm? This
> would be a common theme for K2G nodes that are reusing Davinci drivers.
> 
> My take on this would be to add the property now, and mark the clock
> properties obsolete when the driver gets converted.
> 
> regards
> Suman
> 
>>
>>>
>>>>> +
>>>>> +- clocks: Should contain devices input clock. The first parameter
>>>>> +           is a handle to k2g_clks. The second parameter is the
>>>>> +           device ID and the third parameter is the clock ID. One can
>>>>> +           refer: http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
>>>>
>>>> No need for this link here, just refer to the appropriate clock
>>>> bindings. Some thing like the following would be better
>>>
>>> This information is helpful especially with the macros being dropped.
>>> However, I agree that this is not the place for this information.
>>> Probably should be linked to in the ti,sci-clk.txt and
>>> sci-pm-domain.txt. However, both of these are outdated since it is
>>> referring to macros and includes that don't exist or will no longer exist.
>>
>> Hence included here but yes i can point to something like what Suman
>> asked me to.
>>
>>>
>>>>
>>>> - clocks:               Should contain the device's input clock, and
>>>>                         should be defined as per the appropriate clock
>>>> bindings consumer usage in,
>>>>
>>>> Documentation/devicetree/bindings/clock/keystone-gate.txt
>>>>                             for 66AK2HK/66AK2L/66AK2E SoCs or,
>>>>
>>>> Documentation/devicetree/bindings/clock/ti,sci-clk.txt
>>>>                             for 66AK2G SoCs
>>>>
>>>>> +
>>>>> +           Example: <&k2g_clks 0x001c 0x0>;
>>>>
>>>> This can be dropped as well, below example already demonstrates it.
>>>>
>>>>> +
>>>>> +- clock-names: The driver expects the clock name to be "gpio";
>>>>
>>>> Just say, Should be "gpio". No need of mentioning about the driver.
>>>>
>>>>> +
>>>>>  Example:
>>>>>  
>>>>>  gpio: gpio@1e26000 {
>>>>> @@ -60,3 +74,27 @@ leds {
>>>>>  		...
>>>>>  	};
>>>>>  };
>>>>> +
>>>>> +Example for keystone-k2g:
>>>>
>>>> s/keystone-k2g/66AK2G/
>>>>
>>>>> +
>>>>> +gpio0: gpio@2603000 {
>>>>> +	compatible = "ti,keystone-k2g-gpio", "ti,keystone-gpio";
>>>>> +	reg = <0x02603000 0x100>;
>>>>> +	gpio-controller;
>>>>> +	#gpio-cells = <2>;
>>>>> +	interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
>>>>> +	interrupt-controller;
>>>>> +	#interrupt-cells = <2>;
>>>>> +	ti,ngpio = <144>;
>>>>> +	ti,davinci-gpio-unbanked = <0>;
>>>>> +	clocks = <&k2g_clks 0x001b 0x0>;
>>>>> +	clock-names = "gpio";
>>>>> +};
>>>
>>> If your going to talk about other Keystone 2 devices it would be helpful
>>> to include an example for one of them since they have slightly different
>>> properties.
>>
>> Sure.
>>
>>>>>
>>>>
>>>> regards
>>>> Suman
>>>>
>
J, KEERTHY July 31, 2017, 1:44 p.m. UTC | #8
On Wednesday 26 July 2017 07:50 PM, Suman Anna wrote:
> On 07/26/2017 08:36 AM, Keerthy wrote:
>>
>> On Wednesday 26 July 2017 06:57 PM, Franklin S Cooper Jr wrote:
>>>
>>>
>>> On 07/26/2017 08:00 AM, Suman Anna wrote:
>>>> Hi Keerthy,
>>>>
>>>> On 07/26/2017 01:45 AM, Keerthy wrote:
>>>>> The patch adds keystone-k2g compatible, specific properties and
>>>>> an example.
>>>
>>> Seems we are adding information regarding several Keystone 2 SoCs. So
>>> the commit and subject should be tweaked to reflect this.
>>
>> Okay i can add that as well.
>>
>>>>
>>>> Please update patch header to "dt-bindings: gpio: davinci: ...."
>>>>
>>>>>
>>>>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>>>>> ---
>>>>>
>>>>> Changes in v3:
>>>>>
>>>>>   * Added details about family of SoCs corresponding to compatibles.
>>>>>
>>>>>  .../devicetree/bindings/gpio/gpio-davinci.txt      | 40 +++++++++++++++++++++-
>>>>>  1 file changed, 39 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>>>> index 5079ba7..fb9efee 100644
>>>>> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>>>> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
>>>>> @@ -1,7 +1,10 @@
>>>>>  Davinci/Keystone GPIO controller bindings
>>>>>  
>>>>>  Required Properties:
>>>>> -- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio"
>>>>> +- compatible: should be "ti,dm6441-gpio": for Davinci da850 SoCs 
>>>>> +			"ti,keystone-gpio": for Keystone 2 66AK2H/K, 66AK2L,
>>>>> +						66AK2E SoCs
>>>>> +			"ti,keystone-k2g-gpio", "ti,keystone-gpio": for 66AK2G
>>>>>  
>>>>>  - reg: Physical base address of the controller and the size of memory mapped
>>>>>         registers.
>>>>> @@ -26,6 +29,17 @@ The GPIO controller also acts as an interrupt controller. It uses the default
>>>>>  two cells specifier as described in Documentation/devicetree/bindings/
>>>>>  interrupt-controller/interrupts.txt.
>>>>>  
>>>>> +Required Properties specific to keystone-k2g
>>>>
>>>> Thanks for updating the binding for the clocks, but clocks are not
>>>> specific to K2G. They also apply to other K2 SoCs. Davinci platforms do
>>>> not have DT clocks atm, so the Davinci portion can be updated later if
>>>> and when they get added.
>>>>
>>>
>>> What about power-domain property?
> 
> The correct name is "power-domains".
> 
>> Driver has no pm_runtime implemented yet.
> 
> True, not yet, but this is in general a required property on K2G SoCs to
> automatically enable clocks through runtime_pm. Clock properties on K2G
> nodes should only be truly required if a driver is using clk API
> (ideally to control optional clocks or for adjusting clock frequencies).
> When the gpio-davinci driver gets updated to use pm_runtime, the clock
> properties will be rendered obsolete for K2G.
> 
> Rob,
> Any suggestions on how we need to handle this? Should we be adding the
> property now or later when we adapt the driver for runtime_pm? This
> would be a common theme for K2G nodes that are reusing Davinci drivers.
> 
> My take on this would be to add the property now, and mark the clock
> properties obsolete when the driver gets converted.

Rob,

Any comments on this?

Regards,
Keerthy

> 
> regards
> Suman
> 
>>
>>>
>>>>> +
>>>>> +- clocks: Should contain devices input clock. The first parameter
>>>>> +           is a handle to k2g_clks. The second parameter is the
>>>>> +           device ID and the third parameter is the clock ID. One can
>>>>> +           refer: http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
>>>>
>>>> No need for this link here, just refer to the appropriate clock
>>>> bindings. Some thing like the following would be better
>>>
>>> This information is helpful especially with the macros being dropped.
>>> However, I agree that this is not the place for this information.
>>> Probably should be linked to in the ti,sci-clk.txt and
>>> sci-pm-domain.txt. However, both of these are outdated since it is
>>> referring to macros and includes that don't exist or will no longer exist.
>>
>> Hence included here but yes i can point to something like what Suman
>> asked me to.
>>
>>>
>>>>
>>>> - clocks:               Should contain the device's input clock, and
>>>>                         should be defined as per the appropriate clock
>>>> bindings consumer usage in,
>>>>
>>>> Documentation/devicetree/bindings/clock/keystone-gate.txt
>>>>                             for 66AK2HK/66AK2L/66AK2E SoCs or,
>>>>
>>>> Documentation/devicetree/bindings/clock/ti,sci-clk.txt
>>>>                             for 66AK2G SoCs
>>>>
>>>>> +
>>>>> +           Example: <&k2g_clks 0x001c 0x0>;
>>>>
>>>> This can be dropped as well, below example already demonstrates it.
>>>>
>>>>> +
>>>>> +- clock-names: The driver expects the clock name to be "gpio";
>>>>
>>>> Just say, Should be "gpio". No need of mentioning about the driver.
>>>>
>>>>> +
>>>>>  Example:
>>>>>  
>>>>>  gpio: gpio@1e26000 {
>>>>> @@ -60,3 +74,27 @@ leds {
>>>>>  		...
>>>>>  	};
>>>>>  };
>>>>> +
>>>>> +Example for keystone-k2g:
>>>>
>>>> s/keystone-k2g/66AK2G/
>>>>
>>>>> +
>>>>> +gpio0: gpio@2603000 {
>>>>> +	compatible = "ti,keystone-k2g-gpio", "ti,keystone-gpio";
>>>>> +	reg = <0x02603000 0x100>;
>>>>> +	gpio-controller;
>>>>> +	#gpio-cells = <2>;
>>>>> +	interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
>>>>> +			<GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
>>>>> +	interrupt-controller;
>>>>> +	#interrupt-cells = <2>;
>>>>> +	ti,ngpio = <144>;
>>>>> +	ti,davinci-gpio-unbanked = <0>;
>>>>> +	clocks = <&k2g_clks 0x001b 0x0>;
>>>>> +	clock-names = "gpio";
>>>>> +};
>>>
>>> If your going to talk about other Keystone 2 devices it would be helpful
>>> to include an example for one of them since they have slightly different
>>> properties.
>>
>> Sure.
>>
>>>>>
>>>>
>>>> regards
>>>> Suman
>>>>
>
Vignesh Raghavendra Aug. 1, 2017, 6:12 a.m. UTC | #9
On Monday 31 July 2017 07:14 PM, Keerthy wrote:
> 
> 
> On Wednesday 26 July 2017 07:50 PM, Suman Anna wrote:
>> On 07/26/2017 08:36 AM, Keerthy wrote:
>>>
>>> On Wednesday 26 July 2017 06:57 PM, Franklin S Cooper Jr wrote:
>>>>
>>>>
>>>> On 07/26/2017 08:00 AM, Suman Anna wrote:
>>>>> Hi Keerthy,
>>>>>
>>>>> On 07/26/2017 01:45 AM, Keerthy wrote:
>>>>>> The patch adds keystone-k2g compatible, specific properties and
>>>>>> an example.
>>>>
[...]
>>>>>
>>>>
>>>> What about power-domain property?
>>
>> The correct name is "power-domains".
>>
>>> Driver has no pm_runtime implemented yet.
>>
>> True, not yet, but this is in general a required property on K2G SoCs to
>> automatically enable clocks through runtime_pm. Clock properties on K2G
>> nodes should only be truly required if a driver is using clk API
>> (ideally to control optional clocks or for adjusting clock frequencies).
>> When the gpio-davinci driver gets updated to use pm_runtime, the clock
>> properties will be rendered obsolete for K2G.
>>
>> Rob,
>> Any suggestions on how we need to handle this? Should we be adding the
>> property now or later when we adapt the driver for runtime_pm? This
>> would be a common theme for K2G nodes that are reusing Davinci drivers.
>>
>> My take on this would be to add the property now, and mark the clock
>> properties obsolete when the driver gets converted.
> 

I don't think SoC wide properties are put into device specific binding
documentation, for example pinctrl bindings are not put into device
documentation.

> Rob,
> 
> Any comments on this?
> 

[...]
Suman Anna Aug. 1, 2017, 2:30 p.m. UTC | #10
On 08/01/2017 01:12 AM, Vignesh R wrote:
> 
> 
> On Monday 31 July 2017 07:14 PM, Keerthy wrote:
>>
>>
>> On Wednesday 26 July 2017 07:50 PM, Suman Anna wrote:
>>> On 07/26/2017 08:36 AM, Keerthy wrote:
>>>>
>>>> On Wednesday 26 July 2017 06:57 PM, Franklin S Cooper Jr wrote:
>>>>>
>>>>>
>>>>> On 07/26/2017 08:00 AM, Suman Anna wrote:
>>>>>> Hi Keerthy,
>>>>>>
>>>>>> On 07/26/2017 01:45 AM, Keerthy wrote:
>>>>>>> The patch adds keystone-k2g compatible, specific properties and
>>>>>>> an example.
>>>>>
> [...]
>>>>>>
>>>>>
>>>>> What about power-domain property?
>>>
>>> The correct name is "power-domains".
>>>
>>>> Driver has no pm_runtime implemented yet.
>>>
>>> True, not yet, but this is in general a required property on K2G SoCs to
>>> automatically enable clocks through runtime_pm. Clock properties on K2G
>>> nodes should only be truly required if a driver is using clk API
>>> (ideally to control optional clocks or for adjusting clock frequencies).
>>> When the gpio-davinci driver gets updated to use pm_runtime, the clock
>>> properties will be rendered obsolete for K2G.
>>>
>>> Rob,
>>> Any suggestions on how we need to handle this? Should we be adding the
>>> property now or later when we adapt the driver for runtime_pm? This
>>> would be a common theme for K2G nodes that are reusing Davinci drivers.
>>>
>>> My take on this would be to add the property now, and mark the clock
>>> properties obsolete when the driver gets converted.
>>
> 
> I don't think SoC wide properties are put into device specific binding
> documentation, for example pinctrl bindings are not put into device
> documentation.

I wouldn't compare this to pinctrl bindings exactly but more similar to
clocks or the ti,hwmods on OMAP/AM platforms. I see lot of other
bindings documenting the power-domains property just as well.

regards
Suman

> 
>> Rob,
>>
>> Any comments on this?
>>
> 
> [...]
>
Franklin Cooper Aug. 1, 2017, 3:49 p.m. UTC | #11
On 08/01/2017 09:30 AM, Suman Anna wrote:
> On 08/01/2017 01:12 AM, Vignesh R wrote:
>>
>>
>> On Monday 31 July 2017 07:14 PM, Keerthy wrote:
>>>
>>>
>>> On Wednesday 26 July 2017 07:50 PM, Suman Anna wrote:
>>>> On 07/26/2017 08:36 AM, Keerthy wrote:
>>>>>
>>>>> On Wednesday 26 July 2017 06:57 PM, Franklin S Cooper Jr wrote:
>>>>>>
>>>>>>
>>>>>> On 07/26/2017 08:00 AM, Suman Anna wrote:
>>>>>>> Hi Keerthy,
>>>>>>>
>>>>>>> On 07/26/2017 01:45 AM, Keerthy wrote:
>>>>>>>> The patch adds keystone-k2g compatible, specific properties and
>>>>>>>> an example.
>>>>>>
>> [...]
>>>>>>>
>>>>>>
>>>>>> What about power-domain property?
>>>>
>>>> The correct name is "power-domains".
>>>>
>>>>> Driver has no pm_runtime implemented yet.
>>>>
>>>> True, not yet, but this is in general a required property on K2G SoCs to
>>>> automatically enable clocks through runtime_pm. Clock properties on K2G
>>>> nodes should only be truly required if a driver is using clk API
>>>> (ideally to control optional clocks or for adjusting clock frequencies).
>>>> When the gpio-davinci driver gets updated to use pm_runtime, the clock
>>>> properties will be rendered obsolete for K2G.
>>>>
>>>> Rob,
>>>> Any suggestions on how we need to handle this? Should we be adding the
>>>> property now or later when we adapt the driver for runtime_pm? This
>>>> would be a common theme for K2G nodes that are reusing Davinci drivers.
>>>>
>>>> My take on this would be to add the property now, and mark the clock
>>>> properties obsolete when the driver gets converted.
>>>
>>
>> I don't think SoC wide properties are put into device specific binding
>> documentation, for example pinctrl bindings are not put into device
>> documentation.
> 
> I wouldn't compare this to pinctrl bindings exactly but more similar to
> clocks or the ti,hwmods on OMAP/AM platforms. I see lot of other
> bindings documenting the power-domains property just as well.

The issue is that 66AK2G utilizes drivers from both Keystone/Davinci and
OMAP SoC architectures that handles clock and pm in different ways. So
for various reasons some drivers just need the power-domain property
which is new and unique to 66AK2G and other drivers just need the clocks
property while others may also need the clock-names property. This lack
of consistency makes properly documenting things important. Also 66AK2G
will never used hwmod property so avoiding that confusion will also be
helpful if the current bindings document does include references to hwmod.

> 
> regards
> Suman
> 
>>
>>> Rob,
>>>
>>> Any comments on this?
>>>
>>
>> [...]
>>
>
Linus Walleij Aug. 2, 2017, 9:29 a.m. UTC | #12
On Wed, Jul 26, 2017 at 8:45 AM, Keerthy <j-keerthy@ti.com> wrote:

> The patch adds keystone-k2g compatible, specific properties and
> an example.
>
> Signed-off-by: Keerthy <j-keerthy@ti.com>
> ---
>
> Changes in v3:

I guess I'm waiting for a v4 on this.

The changes seem reasonable, also fairly standard and
uncontroversial.

Yours,
Linus Walleij
Rob Herring (Arm) Aug. 3, 2017, 4:17 p.m. UTC | #13
On Wed, Jul 26, 2017 at 12:15:23PM +0530, Keerthy wrote:
> The patch adds keystone-k2g compatible, specific properties and
> an example.
> 
> Signed-off-by: Keerthy <j-keerthy@ti.com>
> ---
> 
> Changes in v3:
> 
>   * Added details about family of SoCs corresponding to compatibles.
> 
>  .../devicetree/bindings/gpio/gpio-davinci.txt      | 40 +++++++++++++++++++++-
>  1 file changed, 39 insertions(+), 1 deletion(-)

Acked-by: Rob Herring <robh@kernel.org>
J, KEERTHY Aug. 4, 2017, 4:16 a.m. UTC | #14
On Thursday 03 August 2017 09:47 PM, Rob Herring wrote:
> On Wed, Jul 26, 2017 at 12:15:23PM +0530, Keerthy wrote:
>> The patch adds keystone-k2g compatible, specific properties and
>> an example.
>>
>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>> ---
>>
>> Changes in v3:
>>
>>   * Added details about family of SoCs corresponding to compatibles.
>>
>>  .../devicetree/bindings/gpio/gpio-davinci.txt      | 40 +++++++++++++++++++++-
>>  1 file changed, 39 insertions(+), 1 deletion(-)
> 
> Acked-by: Rob Herring <robh@kernel.org>

Thanks Rob.

Santosh,

I will post a v4 adding Rob's and Linus's Ack.

Thanks,
Keerthy

>
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
index 5079ba7..fb9efee 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
+++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt
@@ -1,7 +1,10 @@ 
 Davinci/Keystone GPIO controller bindings
 
 Required Properties:
-- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio"
+- compatible: should be "ti,dm6441-gpio": for Davinci da850 SoCs 
+			"ti,keystone-gpio": for Keystone 2 66AK2H/K, 66AK2L,
+						66AK2E SoCs
+			"ti,keystone-k2g-gpio", "ti,keystone-gpio": for 66AK2G
 
 - reg: Physical base address of the controller and the size of memory mapped
        registers.
@@ -26,6 +29,17 @@  The GPIO controller also acts as an interrupt controller. It uses the default
 two cells specifier as described in Documentation/devicetree/bindings/
 interrupt-controller/interrupts.txt.
 
+Required Properties specific to keystone-k2g
+
+- clocks: Should contain devices input clock. The first parameter
+           is a handle to k2g_clks. The second parameter is the
+           device ID and the third parameter is the clock ID. One can
+           refer: http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
+
+           Example: <&k2g_clks 0x001c 0x0>;
+
+- clock-names: The driver expects the clock name to be "gpio";
+
 Example:
 
 gpio: gpio@1e26000 {
@@ -60,3 +74,27 @@  leds {
 		...
 	};
 };
+
+Example for keystone-k2g:
+
+gpio0: gpio@2603000 {
+	compatible = "ti,keystone-k2g-gpio", "ti,keystone-gpio";
+	reg = <0x02603000 0x100>;
+	gpio-controller;
+	#gpio-cells = <2>;
+	interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
+			<GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
+			<GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
+			<GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
+			<GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
+			<GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
+			<GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
+			<GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
+			<GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
+	interrupt-controller;
+	#interrupt-cells = <2>;
+	ti,ngpio = <144>;
+	ti,davinci-gpio-unbanked = <0>;
+	clocks = <&k2g_clks 0x001b 0x0>;
+	clock-names = "gpio";
+};