[PATCH v7 0/5] VIM3: add support for checking 'Function' button state
Heinrich Schuchardt
xypron.glpk at gmx.de
Thu Feb 18 16:32:10 CET 2021
On 18.02.21 16:06, Neil Armstrong wrote:
> On 18/02/2021 11:35, Neil Armstrong wrote:
>> On 18/02/2021 11:33, Marek Szyprowski wrote:
>>> Hi All,
>>>
>>> This patchset adds all building blocks needed for checking the 'Function'
>>> button state in the boot script on Amlogic A311D based VIM3 board. This
>>> button is connected to the ADC line of the SoC, so it required to enable
>>> meson SARADC, the clocks needed for it and a simple button-adc drivers.
>>>
>>> Once applied, one can use following commands in the boot scripts:
>>> -->8---
>>> echo Checking Func button state: \\c
>>> if button Function
>>> then
>>> echo Selected alternative boot
>>> ...
>>> fi
>>> --->8---
>>>
>>> Best regards
>>> Marek Szyprowski
>>> Samsung R&D Institute Poland
>>>
>>>
>>> Changelog:
>>> v7:
>>> - added linux,code properties to the test.dts
>>>
>>> v6: https://lists.denx.de/pipermail/u-boot/2021-February/441039.html
>>> - added a simple sandbox test for adc-keys
>>> - use of_to_plat and adc_raw_to_uV to simplify code in the adc button driver
>>>
>>> v5: https://lists.denx.de/pipermail/u-boot/2021-January/438751.html
>>> - rebased onto latest uboot-amlogic/u-boot-amlogic-next branch
>>> - synchronized adc-keys binding with the recent version from the Linux
>>> kernel
>>> - updated adc-keys driver to match behavior from dt-bindings
>>> - added a patch for meson-saradc driver to register vdd reference supply
>>> to the ADC framework
>>>
>>> v4: https://lists.denx.de/pipermail/u-boot/2020-December/435641.html
>>> - rebased onto uboot-amlogic/u-boot-amlogic-next and dropped merged patches
>>> - added adc-keys bindings docs (copied from Linux kernel)
>>> - minor code adjustments pointed by Simon
>>> - enabled driver also in khadas-vim3l_defconfig
>>>
>>> v3: https://lists.denx.de/pipermail/u-boot/2020-December/435072.html
>>> - removed 'button' env variable
>>> - extended kconfig and patch descriptions
>>>
>>> v2: https://lists.denx.de/pipermail/u-boot/2020-December/434991.html
>>> - removed Change-Id tags
>>> - split defconfig changes into ADC and button related
>>>
>>> v1: https://lists.denx.de/pipermail/u-boot/2020-December/434875.html
>>> - initial submission
>>>
>>>
>>> Patch summary:
>>>
>>> Marek Szyprowski (5):
>>> dt-bindings: input: adc-keys bindings documentation
>>> button: add a simple Analog to Digital Converter device based button
>>> driver
>>> adc: meson-saradc: add support for getting reference voltage value
>>> configs: khadas-vim3(l): enable Function button support
>>> test: add a simple test for the adc-keys button driver
>>>
>>> arch/sandbox/dts/test.dts | 27 +++-
>>> configs/khadas-vim3_defconfig | 2 +
>>> configs/khadas-vim3l_defconfig | 2 +
>>> configs/sandbox_defconfig | 1 +
>>> doc/device-tree-bindings/input/adc-keys.txt | 67 +++++++++
>>> drivers/adc/meson-saradc.c | 21 +++
>>> drivers/button/Kconfig | 8 ++
>>> drivers/button/Makefile | 1 +
>>> drivers/button/button-adc.c | 146 ++++++++++++++++++++
>>> test/dm/button.c | 50 ++++++-
>>> 10 files changed, 322 insertions(+), 3 deletions(-)
>>> create mode 100644 doc/device-tree-bindings/input/adc-keys.txt
>>> create mode 100644 drivers/button/button-adc.c
>>>
>>
>> Applying to u-boot-amlogic !
>>
>> Thanks,
>> Neil
>>
>
> Doesn't seem related to this patchset but one of my builder gets this error:
> In file included from ../drivers/button/button-uclass.c:9:0:
> 973../include/button.h:37:42: warning: 'struct udevice' declared inside parameter list will not be visible outside of this definition or declaration
> 974 enum button_state_t (*get_state)(struct udevice *dev);
Hello Neil,
this is probably a side effect of
401d1c4f5d2d ("common: Drop asm/global_data.h from common header")
Adding a line
struct udevice;
to include/button.h should fix it.
Best regards
Heinrich
> 975 ^~~~~~~
> 976../include/button.h:49:51: warning: 'struct udevice' declared inside parameter list will not be visible outside of this definition or declaration
> 977 int button_get_by_label(const char *label, struct udevice **devp);
> 978 ^~~~~~~
> 979../include/button.h:57:45: warning: 'struct udevice' declared inside parameter list will not be visible outside of this definition or declaration
> 980 enum button_state_t button_get_state(struct udevice *dev);
> 981 ^~~~~~~
> 982../drivers/button/button-uclass.c:13:5: error: conflicting types for 'button_get_by_label'
> 983 int button_get_by_label(const char *label, struct udevice **devp)
> 984 ^~~~~~~~~~~~~~~~~~~
> 985In file included from ../drivers/button/button-uclass.c:9:0:
> 986../include/button.h:49:5: note: previous declaration of 'button_get_by_label' was here
> 987 int button_get_by_label(const char *label, struct udevice **devp);
> 988 ^~~~~~~~~~~~~~~~~~~
> 989../drivers/button/button-uclass.c:29:21: error: conflicting types for 'button_get_state'
> 990 enum button_state_t button_get_state(struct udevice *dev)
> 991 ^~~~~~~~~~~~~~~~
> 992In file included from ../drivers/button/button-uclass.c:9:0:
> 993../include/button.h:57:21: note: previous declaration of 'button_get_state' was here
> 994 enum button_state_t button_get_state(struct udevice *dev);
> 995 ^~~~~~~~~~~~~~~~
> 996../drivers/button/button-uclass.c: In function 'button_get_state':
> 997../drivers/button/button-uclass.c:36:24: warning: passing argument 1 of 'ops->get_state' from incompatible pointer type [-Wincompatible-pointer-types]
> 998 return ops->get_state(dev);
> 999 ^~~
> 1000../drivers/button/button-uclass.c:36:24: note: expected 'struct udevice *' but argument is of type 'struct udevice *'
> 1001make[3]: *** [../scripts/Makefile.build:265: drivers/button/button-uclass.o] Error 1
> 1002make[2]: *** [../scripts/Makefile.build:419: drivers/button] Error 2
> 1003make[1]: *** [/tmp/u-boot/Makefile:1791: drivers] Error 2
>
> did I miss a dependency ?
>
> Neil
>
More information about the U-Boot
mailing list