]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ARM: dts: sunxi: add support for NetCube Systems Nagami Keypad Carrier
authorLukas Schmid <lukas.schmid@netcube.li>
Sun, 31 Aug 2025 16:25:34 +0000 (18:25 +0200)
committerChen-Yu Tsai <wens@csie.org>
Sat, 13 Sep 2025 09:27:19 +0000 (17:27 +0800)
The NetCube Systems Nagami Keypad Carrier uses the Nagami SoM and contains
a TCA8418 connected to a 4x4 matrix keypad. The I2C2 interface is connected
to said TCA8418 and also a header for an PN532 NFC-Module. It also provides
a pin-header for a bi-color status led. Ethernet with PoE support is
available on a screwterminal after magnetics.

Signed-off-by: Lukas Schmid <lukas.schmid@netcube.li>
Link: https://patch.msgid.link/20250831162536.2380589-6-lukas.schmid@netcube.li
[wens@csie.org: fix indentation for board level compatible fallback,
gpio-line-names and keypad matrix.]
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
arch/arm/boot/dts/allwinner/Makefile
arch/arm/boot/dts/allwinner/sun8i-t113s-netcube-nagami-keypad-carrier.dts [new file with mode: 0644]

index 865fd8c9d1377cfdda59dd3e6f9ef4788d6ffa1c..f71392a55df870a38e66c67412bc5965d79c4a5c 100644 (file)
@@ -262,6 +262,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
        sun8i-s3-pinecube.dtb \
        sun8i-t113s-mangopi-mq-r-t113.dtb \
        sun8i-t113s-netcube-nagami-basic-carrier.dtb \
+       sun8i-t113s-netcube-nagami-keypad-carrier.dtb \
        sun8i-t3-cqa3t-bv3.dtb \
        sun8i-v3-sl631-imx179.dtb \
        sun8i-v3s-anbernic-rg-nano.dtb \
diff --git a/arch/arm/boot/dts/allwinner/sun8i-t113s-netcube-nagami-keypad-carrier.dts b/arch/arm/boot/dts/allwinner/sun8i-t113s-netcube-nagami-keypad-carrier.dts
new file mode 100644 (file)
index 0000000..4ffa6a0
--- /dev/null
@@ -0,0 +1,129 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2025 Lukas Schmid <lukas.schmid@netcube.li>
+ */
+
+/dts-v1/;
+#include "sun8i-t113s-netcube-nagami.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "NetCube Systems Nagami Keypad Carrier Board";
+       compatible = "netcube,nagami-keypad-carrier", "netcube,nagami",
+                    "allwinner,sun8i-t113s";
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_status_red: led-status-red {
+                       gpios = <&pio 3 16 GPIO_ACTIVE_HIGH>;  /* PD16 */
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_STATUS;
+               };
+
+               led_status_green: led-status-green {
+                       gpios = <&pio 3 22 GPIO_ACTIVE_HIGH>;  /* PD22 */
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       tca8418: keypad@34 {
+               compatible = "ti,tca8418";
+               reg = <0x34>;
+               interrupts-extended = <&pio 5 6 IRQ_TYPE_EDGE_FALLING>;  /* PF6 */
+               linux,keymap = <MATRIX_KEY(0x03, 0x00, KEY_NUMERIC_A)
+                               MATRIX_KEY(0x03, 0x01, KEY_NUMERIC_1)
+                               MATRIX_KEY(0x03, 0x02, KEY_NUMERIC_2)
+                               MATRIX_KEY(0x03, 0x03, KEY_NUMERIC_3)
+                               MATRIX_KEY(0x02, 0x00, KEY_NUMERIC_B)
+                               MATRIX_KEY(0x02, 0x01, KEY_NUMERIC_4)
+                               MATRIX_KEY(0x02, 0x02, KEY_NUMERIC_5)
+                               MATRIX_KEY(0x02, 0x03, KEY_NUMERIC_6)
+                               MATRIX_KEY(0x01, 0x00, KEY_NUMERIC_C)
+                               MATRIX_KEY(0x01, 0x01, KEY_NUMERIC_7)
+                               MATRIX_KEY(0x01, 0x02, KEY_NUMERIC_8)
+                               MATRIX_KEY(0x01, 0x03, KEY_NUMERIC_9)
+                               MATRIX_KEY(0x00, 0x00, KEY_NUMERIC_D)
+                               MATRIX_KEY(0x00, 0x01, KEY_CLEAR)
+                               MATRIX_KEY(0x00, 0x02, KEY_NUMERIC_0)
+                               MATRIX_KEY(0x00, 0x03, KEY_OK)
+               >;
+               keypad,num-rows = <4>;
+               keypad,num-columns = <4>;
+       };
+};
+
+&pio {
+       gpio-line-names = "", "", "", "", // PA
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "", // PB
+                         "", "", "UART3_TX", "UART3_RX",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "eMMC_CLK", "eMMC_CMD", // PC
+                         "eMMC_D2", "eMMC_D1", "eMMC_D0", "eMMC_D3",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "", // PD
+                         "", "", "", "",
+                         "", "USB_SEC_EN", "", "",
+                         "", "", "", "",
+                         "LED_STATUS_RED", "", "", "",
+                         "I2C2_SCL", "I2C2_SDA", "LED_STATUS_GREEN", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "ETH_CRSDV", "ETH_RXD0", "ETH_RXD1", "ETH_TXCK", // PE
+                         "ETH_TXD0", "ETH_TXD1", "ETH_TXEN", "",
+                         "ETH_MDC", "ETH_MDIO", "QWIIC_nINT", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "", // PF
+                         "", "", "KEY_nINT", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "ESP_CLK", "ESP_CMD", "ESP_D0", "ESP_D1", // PG
+                         "ESP_D2", "ESP_D3", "UART1_TXD", "UART1_RXD",
+                         "ESP_nBOOT", "ESP_nRST", "I2C3_SCL", "I2C3_SDA",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "";
+};
+
+&usb_otg {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};