]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ARM: dts: rockchip: Add Relfor Saib board
authorKarthikeyan Krishnasamy <karthikeyan@linumiz.com>
Thu, 12 Sep 2024 14:24:51 +0000 (19:54 +0530)
committerHeiko Stuebner <heiko@sntech.de>
Mon, 14 Oct 2024 09:35:50 +0000 (11:35 +0200)
Saib is an consumer electronics board from Relfor labs
Features:
    - Rockchip RV1109
    - 1GB DDR4
    - 4GB eMMC
    - Realtek RTL8821CS Wi-Fi/BT
    - IR transmitter/receiver
    - RV3028 RTC
    - Switch
    - User leds

Add support for it.

Signed-off-by: Karthikeyan Krishnasamy <karthikeyan@linumiz.com>
Link: https://lore.kernel.org/r/20240912142451.2952633-7-karthikeyan@linumiz.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm/boot/dts/rockchip/Makefile
arch/arm/boot/dts/rockchip/rv1109-relfor-saib.dts [new file with mode: 0644]

index ab4cd9aab7227c135653f9627824f23d12f053ea..716f5540e43840e59ab3a465ca3c3377d949905f 100644 (file)
@@ -2,6 +2,7 @@
 dtb-$(CONFIG_ARCH_ROCKCHIP) += \
        rv1108-elgin-r1.dtb \
        rv1108-evb.dtb \
+       rv1109-relfor-saib.dtb \
        rv1109-sonoff-ihost.dtb \
        rv1126-edgeble-neu2-io.dtb \
        rv1126-sonoff-ihost.dtb \
diff --git a/arch/arm/boot/dts/rockchip/rv1109-relfor-saib.dts b/arch/arm/boot/dts/rockchip/rv1109-relfor-saib.dts
new file mode 100644 (file)
index 0000000..c13829d
--- /dev/null
@@ -0,0 +1,422 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Relfor Labs Pvt. Ltd.
+ */
+
+
+/dts-v1/;
+#include "rv1109.dtsi"
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "Rockchip RV1109 Relfor Saib Board";
+       compatible = "relfor,saib", "rockchip,rv1109";
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               button {
+                       gpios = <&gpio2 RK_PA7 GPIO_ACTIVE_HIGH>;
+                       linux,code = <KEY_DATA>;
+                       label = "GPIO User Switch";
+                       linux,input-type = <1>;
+               };
+       };
+
+       ir_receiver: ir-receiver {
+               compatible = "gpio-ir-receiver";
+               gpios = <&gpio3  RK_PB4 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ir_rx>;
+       };
+
+       ir_transmitter: ir-transmitter {
+               compatible = "pwm-ir-tx";
+               pwms = <&pwm11 0 10000000 1>;
+       };
+
+       led-controller {
+               compatible = "pwm-leds-multicolor";
+
+               multi-led {
+                       color = <LED_COLOR_ID_RGB>;
+                       function = LED_FUNCTION_INDICATOR;
+                       max-brightness = <65535>;
+
+                       led-0 {
+                               active-low;
+                               color = <LED_COLOR_ID_BLUE>;
+                               pwms = <&pwm9 0 50000 0>;
+                       };
+
+                       led-1 {
+                               active-low;
+                               color = <LED_COLOR_ID_GREEN>;
+                               pwms = <&pwm6 0 50000 0>;
+                       };
+
+                       led-2 {
+                               active-low;
+                               color = <LED_COLOR_ID_RED>;
+                               pwms = <&pwm10 0 50000 0>;
+                       };
+               };
+       };
+
+       pwm-leds {
+               compatible = "pwm-leds";
+
+               led-0 {
+                       pwms = <&pwm2 0 50000 0>;
+                       max-brightness = <255>;
+                       linux,default-trigger = "none";
+               };
+
+               led-1 {
+                       pwms = <&pwm8 0 50000 0>;
+                       max-brightness = <0>;
+                       linux,default-trigger = "none";
+               };
+
+               led-2 {
+                       pwms = <&pwm5 0 50000 0>;
+                       max-brightness = <255>;
+                       linux,default-trigger = "none";
+               };
+       };
+
+       sdio_pwrseq: pwrseq-sdio {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rtc0>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable_h>;
+               reset-gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_LOW>;
+       };
+
+       vcc_0v8: regulator-vcc-0v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_0v8";
+               regulator-min-microvolt = <800000>;
+               regulator-max-microvolt = <800000>;
+               regulator-always-on;
+               regulator-boot-on;
+               startup-delay-us = <150>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc_1v2_ddr: regulator-vcc-1v2-ddr {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v2_ddr";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-always-on;
+               regulator-boot-on;
+               startup-delay-us = <75000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc_1v8: regulator-vcc-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+               startup-delay-us = <51000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc1v8_ir: regulator-vcc1v8-ir {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc1v8_ir";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc_2v5_ddr: regulator-vcc-2v5-ddr {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_2v5_ddr";
+               regulator-min-microvolt = <2500000>;
+               regulator-max-microvolt = <2500000>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vcc3v3_sys: regulator-vcc3v3-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+               startup-delay-us = <75000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_sys: regulator-vcc5v0-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd_arm: regulator-vdd-arm {
+               compatible = "pwm-regulator";
+               pwms = <&pwm0 0 5000 1>;
+               regulator-name = "vdd_arm";
+               regulator-min-microvolt = <720000>;
+               regulator-max-microvolt = <1000000>;
+               regulator-settling-time-up-us = <18000>;
+               regulator-always-on;
+               regulator-boot-on;
+               pwm-supply = <&vcc3v3_sys>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vdd_npu_vepu: regulator-vdd-npu-vepu {
+               compatible = "pwm-regulator";
+               pwms = <&pwm1 0 5000 1>;
+               regulator-name = "vdd_npu_vepu";
+               regulator-min-microvolt = <650000>;
+               regulator-max-microvolt = <950000>;
+               regulator-settling-time-up-us = <18000>;
+               regulator-always-on;
+               regulator-boot-on;
+               pwm-supply = <&vcc3v3_sys>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       thermal_sensor1: thermal-sensor1 {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&saradc 1>;
+               io-channel-names = "sensor-channel";
+               temperature-lookup-table = <(-40000) 826
+                                            85000 609>;
+       };
+
+       thermal_sensor2: thermal-sensor2 {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&saradc 2>;
+               io-channel-names = "sensor-channel";
+               temperature-lookup-table = <(-40000) 826
+                                            85000 609>;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&emmc {
+       bus-width = <8>;
+       non-removable;
+       pinctrl-0 = <&emmc_bus8 &emmc_cmd &emmc_clk>;
+       pinctrl-names = "default";
+       rockchip,default-sample-phase = <90>;
+       vmmc-supply = <&vcc3v3_sys>;
+       status = "okay";
+};
+
+&i2c3 {
+       pinctrl-0 = <&i2c3m2_xfer>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       rtc0: rtc@52 {
+               compatible = "microcrystal,rv3028";
+               reg = <0x52>;
+               #clock-cells = <0>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&rtc_int>;
+               pinctrl-names = "default";
+       };
+};
+
+&i2s0 {
+       /delete-property/ pinctrl-0;
+       rockchip,trcm-sync-rx-only;
+       pinctrl-0 =  <&i2s0m0_sclk_rx>,
+                    <&i2s0m0_lrck_rx>,
+                    <&i2s0m0_sdi0>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pinctrl {
+       bluetooth-pins {
+               bt_reset: bt-reset {
+                       rockchip,pins =
+                       <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               bt_wake_dev: bt-wake-dev {
+                       rockchip,pins =
+                       <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               bt_wake_host: bt-wake-host {
+                       rockchip,pins =
+                       <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       buttons {
+               switch: switch {
+                       rockchip,pins = <2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       ir {
+               ir_rx: ir-rx {
+                       rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pwm {
+               pwm0m0_pins_pull_up: pwm0m0-pins-pull-up {
+                       rockchip,pins =
+                       /* pwm0_pin_m0 */
+                       <0 RK_PB6 3 &pcfg_pull_up>;
+               };
+               pwm1m0_pins_pull_up: pwm1m0-pins-pull-up {
+                       rockchip,pins =
+                       /* pwm1_pin_m0 */
+                       <0 RK_PB7 3 &pcfg_pull_up>;
+               };
+       };
+
+       rtc {
+               rtc_int: rtc-int {
+                       rockchip,pins = <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio0-supply = <&vcc3v3_sys>;
+       pmuio1-supply = <&vcc3v3_sys>;
+       vccio4-supply = <&vcc3v3_sys>;
+       vccio5-supply = <&vcc3v3_sys>;
+       vccio6-supply = <&vcc3v3_sys>;
+       vccio7-supply = <&vcc3v3_sys>;
+       status = "okay";
+};
+
+&pwm0 {
+       /delete-property/ pinctrl-0;
+       pinctrl-0 = <&pwm0m0_pins_pull_up>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm1 {
+       /delete-property/ pinctrl-0;
+       pinctrl-0 = <&pwm1m0_pins_pull_up>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm2 {
+       /delete-property/ pinctrl-0;
+       pinctrl-0 = <&pwm2m1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm5 {
+       pinctrl-0 = <&pwm5m0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm6 {
+       pinctrl-0 = <&pwm6m0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm8 {
+       pinctrl-0 = <&pwm8m1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm9 {
+       pinctrl-0 = <&pwm9m1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm10 {
+       pinctrl-0 = <&pwm10m1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm11 {
+       /delete-property/ pinctrl-0;
+       pinctrl-0 = <&pwm11m1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdio {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       max-frequency = <100000000>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       no-mmc;
+       no-sd;
+       non-removable;
+       pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_bus4>;
+       pinctrl-names = "default";
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sys>;
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-0 = <&uart0_xfer &uart0_ctsn &uart0_rtsn>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       bluetooth {
+               compatible = "realtek,rtl8822cs-bt";
+               device-wake-gpios = <&gpio1 RK_PC5 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
+               host-wake-gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&bt_reset>, <&bt_wake_dev>, <&bt_wake_host>;
+               pinctrl-names = "default";
+       };
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m1_xfer>;
+       pinctrl-names = "default";
+       status = "okay";
+};