linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] rockchip: Add support for maskrom button on Radxa E20C
@ 2025-02-27 18:40 Jonas Karlman
  2025-02-27 18:40 ` [PATCH 1/4] dt-bindings: iio: adc: Add rockchip,rk3528-saradc variant Jonas Karlman
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Jonas Karlman @ 2025-02-27 18:40 UTC (permalink / raw)
  To: Heiko Stuebner
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Cameron,
	Lars-Peter Clausen, Yao Zi, linux-rockchip, devicetree, linux-iio,
	linux-arm-kernel, linux-kernel, Jonas Karlman

The Radxa E20C has two buttons, one SARADC maskrom button and one GPIO
user button.

This series adds dt-binding, driver support, DT node in SoC .dtsi and
adc-keys node in board DT to support the maskrom button.

Jonas Karlman (4):
  dt-bindings: iio: adc: Add rockchip,rk3528-saradc variant
  iio: adc: rockchip_saradc: Add support for RK3528
  arm64: dts: rockchip: Add SARADC node for RK3528
  arm64: dts: rockchip: Add adc-keys node to Radxa E20C

 .../bindings/iio/adc/rockchip-saradc.yaml     |  1 +
 .../boot/dts/rockchip/rk3528-radxa-e20c.dts   | 50 +++++++++++++++++++
 arch/arm64/boot/dts/rockchip/rk3528.dtsi      | 13 +++++
 drivers/iio/adc/rockchip_saradc.c             | 18 +++++++
 4 files changed, 82 insertions(+)

-- 
2.48.1



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/4] dt-bindings: iio: adc: Add rockchip,rk3528-saradc variant
  2025-02-27 18:40 [PATCH 0/4] rockchip: Add support for maskrom button on Radxa E20C Jonas Karlman
@ 2025-02-27 18:40 ` Jonas Karlman
  2025-02-28 18:59   ` Conor Dooley
  2025-03-04 11:41   ` Heiko Stübner
  2025-02-27 18:40 ` [PATCH 2/4] iio: adc: rockchip_saradc: Add support for RK3528 Jonas Karlman
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 9+ messages in thread
From: Jonas Karlman @ 2025-02-27 18:40 UTC (permalink / raw)
  To: Heiko Stuebner, Jonathan Cameron, Lars-Peter Clausen, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Yao Zi, linux-rockchip, devicetree, linux-iio, linux-arm-kernel,
	linux-kernel, Jonas Karlman

The Successive Approximation ADC (SARADC) in RK3528 uses the v2
controller and support:
- 10-bit resolution
- Up to 1MS/s sampling rate
- 4 single-ended input channels
- Current consumption: 0.5mA @ 1MS/s

Add a rockchip,rk3562-saradc compatible string for the 4 channels of
10-bit resolution supported by SARADC in RK3528.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
 Documentation/devicetree/bindings/iio/adc/rockchip-saradc.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.yaml b/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.yaml
index fd93ed3991e0..86eae9672c04 100644
--- a/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.yaml
@@ -15,6 +15,7 @@ properties:
       - const: rockchip,saradc
       - const: rockchip,rk3066-tsadc
       - const: rockchip,rk3399-saradc
+      - const: rockchip,rk3528-saradc
       - const: rockchip,rk3588-saradc
       - items:
           - const: rockchip,rk3576-saradc
-- 
2.48.1



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/4] iio: adc: rockchip_saradc: Add support for RK3528
  2025-02-27 18:40 [PATCH 0/4] rockchip: Add support for maskrom button on Radxa E20C Jonas Karlman
  2025-02-27 18:40 ` [PATCH 1/4] dt-bindings: iio: adc: Add rockchip,rk3528-saradc variant Jonas Karlman
@ 2025-02-27 18:40 ` Jonas Karlman
  2025-03-04 11:51   ` Heiko Stübner
  2025-02-27 18:40 ` [PATCH 3/4] arm64: dts: rockchip: Add SARADC node " Jonas Karlman
  2025-02-27 18:40 ` [PATCH 4/4] arm64: dts: rockchip: Add adc-keys node to Radxa E20C Jonas Karlman
  3 siblings, 1 reply; 9+ messages in thread
From: Jonas Karlman @ 2025-02-27 18:40 UTC (permalink / raw)
  To: Heiko Stuebner, Jonathan Cameron, Lars-Peter Clausen
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yao Zi,
	linux-rockchip, devicetree, linux-iio, linux-arm-kernel,
	linux-kernel, Jonas Karlman

The Successive Approximation ADC (SARADC) in RK3528 uses the v2
controller and support:
- 10-bit resolution
- Up to 1MS/s sampling rate
- 4 single-ended input channels
- Current consumption: 0.5mA @ 1MS/s

Add support for the 4 channels of 10-bit resolution supported by SARADC
in RK3528.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
 drivers/iio/adc/rockchip_saradc.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/iio/adc/rockchip_saradc.c b/drivers/iio/adc/rockchip_saradc.c
index a29e54754c8f..2619547d5d6f 100644
--- a/drivers/iio/adc/rockchip_saradc.c
+++ b/drivers/iio/adc/rockchip_saradc.c
@@ -275,6 +275,21 @@ static const struct rockchip_saradc_data rk3399_saradc_data = {
 	.power_down = rockchip_saradc_power_down_v1,
 };
 
+static const struct iio_chan_spec rockchip_rk3528_saradc_iio_channels[] = {
+	SARADC_CHANNEL(0, "adc0", 10),
+	SARADC_CHANNEL(1, "adc1", 10),
+	SARADC_CHANNEL(2, "adc2", 10),
+	SARADC_CHANNEL(3, "adc3", 10),
+};
+
+static const struct rockchip_saradc_data rk3528_saradc_data = {
+	.channels = rockchip_rk3528_saradc_iio_channels,
+	.num_channels = ARRAY_SIZE(rockchip_rk3528_saradc_iio_channels),
+	.clk_rate = 1000000,
+	.start = rockchip_saradc_start_v2,
+	.read = rockchip_saradc_read_v2,
+};
+
 static const struct iio_chan_spec rockchip_rk3568_saradc_iio_channels[] = {
 	SARADC_CHANNEL(0, "adc0", 10),
 	SARADC_CHANNEL(1, "adc1", 10),
@@ -324,6 +339,9 @@ static const struct of_device_id rockchip_saradc_match[] = {
 	}, {
 		.compatible = "rockchip,rk3399-saradc",
 		.data = &rk3399_saradc_data,
+	}, {
+		.compatible = "rockchip,rk3528-saradc",
+		.data = &rk3528_saradc_data,
 	}, {
 		.compatible = "rockchip,rk3568-saradc",
 		.data = &rk3568_saradc_data,
-- 
2.48.1



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/4] arm64: dts: rockchip: Add SARADC node for RK3528
  2025-02-27 18:40 [PATCH 0/4] rockchip: Add support for maskrom button on Radxa E20C Jonas Karlman
  2025-02-27 18:40 ` [PATCH 1/4] dt-bindings: iio: adc: Add rockchip,rk3528-saradc variant Jonas Karlman
  2025-02-27 18:40 ` [PATCH 2/4] iio: adc: rockchip_saradc: Add support for RK3528 Jonas Karlman
@ 2025-02-27 18:40 ` Jonas Karlman
  2025-02-27 18:40 ` [PATCH 4/4] arm64: dts: rockchip: Add adc-keys node to Radxa E20C Jonas Karlman
  3 siblings, 0 replies; 9+ messages in thread
From: Jonas Karlman @ 2025-02-27 18:40 UTC (permalink / raw)
  To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Jonathan Cameron, Lars-Peter Clausen, Yao Zi, linux-rockchip,
	devicetree, linux-iio, linux-arm-kernel, linux-kernel,
	Jonas Karlman

Add a device tree node for the SARADC controller used by RK3528.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
 arch/arm64/boot/dts/rockchip/rk3528.dtsi | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3528.dtsi b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
index 5b334690356a..0fb90f5c291c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3528.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3528.dtsi
@@ -7,6 +7,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/clock/rockchip,rk3528-cru.h>
+#include <dt-bindings/reset/rockchip,rk3528-cru.h>
 
 / {
 	compatible = "rockchip,rk3528";
@@ -251,5 +252,17 @@ uart7: serial@ffa28000 {
 			reg-shift = <2>;
 			status = "disabled";
 		};
+
+		saradc: adc@ffae0000 {
+			compatible = "rockchip,rk3528-saradc";
+			reg = <0x0 0xffae0000 0x0 0x10000>;
+			clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
+			clock-names = "saradc", "apb_pclk";
+			interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+			resets = <&cru SRST_P_SARADC>;
+			reset-names = "saradc-apb";
+			#io-channel-cells = <1>;
+			status = "disabled";
+		};
 	};
 };
-- 
2.48.1



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/4] arm64: dts: rockchip: Add adc-keys node to Radxa E20C
  2025-02-27 18:40 [PATCH 0/4] rockchip: Add support for maskrom button on Radxa E20C Jonas Karlman
                   ` (2 preceding siblings ...)
  2025-02-27 18:40 ` [PATCH 3/4] arm64: dts: rockchip: Add SARADC node " Jonas Karlman
@ 2025-02-27 18:40 ` Jonas Karlman
  3 siblings, 0 replies; 9+ messages in thread
From: Jonas Karlman @ 2025-02-27 18:40 UTC (permalink / raw)
  To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Jonathan Cameron, Lars-Peter Clausen, Yao Zi, linux-rockchip,
	devicetree, linux-iio, linux-arm-kernel, linux-kernel,
	Jonas Karlman

Radxa E20C has two buttons, one SARADC maskrom button and one GPIO user
button.

Add support for the maskrom button using a adc-keys node, also add the
regulators used by SARADC controller.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
 .../boot/dts/rockchip/rk3528-radxa-e20c.dts   | 50 +++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts b/arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
index d2cdb63d4a9d..dcc0b2584bbc 100644
--- a/arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
@@ -6,6 +6,8 @@
  */
 
 /dts-v1/;
+
+#include <dt-bindings/input/input.h>
 #include "rk3528.dtsi"
 
 / {
@@ -15,6 +17,54 @@ / {
 	chosen {
 		stdout-path = "serial0:1500000n8";
 	};
+
+	adc-keys {
+		compatible = "adc-keys";
+		io-channels = <&saradc 0>;
+		io-channel-names = "buttons";
+		keyup-threshold-microvolt = <1800000>;
+		poll-interval = <100>;
+
+		button-maskrom {
+			label = "MASKROM";
+			linux,code = <KEY_SETUP>;
+			press-threshold-microvolt = <0>;
+		};
+	};
+
+	vcc_1v8: regulator-1v8-vcc {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_1v8";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		vin-supply = <&vcc_3v3>;
+	};
+
+	vcc_3v3: regulator-3v3-vcc {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_3v3";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vcc5v0_sys>;
+	};
+
+	vcc5v0_sys: regulator-5v0-vcc-sys {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc5v0_sys";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+};
+
+&saradc {
+	vref-supply = <&vcc_1v8>;
+	status = "okay";
 };
 
 &uart0 {
-- 
2.48.1



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/4] dt-bindings: iio: adc: Add rockchip,rk3528-saradc variant
  2025-02-27 18:40 ` [PATCH 1/4] dt-bindings: iio: adc: Add rockchip,rk3528-saradc variant Jonas Karlman
@ 2025-02-28 18:59   ` Conor Dooley
  2025-03-04 11:41   ` Heiko Stübner
  1 sibling, 0 replies; 9+ messages in thread
From: Conor Dooley @ 2025-02-28 18:59 UTC (permalink / raw)
  To: Jonas Karlman
  Cc: Heiko Stuebner, Jonathan Cameron, Lars-Peter Clausen, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Yao Zi, linux-rockchip,
	devicetree, linux-iio, linux-arm-kernel, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 52 bytes --]

Acked-by: Conor Dooley <conor.dooley@microchip.com>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/4] dt-bindings: iio: adc: Add rockchip,rk3528-saradc variant
  2025-02-27 18:40 ` [PATCH 1/4] dt-bindings: iio: adc: Add rockchip,rk3528-saradc variant Jonas Karlman
  2025-02-28 18:59   ` Conor Dooley
@ 2025-03-04 11:41   ` Heiko Stübner
  1 sibling, 0 replies; 9+ messages in thread
From: Heiko Stübner @ 2025-03-04 11:41 UTC (permalink / raw)
  To: Jonathan Cameron, Lars-Peter Clausen, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Jonas Karlman
  Cc: Yao Zi, linux-rockchip, devicetree, linux-iio, linux-arm-kernel,
	linux-kernel, Jonas Karlman

Am Donnerstag, 27. Februar 2025, 19:40:50 MEZ schrieb Jonas Karlman:
> The Successive Approximation ADC (SARADC) in RK3528 uses the v2
> controller and support:
> - 10-bit resolution
> - Up to 1MS/s sampling rate
> - 4 single-ended input channels
> - Current consumption: 0.5mA @ 1MS/s
> 
> Add a rockchip,rk3562-saradc compatible string for the 4 channels of
> 10-bit resolution supported by SARADC in RK3528.
> 
> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>

Reviewed-by: Heiko Stuebner <heiko@sntech.de>




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/4] iio: adc: rockchip_saradc: Add support for RK3528
  2025-02-27 18:40 ` [PATCH 2/4] iio: adc: rockchip_saradc: Add support for RK3528 Jonas Karlman
@ 2025-03-04 11:51   ` Heiko Stübner
  2025-03-04 14:46     ` Jonathan Cameron
  0 siblings, 1 reply; 9+ messages in thread
From: Heiko Stübner @ 2025-03-04 11:51 UTC (permalink / raw)
  To: Jonathan Cameron, Lars-Peter Clausen, Jonas Karlman
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yao Zi,
	linux-rockchip, devicetree, linux-iio, linux-arm-kernel,
	linux-kernel, Jonas Karlman

Am Donnerstag, 27. Februar 2025, 19:40:51 MEZ schrieb Jonas Karlman:
> The Successive Approximation ADC (SARADC) in RK3528 uses the v2
> controller and support:
> - 10-bit resolution
> - Up to 1MS/s sampling rate
> - 4 single-ended input channels
> - Current consumption: 0.5mA @ 1MS/s
> 
> Add support for the 4 channels of 10-bit resolution supported by SARADC
> in RK3528.
> 
> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>

Reviewed-by: Heiko Stuebner <heiko@sntech.de>





^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/4] iio: adc: rockchip_saradc: Add support for RK3528
  2025-03-04 11:51   ` Heiko Stübner
@ 2025-03-04 14:46     ` Jonathan Cameron
  0 siblings, 0 replies; 9+ messages in thread
From: Jonathan Cameron @ 2025-03-04 14:46 UTC (permalink / raw)
  To: Heiko Stübner
  Cc: Lars-Peter Clausen, Jonas Karlman, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Yao Zi, linux-rockchip,
	devicetree, linux-iio, linux-arm-kernel, linux-kernel

On Tue, 04 Mar 2025 12:51:47 +0100
Heiko Stübner <heiko@sntech.de> wrote:

> Am Donnerstag, 27. Februar 2025, 19:40:51 MEZ schrieb Jonas Karlman:
> > The Successive Approximation ADC (SARADC) in RK3528 uses the v2
> > controller and support:
> > - 10-bit resolution
> > - Up to 1MS/s sampling rate
> > - 4 single-ended input channels
> > - Current consumption: 0.5mA @ 1MS/s
> > 
> > Add support for the 4 channels of 10-bit resolution supported by SARADC
> > in RK3528.
> > 
> > Signed-off-by: Jonas Karlman <jonas@kwiboo.se>  
> 
> Reviewed-by: Heiko Stuebner <heiko@sntech.de>
> 
> 
Not sure why but I can't reply to cover letter.  Anyhow, replying here
instead.  Applied patches 1-2 to iio.git / togreg which I'll push out
a testing for 0-day to poke at it.

Thanks,

Jonathan

> 



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-03-04 14:48 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-27 18:40 [PATCH 0/4] rockchip: Add support for maskrom button on Radxa E20C Jonas Karlman
2025-02-27 18:40 ` [PATCH 1/4] dt-bindings: iio: adc: Add rockchip,rk3528-saradc variant Jonas Karlman
2025-02-28 18:59   ` Conor Dooley
2025-03-04 11:41   ` Heiko Stübner
2025-02-27 18:40 ` [PATCH 2/4] iio: adc: rockchip_saradc: Add support for RK3528 Jonas Karlman
2025-03-04 11:51   ` Heiko Stübner
2025-03-04 14:46     ` Jonathan Cameron
2025-02-27 18:40 ` [PATCH 3/4] arm64: dts: rockchip: Add SARADC node " Jonas Karlman
2025-02-27 18:40 ` [PATCH 4/4] arm64: dts: rockchip: Add adc-keys node to Radxa E20C Jonas Karlman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).