// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) /* * Copyright (C) 2024 Ryan Walklin . * Copyright (C) 2024 Chris Morgan . */ #include "sun50i-h700-anbernic-rg35xx-plus.dts" / { model = "Anbernic RG35XX H"; compatible = "anbernic,rg35xx-h", "allwinner,sun50i-h700"; adc-joystick { compatible = "adc-joystick"; io-channels = <&adc_mux 0>, <&adc_mux 1>, <&adc_mux 2>, <&adc_mux 3>; pinctrl-0 = <&joy_mux_pin>; pinctrl-names = "default"; poll-interval = <60>; #address-cells = <1>; #size-cells = <0>; axis@0 { reg = <0>; abs-flat = <32>; abs-fuzz = <32>; abs-range = <4096 0>; linux,code = ; }; axis@1 { reg = <1>; abs-flat = <32>; abs-fuzz = <32>; abs-range = <0 4096>; linux,code = ; }; axis@2 { reg = <2>; abs-flat = <32>; abs-fuzz = <32>; abs-range = <0 4096>; linux,code = ; }; axis@3 { reg = <3>; abs-flat = <32>; abs-fuzz = <32>; abs-range = <4096 0>; linux,code = ; }; }; adc_mux: adc-mux { compatible = "io-channel-mux"; channels = "left_x", "left_y", "right_x", "right_y"; #io-channel-cells = <1>; io-channels = <&gpadc 0>; io-channel-names = "parent"; mux-controls = <&gpio_mux>; settle-time-us = <100>; }; gpio_mux: mux-controller { compatible = "gpio-mux"; mux-gpios = <&pio 8 1 GPIO_ACTIVE_LOW>, <&pio 8 2 GPIO_ACTIVE_LOW>; #mux-control-cells = <0>; }; }; &gpadc { #address-cells = <1>; #size-cells = <0>; status = "okay"; channel@0 { reg = <0>; }; }; &gpio_keys_gamepad { button-thumbl { label = "GPIO Thumb Left"; gpios = <&pio 4 8 GPIO_ACTIVE_LOW>; /* PE8 */ linux,input-type = ; linux,code = ; }; button-thumbr { label = "GPIO Thumb Right"; gpios = <&pio 4 9 GPIO_ACTIVE_LOW>; /* PE9 */ linux,input-type = ; linux,code = ; }; }; &ehci1 { status = "okay"; }; &ohci1 { status = "okay"; }; &pio { joy_mux_pin: joy-mux-pin { pins = "PI0"; function = "gpio_out"; }; };