[PATCH linux dev-4.10 1/2] ARM: dts: aspeed: Add gpio-keys-polled for fan presence

Christopher Bostic cbostic at linux.vnet.ibm.com
Wed Jul 19 02:27:53 AEST 2017



On 7/17/17 8:49 PM, Andrew Jeffery wrote:
> On Mon, 2017-07-17 at 16:27 -0500, Christopher Bostic wrote:
>> Define gpio-keys-polled.  Add pca-955x chip IO as GPIO source.
>>
>>> Signed-off-by: Christopher Bostic <cbostic at linux.vnet.ibm.com>
>> ---
>>   arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts | 34 ++++++++++++++++++++++++
>>   1 file changed, 34 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
>> index 34c5dfc..d60a1db 100644
>> --- a/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
>> +++ b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
>> @@ -62,6 +62,38 @@
>>>   		};
>>>   	};
>>   
>>> +	gpio-keys-polled {
>>> +		compatible = "gpio-keys-polled";
>>> +		#address-cells = <1>;
>>> +		#size-cells = <0>;
>>> +		#poll-interval = <100>;
>>> +		autorepeat;
>> +
>>> +		fan0-presence {
>>> +			label = "fan0-presence";
>>> +			gpios = <&pca0 4 GPIO_ACTIVE_LOW>;
>> +			linux,code = <232>;
> I think I replied about your choice of codes in the previous series.
> The thought that I eventually came to (after replying IIRC) was what
> has sort-of happened naturally here by way of the PCA card being unable
> to provide interrupts, forcing you to define a separate node using
> gpio-keys-polled.
>
> Anyway, the thought was to have one gpio-keys{,-polled} node per
> gpiochip device. That gives us the namespacing that the gpiochip
> phandle provides - i.e. all keys in a node must use the same gpiochip
> phandle. This isolates the keys behind separate input devices, and thus
> their codes don't need to be globally unique.
>
> So in this case I'm suggesting:
>
>      fan0-presence {
>          label = "fan0-presence";
>          gpios = <&pca0 4 GPIO_ACTIVE_LOW>;
>          linux,code = <4>;
>      }
>
> And likewise for the nodes below.

Hi Andrew,

I'll update per your suggestion.

Thanks for the input,
Chris

>
> Cheers,
>
> Andrew
>
>> +		};
>> +
>>> +		fan1-presence {
>>> +			label = "fan1-presence";
>>> +			gpios = <&pca0 5 GPIO_ACTIVE_LOW>;
>>> +			linux,code = <233>;
>>> +		};
>> +
>>> +		fan2-presence {
>>> +			label = "fan2-presence";
>>> +			gpios = <&pca0 6 GPIO_ACTIVE_LOW>;
>>> +			linux,code = <234>;
>>> +		};
>> +
>>> +		fan3-presence {
>>> +			label = "fan3-presence";
>>> +			gpios = <&pca0 7 GPIO_ACTIVE_LOW>;
>>> +			linux,code = <235>;
>>> +		};
>>> +	};
>> +
>>>   	leds {
>>>   		compatible = "gpio-leds";
>>   
>> @@ -224,6 +256,8 @@
>>>   		reg = <0x60>;
>>>   		#address-cells = <1>;
>>>   		#size-cells = <0>;
>>> +		gpio-controller;
>>> +		#gpio-cells = <2>;
>>   
>>>>   		fan0: led at 0 {
>>>   			label = "fan0";



More information about the openbmc mailing list