* [PATCH RESEND v4 1/4] input: sun4i-a10-lradc-keys: Add support for A83T
2019-03-27 2:33 [PATCH RESEND v4 0/4] Add support for lradc on A83T megous
@ 2019-03-27 2:33 ` megous
2019-04-04 18:49 ` Dmitry Torokhov
2019-03-27 2:33 ` [PATCH RESEND v4 2/4] dt-bindings: input: Add R_LRADC " megous
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: megous @ 2019-03-27 2:33 UTC (permalink / raw)
To: maxime.ripard, wens, robh, Dmitry Torokhov, mark.rutland
Cc: devicetree, linux-sunxi, linux-kernel, hdegoede, Ziping Chen,
linux-input, linux-arm-kernel
From: Ziping Chen <techping.chan@gmail.com>
Allwinner A83T SoC has a low res adc like the one in Allwinner A10 SoC,
however, the A10 SoC's vref of lradc internally is divided by 2/3 and
the A83T SoC's vref of lradc internally is divided by 3/4, thus add
a hardware variant for it to be compatible with various devices.
Signed-off-by: Ziping Chen <techping.chan@gmail.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
drivers/input/keyboard/sun4i-lradc-keys.c | 38 ++++++++++++++++++++---
1 file changed, 34 insertions(+), 4 deletions(-)
diff --git a/drivers/input/keyboard/sun4i-lradc-keys.c b/drivers/input/keyboard/sun4i-lradc-keys.c
index 57272df34cd5..df3eec72a9b2 100644
--- a/drivers/input/keyboard/sun4i-lradc-keys.c
+++ b/drivers/input/keyboard/sun4i-lradc-keys.c
@@ -46,6 +46,7 @@
#define CONTINUE_TIME_SEL(x) ((x) << 16) /* 4 bits */
#define KEY_MODE_SEL(x) ((x) << 12) /* 2 bits */
#define LEVELA_B_CNT(x) ((x) << 8) /* 4 bits */
+#define HOLD_KEY_EN(x) ((x) << 7)
#define HOLD_EN(x) ((x) << 6)
#define LEVELB_VOL(x) ((x) << 4) /* 2 bits */
#define SAMPLE_RATE(x) ((x) << 2) /* 2 bits */
@@ -63,6 +64,25 @@
#define CHAN0_KEYDOWN_IRQ BIT(1)
#define CHAN0_DATA_IRQ BIT(0)
+/* struct lradc_variant - Describe sun4i-a10-lradc-keys hardware variant
+ * @divisor_numerator: The numerator of lradc Vref internally divisor
+ * @divisor_denominator: The denominator of lradc Vref internally divisor
+ */
+struct lradc_variant {
+ u8 divisor_numerator;
+ u8 divisor_denominator;
+};
+
+static const struct lradc_variant lradc_variant_a10 = {
+ .divisor_numerator = 2,
+ .divisor_denominator = 3
+};
+
+static const struct lradc_variant r_lradc_variant_a83t = {
+ .divisor_numerator = 3,
+ .divisor_denominator = 4
+};
+
struct sun4i_lradc_keymap {
u32 voltage;
u32 keycode;
@@ -74,6 +94,7 @@ struct sun4i_lradc_data {
void __iomem *base;
struct regulator *vref_supply;
struct sun4i_lradc_keymap *chan0_map;
+ const struct lradc_variant *variant;
u32 chan0_map_count;
u32 chan0_keycode;
u32 vref;
@@ -128,9 +149,9 @@ static int sun4i_lradc_open(struct input_dev *dev)
if (error)
return error;
- /* lradc Vref internally is divided by 2/3 */
- lradc->vref = regulator_get_voltage(lradc->vref_supply) * 2 / 3;
-
+ lradc->vref = regulator_get_voltage(lradc->vref_supply) *
+ lradc->variant->divisor_numerator /
+ lradc->variant->divisor_denominator;
/*
* Set sample time to 4 ms / 250 Hz. Wait 2 * 4 ms for key to
* stabilize on press, wait (1 + 1) * 4 ms for key release
@@ -222,6 +243,12 @@ static int sun4i_lradc_probe(struct platform_device *pdev)
if (error)
return error;
+ lradc->variant = of_device_get_match_data(&pdev->dev);
+ if (!lradc->variant) {
+ dev_err(&pdev->dev, "Missing sun4i-a10-lradc-keys variant\n");
+ return -EINVAL;
+ }
+
lradc->vref_supply = devm_regulator_get(dev, "vref");
if (IS_ERR(lradc->vref_supply))
return PTR_ERR(lradc->vref_supply);
@@ -265,7 +292,10 @@ static int sun4i_lradc_probe(struct platform_device *pdev)
}
static const struct of_device_id sun4i_lradc_of_match[] = {
- { .compatible = "allwinner,sun4i-a10-lradc-keys", },
+ { .compatible = "allwinner,sun4i-a10-lradc-keys",
+ .data = &lradc_variant_a10 },
+ { .compatible = "allwinner,sun8i-a83t-r-lradc",
+ .data = &r_lradc_variant_a83t },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, sun4i_lradc_of_match);
--
2.21.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH RESEND v4 1/4] input: sun4i-a10-lradc-keys: Add support for A83T
2019-03-27 2:33 ` [PATCH RESEND v4 1/4] input: sun4i-a10-lradc-keys: Add support for A83T megous
@ 2019-04-04 18:49 ` Dmitry Torokhov
2019-04-06 16:57 ` [linux-sunxi] " Ondřej Jirman
0 siblings, 1 reply; 10+ messages in thread
From: Dmitry Torokhov @ 2019-04-04 18:49 UTC (permalink / raw)
To: megous
Cc: mark.rutland, robh, devicetree, linux-sunxi, wens, linux-kernel,
hdegoede, Ziping Chen, linux-input, maxime.ripard,
linux-arm-kernel
On Wed, Mar 27, 2019 at 03:33:36AM +0100, megous@megous.com wrote:
> From: Ziping Chen <techping.chan@gmail.com>
>
> Allwinner A83T SoC has a low res adc like the one in Allwinner A10 SoC,
> however, the A10 SoC's vref of lradc internally is divided by 2/3 and
> the A83T SoC's vref of lradc internally is divided by 3/4, thus add
> a hardware variant for it to be compatible with various devices.
>
> Signed-off-by: Ziping Chen <techping.chan@gmail.com>
> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Applied, this and binding patch; the dts changes should go through other
relevant trees I believe.
Thanks.
--
Dmitry
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linux-sunxi] Re: [PATCH RESEND v4 1/4] input: sun4i-a10-lradc-keys: Add support for A83T
2019-04-04 18:49 ` Dmitry Torokhov
@ 2019-04-06 16:57 ` Ondřej Jirman
0 siblings, 0 replies; 10+ messages in thread
From: Ondřej Jirman @ 2019-04-06 16:57 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: mark.rutland, robh, devicetree, linux-sunxi, wens, linux-kernel,
hdegoede, Ziping Chen, linux-input, maxime.ripard,
linux-arm-kernel
Hello,
On Thu, Apr 04, 2019 at 11:49:15AM -0700, Dmitry Torokhov wrote:
> On Wed, Mar 27, 2019 at 03:33:36AM +0100, megous@megous.com wrote:
> > From: Ziping Chen <techping.chan@gmail.com>
> >
> > Allwinner A83T SoC has a low res adc like the one in Allwinner A10 SoC,
> > however, the A10 SoC's vref of lradc internally is divided by 2/3 and
> > the A83T SoC's vref of lradc internally is divided by 3/4, thus add
> > a hardware variant for it to be compatible with various devices.
> >
> > Signed-off-by: Ziping Chen <techping.chan@gmail.com>
> > Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
>
> Applied, this and binding patch; the dts changes should go through other
> relevant trees I believe.
Thank you very much. Yes, the rest should go through the sunxi tree.
regards,
Ondrej
> Thanks.
>
> --
> Dmitry
>
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH RESEND v4 2/4] dt-bindings: input: Add R_LRADC support for A83T
2019-03-27 2:33 [PATCH RESEND v4 0/4] Add support for lradc on A83T megous
2019-03-27 2:33 ` [PATCH RESEND v4 1/4] input: sun4i-a10-lradc-keys: Add support for A83T megous
@ 2019-03-27 2:33 ` megous
2019-03-27 2:33 ` [PATCH RESEND v4 3/4] ARM: dts: sunxi: " megous
2019-03-27 2:33 ` [PATCH RESEND v4 4/4] ARM: dts: sun8i: tbs-a711: Add support for volume keys input megous
3 siblings, 0 replies; 10+ messages in thread
From: megous @ 2019-03-27 2:33 UTC (permalink / raw)
To: maxime.ripard, wens, robh, Dmitry Torokhov, mark.rutland
Cc: devicetree, linux-sunxi, linux-kernel, hdegoede, Ziping Chen,
linux-input, linux-arm-kernel
From: Ziping Chen <techping.chan@gmail.com>
Allwinner A83T SoC has a low res ADC like the one in Allwinner A10 SoC.
Add binding for it.
Signed-off-by: Ziping Chen <techping.chan@gmail.com>
Acked-by: Rob Herring <robh@kernel.org>
---
.../devicetree/bindings/input/sun4i-lradc-keys.txt | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt b/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt
index 1458c3179a63..496125c6bfb7 100644
--- a/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt
+++ b/Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt
@@ -2,12 +2,14 @@ Allwinner sun4i low res adc attached tablet keys
------------------------------------------------
Required properties:
- - compatible: "allwinner,sun4i-a10-lradc-keys"
+ - compatible: should be one of the following string:
+ "allwinner,sun4i-a10-lradc-keys"
+ "allwinner,sun8i-a83t-r-lradc"
- reg: mmio address range of the chip
- interrupts: interrupt to which the chip is connected
- vref-supply: powersupply for the lradc reference voltage
-Each key is represented as a sub-node of "allwinner,sun4i-a10-lradc-keys":
+Each key is represented as a sub-node of the compatible mentioned above:
Required subnode-properties:
- label: Descriptive name of the key.
--
2.21.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH RESEND v4 3/4] ARM: dts: sunxi: Add R_LRADC support for A83T
2019-03-27 2:33 [PATCH RESEND v4 0/4] Add support for lradc on A83T megous
2019-03-27 2:33 ` [PATCH RESEND v4 1/4] input: sun4i-a10-lradc-keys: Add support for A83T megous
2019-03-27 2:33 ` [PATCH RESEND v4 2/4] dt-bindings: input: Add R_LRADC " megous
@ 2019-03-27 2:33 ` megous
2019-04-08 8:00 ` Maxime Ripard
2019-03-27 2:33 ` [PATCH RESEND v4 4/4] ARM: dts: sun8i: tbs-a711: Add support for volume keys input megous
3 siblings, 1 reply; 10+ messages in thread
From: megous @ 2019-03-27 2:33 UTC (permalink / raw)
To: maxime.ripard, wens, robh, Dmitry Torokhov, mark.rutland
Cc: devicetree, linux-sunxi, linux-kernel, hdegoede, Ziping Chen,
linux-input, linux-arm-kernel
From: Ziping Chen <techping.chan@gmail.com>
Allwinner A83T SoC has a low res adc like the one in Allwinner A10 SoC.
Now the driver has been modified to support it.
Add support for it.
Signed-off-by: Ziping Chen <techping.chan@gmail.com>
---
arch/arm/boot/dts/sun8i-a83t.dtsi | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi
index fcb7ef5ce2df..de1b77e49f06 100644
--- a/arch/arm/boot/dts/sun8i-a83t.dtsi
+++ b/arch/arm/boot/dts/sun8i-a83t.dtsi
@@ -1024,6 +1024,13 @@
status = "disabled";
};
+ r_lradc: lradc@1f03c00 {
+ compatible = "allwinner,sun8i-a83t-r-lradc";
+ reg = <0x01f03c00 0x100>;
+ interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+ status = "disabled";
+ };
+
r_pio: pinctrl@1f02c00 {
compatible = "allwinner,sun8i-a83t-r-pinctrl";
reg = <0x01f02c00 0x400>;
--
2.21.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH RESEND v4 3/4] ARM: dts: sunxi: Add R_LRADC support for A83T
2019-03-27 2:33 ` [PATCH RESEND v4 3/4] ARM: dts: sunxi: " megous
@ 2019-04-08 8:00 ` Maxime Ripard
2019-04-08 12:09 ` Ondřej Jirman
0 siblings, 1 reply; 10+ messages in thread
From: Maxime Ripard @ 2019-04-08 8:00 UTC (permalink / raw)
To: megous
Cc: mark.rutland, robh, devicetree, linux-sunxi, Dmitry Torokhov,
Ziping Chen, linux-kernel, hdegoede, wens, linux-input,
linux-arm-kernel
[-- Attachment #1.1: Type: text/plain, Size: 437 bytes --]
On Wed, Mar 27, 2019 at 03:33:38AM +0100, megous@megous.com wrote:
> From: Ziping Chen <techping.chan@gmail.com>
>
> Allwinner A83T SoC has a low res adc like the one in Allwinner A10 SoC.
> Now the driver has been modified to support it.
>
> Add support for it.
>
> Signed-off-by: Ziping Chen <techping.chan@gmail.com>
It's missing your SoB.
Maxime
--
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH RESEND v4 3/4] ARM: dts: sunxi: Add R_LRADC support for A83T
2019-04-08 8:00 ` Maxime Ripard
@ 2019-04-08 12:09 ` Ondřej Jirman
2019-04-09 7:43 ` Maxime Ripard
0 siblings, 1 reply; 10+ messages in thread
From: Ondřej Jirman @ 2019-04-08 12:09 UTC (permalink / raw)
To: Maxime Ripard
Cc: mark.rutland, robh, devicetree, Dmitry Torokhov, Ziping Chen,
linux-kernel, hdegoede, linux-sunxi, linux-input, wens,
linux-arm-kernel
Hello Maxime,
On Mon, Apr 08, 2019 at 10:00:56AM +0200, Maxime Ripard wrote:
> On Wed, Mar 27, 2019 at 03:33:38AM +0100, megous@megous.com wrote:
> > From: Ziping Chen <techping.chan@gmail.com>
> >
> > Allwinner A83T SoC has a low res adc like the one in Allwinner A10 SoC.
> > Now the driver has been modified to support it.
> >
> > Add support for it.
> >
> > Signed-off-by: Ziping Chen <techping.chan@gmail.com>
>
> It's missing your SoB.
Signed-off-by: Ondrej Jirman <megous@megous.com>
Please add it when aplying he patch.
regards,
Ondrej
> Maxime
>
> --
> Maxime Ripard, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH RESEND v4 3/4] ARM: dts: sunxi: Add R_LRADC support for A83T
2019-04-08 12:09 ` Ondřej Jirman
@ 2019-04-09 7:43 ` Maxime Ripard
0 siblings, 0 replies; 10+ messages in thread
From: Maxime Ripard @ 2019-04-09 7:43 UTC (permalink / raw)
To: mark.rutland, robh, devicetree, linux-sunxi, Dmitry Torokhov,
Ziping Chen, linux-kernel, hdegoede, wens, linux-input,
linux-arm-kernel
[-- Attachment #1.1: Type: text/plain, Size: 762 bytes --]
On Mon, Apr 08, 2019 at 02:09:01PM +0200, Ondřej Jirman wrote:
> Hello Maxime,
>
> On Mon, Apr 08, 2019 at 10:00:56AM +0200, Maxime Ripard wrote:
> > On Wed, Mar 27, 2019 at 03:33:38AM +0100, megous@megous.com wrote:
> > > From: Ziping Chen <techping.chan@gmail.com>
> > >
> > > Allwinner A83T SoC has a low res adc like the one in Allwinner A10 SoC.
> > > Now the driver has been modified to support it.
> > >
> > > Add support for it.
> > >
> > > Signed-off-by: Ziping Chen <techping.chan@gmail.com>
> >
> > It's missing your SoB.
>
> Signed-off-by: Ondrej Jirman <megous@megous.com>
>
> Please add it when aplying he patch.
Done, thanks!
Maxime
--
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH RESEND v4 4/4] ARM: dts: sun8i: tbs-a711: Add support for volume keys input
2019-03-27 2:33 [PATCH RESEND v4 0/4] Add support for lradc on A83T megous
` (2 preceding siblings ...)
2019-03-27 2:33 ` [PATCH RESEND v4 3/4] ARM: dts: sunxi: " megous
@ 2019-03-27 2:33 ` megous
3 siblings, 0 replies; 10+ messages in thread
From: megous @ 2019-03-27 2:33 UTC (permalink / raw)
To: maxime.ripard, wens, robh, Dmitry Torokhov, mark.rutland
Cc: Ondrej Jirman, devicetree, linux-sunxi, linux-kernel, hdegoede,
Ziping Chen, linux-input, linux-arm-kernel
From: Ondrej Jirman <megous@megous.com>
TBS A711 tablet has volume up/down keys connected to r_lradc. Add
support for these keys.
Signed-off-by: Ondrej Jirman <megous@megous.com>
---
arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts b/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
index 1e840ab5a541..6ecdc11b7059 100644
--- a/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
+++ b/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
@@ -46,6 +46,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/input/input.h>
/ {
model = "TBS A711 Tablet";
@@ -200,6 +201,25 @@
status = "okay";
};
+&r_lradc {
+ vref-supply = <®_aldo2>;
+ status = "okay";
+
+ button@210 {
+ label = "Volume Up";
+ linux,code = <KEY_VOLUMEUP>;
+ channel = <0>;
+ voltage = <210000>;
+ };
+
+ button@410 {
+ label = "Volume Down";
+ linux,code = <KEY_VOLUMEDOWN>;
+ channel = <0>;
+ voltage = <410000>;
+ };
+};
+
&r_rsb {
status = "okay";
--
2.21.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread