Last active
June 28, 2022 22:40
-
-
Save apritzel/dc7d26418541a1a4cd3106b13edb9a0c to your computer and use it in GitHub Desktop.
Mainline devicetree for the XIEGU Tech X6100 HF+6m Transceiver, for Linux >=5.13 (mind the r_intc binding change!)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /dts-v1/; | |
| #include "sun8i-a33.dtsi" | |
| #include <dt-bindings/gpio/gpio.h> | |
| #include <dt-bindings/input/input.h> | |
| / { | |
| model = "XIEGU Tech X6100 HF+6m Transceiver"; | |
| compatible = "xiegu,x6100", "allwinner,sun8i-r16"; | |
| aliases { | |
| serial0 = "/soc/serial@1c28000"; | |
| }; | |
| chosen { | |
| stdout-path = "serial0:115200n8"; | |
| }; | |
| reserved-memory { | |
| #address-cells = <1>; | |
| #size-cells = <1>; | |
| ranges; | |
| mali_cma: cma@4a000000 { | |
| compatible = "shared-dma-pool"; | |
| size = <0x8000000>; | |
| alloc-ranges = <0x4a000000 0x8000000>; | |
| reusable; | |
| linux,cma-default; | |
| }; | |
| }; | |
| mmc1_pwrseq: mmc1-pwrseq { | |
| compatible = "mmc-pwrseq-simple"; | |
| reset-gpios = <&pio 2 0 GPIO_ACTIVE_LOW>; /* PC0 (?) */ | |
| }; | |
| reg_usb0_vbus: usb0_vbus { | |
| compatible = "regulator-fixed"; | |
| regulator-name = "usb0_vbus"; | |
| regulator-min-microvolt = <5000000>; | |
| regulator-max-microvolt = <5000000>; | |
| }; | |
| reg_vcc3v3: vcc3v3 { | |
| compatible = "regulator-fixed"; | |
| regulator-name = "vcc3v3"; | |
| regulator-min-microvolt = <3300000>; | |
| regulator-max-microvolt = <3300000>; | |
| }; | |
| reg_vcc5v0: vcc5v0 { | |
| compatible = "regulator-fixed"; | |
| regulator-name = "vcc5v0"; | |
| regulator-min-microvolt = <5000000>; | |
| regulator-max-microvolt = <5000000>; | |
| }; | |
| backlight: backlight { | |
| compatible = "pwm-backlight"; | |
| power-supply = <®_vcc5v0>; | |
| pwms = <&pwm 0x00 0xc350 0x00>; | |
| brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; | |
| default-brightness-level = <5>; | |
| enable-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ | |
| }; | |
| spi { | |
| compatible = "spi-gpio"; | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| sck-gpios = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */ | |
| mosi-gpios = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */ | |
| cs-gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ | |
| num-chipselects = <1>; | |
| status = "okay"; | |
| panel@0 { | |
| compatible = "jinglitai,jlt4013a"; | |
| reg = <0>; | |
| power-supply = <®_vcc3v3>; | |
| reset-gpios = <&r_pio 0 11 GPIO_ACTIVE_LOW>; /* PL11 */ | |
| dcx-gpios = <&r_pio 0 10 GPIO_ACTIVE_LOW>; /* PL10 */ | |
| backlight = <&backlight>; | |
| spi-max-frequency = <100000>; | |
| port { | |
| panel_input: endpoint { | |
| remote-endpoint = <&tcon0_out_panel>; | |
| }; | |
| }; | |
| }; | |
| }; | |
| matrix_keypad { | |
| compatible = "gpio-matrix-keypad"; | |
| row-gpios = <&pio 6 10 0x17>, <&pio 6 7 0x17>, /* PG6-PG10 */ | |
| <&pio 6 6 0x17>, <&pio 6 8 0x17>, | |
| <&pio 6 9 0x17>; | |
| col-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>, /* PE11-PE17 */ | |
| <&pio 4 17 GPIO_ACTIVE_LOW>, | |
| <&pio 4 11 GPIO_ACTIVE_LOW>, | |
| <&pio 4 14 GPIO_ACTIVE_LOW>, | |
| <&pio 4 12 GPIO_ACTIVE_LOW>, | |
| <&pio 4 13 GPIO_ACTIVE_LOW>; | |
| linux,keymap = <MATRIX_KEY(0, 0, BTN_TRIGGER_HAPPY1) | |
| MATRIX_KEY(0, 1, BTN_TRIGGER_HAPPY2) | |
| MATRIX_KEY(0, 2, BTN_TRIGGER_HAPPY3) | |
| MATRIX_KEY(0, 3, BTN_TRIGGER_HAPPY4) | |
| MATRIX_KEY(0, 4, BTN_TRIGGER_HAPPY5) | |
| MATRIX_KEY(0, 5, BTN_TRIGGER_HAPPY6) | |
| MATRIX_KEY(1, 0, BTN_TRIGGER_HAPPY7) | |
| MATRIX_KEY(1, 1, BTN_TRIGGER_HAPPY8) | |
| MATRIX_KEY(1, 2, BTN_TRIGGER_HAPPY9) | |
| MATRIX_KEY(1, 3, BTN_TRIGGER_HAPPY10) | |
| MATRIX_KEY(1, 4, BTN_TRIGGER_HAPPY11) | |
| MATRIX_KEY(1, 5, BTN_TRIGGER_HAPPY12) | |
| MATRIX_KEY(2, 0, BTN_TRIGGER_HAPPY13) | |
| MATRIX_KEY(2, 1, BTN_TRIGGER_HAPPY14) | |
| MATRIX_KEY(2, 2, BTN_TRIGGER_HAPPY15) | |
| MATRIX_KEY(2, 3, BTN_TRIGGER_HAPPY16) | |
| MATRIX_KEY(2, 4, BTN_TRIGGER_HAPPY17) | |
| MATRIX_KEY(2, 5, BTN_TRIGGER_HAPPY18) | |
| MATRIX_KEY(3, 0, BTN_TRIGGER_HAPPY19) | |
| MATRIX_KEY(3, 1, BTN_TRIGGER_HAPPY20) | |
| MATRIX_KEY(3, 2, BTN_TRIGGER_HAPPY21) | |
| MATRIX_KEY(3, 3, BTN_TRIGGER_HAPPY22) | |
| MATRIX_KEY(3, 4, BTN_TRIGGER_HAPPY23) | |
| MATRIX_KEY(3, 5, BTN_TRIGGER_HAPPY24) | |
| MATRIX_KEY(4, 0, BTN_TRIGGER_HAPPY25) | |
| MATRIX_KEY(4, 1, BTN_TRIGGER_HAPPY26) | |
| MATRIX_KEY(4, 2, BTN_TRIGGER_HAPPY27) | |
| MATRIX_KEY(4, 3, BTN_TRIGGER_HAPPY28) | |
| MATRIX_KEY(4, 4, BTN_TRIGGER_HAPPY29) | |
| MATRIX_KEY(4, 5, BTN_TRIGGER_HAPPY30)>; | |
| gpio-activelow; | |
| wakeup-source; | |
| linux,no-autorepeat; | |
| debounce-delay-ms = <25>; | |
| col-scan-delay-us = <1>; | |
| drive-inactive-cols; | |
| }; | |
| rotary0 { | |
| compatible = "rotary-encoder"; | |
| gpios = <&pio 1 3 GPIO_ACTIVE_LOW>, /* PB3 */ | |
| <&pio 1 2 GPIO_ACTIVE_LOW>; /* PB2 */ | |
| linux,axis = <0>; | |
| rotary-encoder,encoding = "gray"; | |
| rotary-encoder,relative-axis; | |
| }; | |
| rotary1 { | |
| compatible = "rotary-encoder"; | |
| gpios = <&pio 1 6 GPIO_ACTIVE_LOW>, <&pio 1 4 GPIO_ACTIVE_LOW>; | |
| linux,axis = <1>; | |
| rotary-encoder,encoding = "gray"; | |
| rotary-encoder,relative-axis; | |
| }; | |
| rotary3 { | |
| compatible = "rotary-encoder"; | |
| gpios = <&pio 1 7 GPIO_ACTIVE_LOW>, <&pio 1 5 GPIO_ACTIVE_LOW>; | |
| linux,axis = <2>; | |
| rotary-encoder,encoding = "gray"; | |
| rotary-encoder,relative-axis; | |
| }; | |
| }; | |
| &codec { | |
| status = "okay"; | |
| }; | |
| &dai { | |
| status = "okay"; | |
| }; | |
| &ehci0 { | |
| status = "okay"; | |
| }; | |
| &i2c0 { | |
| status = "okay"; | |
| }; | |
| &i2c1 { | |
| status = "okay"; | |
| rtc@51 { | |
| compatible = "nxp,pcf8563"; | |
| reg = <0x51>; | |
| interrupt-parent = <&pio>; | |
| interrupts = <6 13 0x02>; /* PG13 */ | |
| }; | |
| }; | |
| &mali { | |
| memory-region = <&mali_cma>; | |
| operating-points-v2 = <0x23>; | |
| }; | |
| &mmc0 { | |
| status = "okay"; | |
| vmmc-supply = <®_dcdc1>; | |
| cd-gpios = <&pio 4 3 GPIO_ACTIVE_LOW>; /* PE3 */ | |
| bus-width = <4>; | |
| }; | |
| &mmc1 { | |
| status = "okay"; | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&mmc1_pg_pins>; | |
| vmmc-supply = <®_aldo1>; | |
| mmc-pwrseq = <&mmc1_pwrseq>; | |
| bus-width = <4>; | |
| non-removable; | |
| }; | |
| &mmc2 { | |
| status = "okay"; | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&mmc2_8bit_pins>; | |
| vmmc-supply = <®_dcdc1>; | |
| bus-width = <8>; | |
| non-removable; | |
| cap-mmc-hw-reset; | |
| }; | |
| &ohci0 { | |
| status = "okay"; | |
| }; | |
| &pio { | |
| vcc-pb-supply = <®_vcc3v3>; | |
| vcc-pc-supply = <®_vcc3v3>; | |
| vcc-pd-supply = <®_vcc3v3>; | |
| vcc-pe-supply = <®_vcc3v3>; | |
| vcc-pf-supply = <®_vcc3v3>; | |
| vcc-pg-supply = <®_vcc3v3>; | |
| vcc-ph-supply = <®_vcc3v3>; | |
| vcc-pl-supply = <®_vcc3v3>; | |
| uart3_pins: uart3-pins { | |
| pins = "PH6", "PH7"; | |
| function = "uart3"; | |
| }; | |
| }; | |
| &pwm { | |
| status = "okay"; | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&pwm0_pin>; | |
| }; | |
| &r_rsb { | |
| status = "okay"; | |
| axp22x: pmic@3a3 { | |
| compatible = "x-powers,axp223"; | |
| reg = <0x3a3>; | |
| interrupt-parent = <&r_intc>; | |
| /* for kernels < 5.13, and U-Boot: interrupts = <0 IRQ_TYPE_LEVEL_LOW>; */ | |
| interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>; | |
| eldoin-supply = <®_dcdc1>; | |
| interrupt-controller; | |
| #interrupt-cells = <1>; | |
| }; | |
| }; | |
| #include "axp223.dtsi" | |
| &ac_power_supply { | |
| status = "okay"; | |
| }; | |
| &battery_power_supply { | |
| status = "okay"; | |
| }; | |
| ®_dcdc1 { | |
| regulator-name = "vcc-3v0"; | |
| regulator-always-on; | |
| regulator-min-microvolt = <3000000>; | |
| regulator-max-microvolt = <3000000>; | |
| }; | |
| ®_dcdc2 { | |
| regulator-name = "vdd-sys"; | |
| regulator-always-on; | |
| regulator-min-microvolt = <900000>; | |
| regulator-max-microvolt = <1400000>; | |
| }; | |
| ®_dcdc3 { | |
| regulator-name = "vdd-cpu"; | |
| regulator-always-on; | |
| regulator-min-microvolt = <900000>; | |
| regulator-max-microvolt = <1400000>; | |
| }; | |
| ®_dcdc5 { | |
| regulator-name = "vcc-dram"; | |
| regulator-always-on; | |
| regulator-min-microvolt = <1500000>; | |
| regulator-max-microvolt = <1500000>; | |
| }; | |
| ®_dc1sw { | |
| regulator-name = "vcc-lcd"; | |
| }; | |
| ®_dc5ldo { | |
| regulator-name = "vdd-cpus"; | |
| regulator-always-on; | |
| regulator-min-microvolt = <900000>; | |
| regulator-max-microvolt = <1400000>; | |
| }; | |
| ®_aldo1 { | |
| regulator-name = "vcc-io"; | |
| regulator-always-on; | |
| regulator-min-microvolt = <3000000>; | |
| regulator-max-microvolt = <3000000>; | |
| }; | |
| ®_aldo2 { | |
| regulator-name = "vdd-dll"; | |
| regulator-always-on; | |
| regulator-min-microvolt = <2350000>; | |
| regulator-max-microvolt = <2350000>; | |
| }; | |
| ®_aldo3 { | |
| regulator-name = "vcc-pll-avcc"; | |
| regulator-always-on; | |
| regulator-min-microvolt = <2700000>; | |
| regulator-max-microvolt = <3300000>; | |
| }; | |
| ®_dldo1 { | |
| regulator-name = "vcc-wifi0"; | |
| regulator-always-on; | |
| regulator-min-microvolt = <3300000>; | |
| regulator-max-microvolt = <3300000>; | |
| }; | |
| ®_dldo2 { | |
| regulator-name = "vcc-wifi1"; | |
| regulator-always-on; | |
| regulator-min-microvolt = <3300000>; | |
| regulator-max-microvolt = <3300000>; | |
| }; | |
| ®_dldo3 { | |
| regulator-name = "vcc-3v0-csi"; | |
| regulator-min-microvolt = <3000000>; | |
| regulator-max-microvolt = <3000000>; | |
| }; | |
| ®_eldo1 { | |
| regulator-name = "vcc-1v2-hsic"; | |
| regulator-min-microvolt = <1200000>; | |
| regulator-max-microvolt = <1200000>; | |
| }; | |
| ®_eldo2 { | |
| regulator-name = "vcc-dsp"; | |
| regulator-min-microvolt = <3000000>; | |
| regulator-max-microvolt = <3000000>; | |
| }; | |
| ®_eldo3 { | |
| regulator-name = "eldo3"; | |
| regulator-min-microvolt = <3000000>; | |
| regulator-max-microvolt = <3000000>; | |
| }; | |
| ®_rtc_ldo { | |
| regulator-always-on; | |
| regulator-min-microvolt = <3000000>; | |
| regulator-max-microvolt = <3000000>; | |
| regulator-name = "rtc_ldo"; | |
| }; | |
| ®_drivevbus { | |
| regulator-name = "usb0-vbus"; | |
| status = "okay"; | |
| }; | |
| &r_uart { | |
| status = "okay"; | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&r_uart_pins_a>; | |
| }; | |
| &sound { | |
| simple-audio-card,routing = "Left DAC", "AIF1 Slot 0 Left", | |
| "Right DAC", "AIF1 Slot 0 Right", | |
| "AIF1 Slot 0 Left ADC", "Left ADC", | |
| "AIF1 Slot 0 Right ADC", "Right ADC"; | |
| status = "okay"; | |
| }; | |
| &tcon0 { | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&lcd_rgb666_pins>; | |
| status = "okay"; | |
| }; | |
| &tcon0_out { | |
| tcon0_out_panel: endpoint@0 { | |
| reg = <0>; | |
| remote-endpoint = <&panel_input>; | |
| }; | |
| }; | |
| &uart0 { | |
| status = "okay"; | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&uart0_pb_pins>; | |
| }; | |
| &uart3 { | |
| status = "okay"; | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&uart3_pins>; | |
| }; | |
| &usb_otg { | |
| dr_mode = "host"; | |
| status = "okay"; | |
| }; | |
| &usbphy { | |
| status = "okay"; | |
| usb0_id_det-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */ | |
| usb0_vbus_power-supply = <0x16>; | |
| usb0_vbus-supply = <®_usb0_vbus>; | |
| usb1_vbus-supply = <®_vcc5v0>; | |
| }; | |
| &usb_power_supply { | |
| status = "okay"; | |
| }; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment