From bcfb3ad01173bd02d02c5222e4e2a7585bdc3f94 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= <megi@xff.cz>
Date: Fri, 21 Jan 2022 23:28:48 +0100
Subject: [PATCH 108/389] arm64: dts: sun50i-a64-pinephone: Add support for
 Pinephone keyboard

Pinephone keyboard can be used with Pinephone. Describe it in
the device tree.

Signed-off-by: Ondrej Jirman <megi@xff.cz>
---
 .../dts/allwinner/sun50i-a64-pinephone.dtsi   | 136 ++++++++++++++++++
 1 file changed, 136 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
index dd7b27a6597c..c1896206ace7 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
@@ -178,6 +178,122 @@ bat: battery {
 			<0xdf 98>;
         };
 
+        ppkb_battery: keyboard-battery {
+                compatible = "simple-battery";
+                voltage-min-design-microvolt = <3000000>;
+                voltage-max-design-microvolt = <4200000>;
+                energy-full-design-microwatt-hours = <21000000>;
+                charge-full-design-microamp-hours = <6000000>;
+                precharge-current-microamp = <100000>;
+                charge-term-current-microamp = <50000>;
+                constant-charge-current-max-microamp = <2000000>;
+                constant-charge-voltage-max-microvolt = <4200000>;
+                factory-internal-resistance-micro-ohms = <120000>;
+                ocv-capacity-celsius = <20>;
+                ocv-capacity-table-0 =
+                	<4147328 100>,
+			<4132636 99>,
+			<4121720 98>,
+			<4110905 97>,
+			<4102063 96>,
+			<4092428 95>,
+			<4082371 94>,
+			<4074137 93>,
+			<4064172 92>,
+			<4056387 91>,
+			<4047198 90>,
+			<4038599 89>,
+			<4030933 88>,
+			<4021831 87>,
+			<4012613 86>,
+			<4003863 85>,
+			<3995132 84>,
+			<3986108 83>,
+			<3977434 82>,
+			<3967977 81>,
+			<3960286 80>,
+			<3951737 79>,
+			<3943518 78>,
+			<3935723 77>,
+			<3928692 76>,
+			<3920093 75>,
+			<3912676 74>,
+			<3905481 73>,
+			<3899881 72>,
+			<3892341 71>,
+			<3887140 70>,
+			<3880005 69>,
+			<3876060 68>,
+			<3869195 67>,
+			<3863234 66>,
+			<3857808 65>,
+			<3851464 64>,
+			<3846976 63>,
+			<3840724 62>,
+			<3835254 61>,
+			<3830946 60>,
+			<3826564 59>,
+			<3821275 58>,
+			<3817413 57>,
+			<3811941 56>,
+			<3808947 55>,
+			<3804959 54>,
+			<3800958 53>,
+			<3797447 52>,
+			<3794303 51>,
+			<3790341 50>,
+			<3787022 49>,
+			<3783436 48>,
+			<3779936 47>,
+			<3776176 46>,
+			<3772160 45>,
+			<3769348 44>,
+			<3766705 43>,
+			<3762481 42>,
+			<3760894 41>,
+			<3758396 40>,
+			<3755803 39>,
+			<3753543 38>,
+			<3749691 37>,
+			<3747026 36>,
+			<3743937 35>,
+			<3741872 34>,
+			<3738529 33>,
+			<3737528 32>,
+			<3734059 31>,
+			<3731586 30>,
+			<3728576 29>,
+			<3725939 28>,
+			<3721208 27>,
+			<3718239 26>,
+			<3713032 25>,
+			<3709785 24>,
+			<3704045 23>,
+			<3701203 22>,
+			<3695965 21>,
+			<3691074 20>,
+			<3684562 19>,
+			<3679140 18>,
+			<3670993 17>,
+			<3664243 16>,
+			<3655383 15>,
+			<3647666 14>,
+			<3642747 13>,
+			<3637775 12>,
+			<3632593 11>,
+			<3627120 10>,
+			<3620923 9>,
+			<3611465 8>,
+			<3597536 7>,
+			<3577366 6>,
+			<3545253 5>,
+			<3497377 4>,
+			<3430377 3>,
+			<3337780 2>,
+			<3183953 1>,
+			<3064061 0>;
+        };
+
 	bt_sco_codec: bt-sco-codec {
 		#sound-dai-cells = <1>;
 		compatible = "linux,bt-sco";
@@ -540,6 +656,26 @@ accelerometer@68 {
 /* Connected to pogo pins (external spring based pinheader for user addons) */
 &i2c2 {
 	status = "okay";
+
+	ppkb: keyboard@15 {
+		compatible = "pine64,pinephone-keyboard";
+		reg = <0x15>;
+		interrupt-parent = <&r_pio>;
+		interrupts = <0 12 IRQ_TYPE_EDGE_FALLING>; /* PL12 */
+		vbat-supply = <&reg_usb_5v>;
+		wakeup-source;
+
+		i2c {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			charger@75 {
+				compatible = "injoinic,ip5209";
+				reg = <0x75>;
+				monitored-battery = <&ppkb_battery>;
+			};
+		};
+	};
 };
 
 &i2s2 {
-- 
2.35.3

