1c484cf93SQuentin Schulz// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c484cf93SQuentin Schulz/* 3c484cf93SQuentin Schulz * Copyright (c) 2022 Theobroma Systems Design und Consulting GmbH 4c484cf93SQuentin Schulz */ 5c484cf93SQuentin Schulz 6c484cf93SQuentin Schulz/dts-v1/; 7c484cf93SQuentin Schulz#include "px30-ringneck.dtsi" 8c484cf93SQuentin Schulz#include <dt-bindings/input/input.h> 9c484cf93SQuentin Schulz#include <dt-bindings/leds/common.h> 10c484cf93SQuentin Schulz 11c484cf93SQuentin Schulz/ { 12c484cf93SQuentin Schulz model = "Theobroma Systems PX30-uQ7 SoM on Haikou devkit"; 13c484cf93SQuentin Schulz compatible = "tsd,px30-ringneck-haikou", "rockchip,px30"; 14c484cf93SQuentin Schulz 15c484cf93SQuentin Schulz aliases { 16c484cf93SQuentin Schulz mmc2 = &sdmmc; 17c484cf93SQuentin Schulz }; 18c484cf93SQuentin Schulz 19c484cf93SQuentin Schulz chosen { 20c484cf93SQuentin Schulz stdout-path = "serial0:115200n8"; 21c484cf93SQuentin Schulz }; 22c484cf93SQuentin Schulz 23c484cf93SQuentin Schulz gpio-keys { 24c484cf93SQuentin Schulz compatible = "gpio-keys"; 25c484cf93SQuentin Schulz pinctrl-0 = <&haikou_keys_pin>; 26c484cf93SQuentin Schulz pinctrl-names = "default"; 27c484cf93SQuentin Schulz 28c484cf93SQuentin Schulz button-batlow-n { 29c484cf93SQuentin Schulz label = "BATLOW#"; 30c484cf93SQuentin Schulz linux,code = <KEY_BATTERY>; 31c484cf93SQuentin Schulz gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>; 32c484cf93SQuentin Schulz }; 33c484cf93SQuentin Schulz 34c484cf93SQuentin Schulz button-slp-btn-n { 35c484cf93SQuentin Schulz label = "SLP_BTN#"; 36c484cf93SQuentin Schulz linux,code = <KEY_SLEEP>; 37c484cf93SQuentin Schulz gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>; 38c484cf93SQuentin Schulz }; 39c484cf93SQuentin Schulz 40c484cf93SQuentin Schulz button-wake-n { 41c484cf93SQuentin Schulz label = "WAKE#"; 42c484cf93SQuentin Schulz linux,code = <KEY_WAKEUP>; 43c484cf93SQuentin Schulz gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>; 44c484cf93SQuentin Schulz wakeup-source; 45c484cf93SQuentin Schulz }; 46c484cf93SQuentin Schulz 47c484cf93SQuentin Schulz switch-lid-btn-n { 48c484cf93SQuentin Schulz label = "LID_BTN#"; 49c484cf93SQuentin Schulz linux,code = <SW_LID>; 50c484cf93SQuentin Schulz linux,input-type = <EV_SW>; 51c484cf93SQuentin Schulz gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>; 52c484cf93SQuentin Schulz }; 53c484cf93SQuentin Schulz }; 54c484cf93SQuentin Schulz 55c484cf93SQuentin Schulz leds { 56c484cf93SQuentin Schulz pinctrl-0 = <&module_led_pin>, <&sd_card_led_pin>; 57c484cf93SQuentin Schulz 58c484cf93SQuentin Schulz sd_card_led: led-1 { 59c484cf93SQuentin Schulz gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; 60c484cf93SQuentin Schulz linux,default-trigger = "mmc2"; 61c484cf93SQuentin Schulz function = LED_FUNCTION_SD; 62c484cf93SQuentin Schulz color = <LED_COLOR_ID_BLUE>; 63c484cf93SQuentin Schulz }; 64c484cf93SQuentin Schulz }; 65c484cf93SQuentin Schulz 66c484cf93SQuentin Schulz i2s0-sound { 67c484cf93SQuentin Schulz compatible = "simple-audio-card"; 68c484cf93SQuentin Schulz simple-audio-card,format = "i2s"; 69c484cf93SQuentin Schulz simple-audio-card,name = "Haikou,I2S-codec"; 70c484cf93SQuentin Schulz simple-audio-card,mclk-fs = <512>; 7184fa1865SErmin Sunj simple-audio-card,frame-master = <&sgtl5000_codec>; 7284fa1865SErmin Sunj simple-audio-card,bitclock-master = <&sgtl5000_codec>; 73c484cf93SQuentin Schulz 7484fa1865SErmin Sunj sgtl5000_codec: simple-audio-card,codec { 75c484cf93SQuentin Schulz sound-dai = <&sgtl5000>; 761e585cd0SJakob Unterwurzacher // Prevent the dai subsystem from overwriting the clock 771e585cd0SJakob Unterwurzacher // frequency. We are using a fixed-frequency oscillator. 781e585cd0SJakob Unterwurzacher system-clock-fixed; 79c484cf93SQuentin Schulz }; 80c484cf93SQuentin Schulz 81c484cf93SQuentin Schulz simple-audio-card,cpu { 82c484cf93SQuentin Schulz sound-dai = <&i2s0_8ch>; 83c484cf93SQuentin Schulz }; 84c484cf93SQuentin Schulz }; 85c484cf93SQuentin Schulz 86c484cf93SQuentin Schulz sgtl5000_clk: sgtl5000-oscillator { 87c484cf93SQuentin Schulz compatible = "fixed-clock"; 88c484cf93SQuentin Schulz #clock-cells = <0>; 89c484cf93SQuentin Schulz clock-frequency = <24576000>; 90c484cf93SQuentin Schulz }; 91c484cf93SQuentin Schulz 92c484cf93SQuentin Schulz dc_12v: dc-12v-regulator { 93c484cf93SQuentin Schulz compatible = "regulator-fixed"; 94c484cf93SQuentin Schulz regulator-name = "dc_12v"; 95c484cf93SQuentin Schulz regulator-always-on; 96c484cf93SQuentin Schulz regulator-boot-on; 97c484cf93SQuentin Schulz regulator-min-microvolt = <12000000>; 98c484cf93SQuentin Schulz regulator-max-microvolt = <12000000>; 99c484cf93SQuentin Schulz }; 100c484cf93SQuentin Schulz 101c484cf93SQuentin Schulz vcc3v3_baseboard: vcc3v3-baseboard-regulator { 102c484cf93SQuentin Schulz compatible = "regulator-fixed"; 103c484cf93SQuentin Schulz regulator-name = "vcc3v3_baseboard"; 104c484cf93SQuentin Schulz regulator-always-on; 105c484cf93SQuentin Schulz regulator-boot-on; 106c484cf93SQuentin Schulz regulator-min-microvolt = <3300000>; 107c484cf93SQuentin Schulz regulator-max-microvolt = <3300000>; 108c484cf93SQuentin Schulz vin-supply = <&dc_12v>; 109c484cf93SQuentin Schulz }; 110c484cf93SQuentin Schulz 111c484cf93SQuentin Schulz vcc5v0_baseboard: vcc5v0-baseboard-regulator { 112c484cf93SQuentin Schulz compatible = "regulator-fixed"; 113c484cf93SQuentin Schulz regulator-name = "vcc5v0_baseboard"; 114c484cf93SQuentin Schulz regulator-always-on; 115c484cf93SQuentin Schulz regulator-boot-on; 116c484cf93SQuentin Schulz regulator-min-microvolt = <5000000>; 117c484cf93SQuentin Schulz regulator-max-microvolt = <5000000>; 118c484cf93SQuentin Schulz vin-supply = <&dc_12v>; 119c484cf93SQuentin Schulz }; 120c484cf93SQuentin Schulz 121c484cf93SQuentin Schulz vdda_codec: vdda-codec-regulator { 122c484cf93SQuentin Schulz compatible = "regulator-fixed"; 123c484cf93SQuentin Schulz regulator-name = "vdda_codec"; 124c484cf93SQuentin Schulz regulator-boot-on; 125c484cf93SQuentin Schulz regulator-min-microvolt = <3300000>; 126c484cf93SQuentin Schulz regulator-max-microvolt = <3300000>; 127c484cf93SQuentin Schulz vin-supply = <&vcc5v0_baseboard>; 128c484cf93SQuentin Schulz }; 129c484cf93SQuentin Schulz 130c484cf93SQuentin Schulz vddd_codec: vddd-codec-regulator { 131c484cf93SQuentin Schulz compatible = "regulator-fixed"; 132c484cf93SQuentin Schulz regulator-name = "vddd_codec"; 133c484cf93SQuentin Schulz regulator-boot-on; 134c484cf93SQuentin Schulz regulator-min-microvolt = <1600000>; 135c484cf93SQuentin Schulz regulator-max-microvolt = <1600000>; 136c484cf93SQuentin Schulz vin-supply = <&vcc5v0_baseboard>; 137c484cf93SQuentin Schulz }; 138c484cf93SQuentin Schulz}; 139c484cf93SQuentin Schulz 140c484cf93SQuentin Schulz&i2c2 { 141c484cf93SQuentin Schulz status = "okay"; 142c484cf93SQuentin Schulz clock-frequency = <400000>; 143c484cf93SQuentin Schulz 144c484cf93SQuentin Schulz sgtl5000: codec@a { 145c484cf93SQuentin Schulz compatible = "fsl,sgtl5000"; 146c484cf93SQuentin Schulz reg = <0x0a>; 147c484cf93SQuentin Schulz clocks = <&sgtl5000_clk>; 148c484cf93SQuentin Schulz #sound-dai-cells = <0>; 149c484cf93SQuentin Schulz VDDA-supply = <&vdda_codec>; 150c484cf93SQuentin Schulz VDDIO-supply = <&vcc3v3_baseboard>; 151c484cf93SQuentin Schulz VDDD-supply = <&vddd_codec>; 152c484cf93SQuentin Schulz }; 153c484cf93SQuentin Schulz}; 154c484cf93SQuentin Schulz 155c484cf93SQuentin Schulz&i2c3 { 156c484cf93SQuentin Schulz eeprom@50 { 157c484cf93SQuentin Schulz reg = <0x50>; 158c484cf93SQuentin Schulz compatible = "atmel,24c01"; 159c484cf93SQuentin Schulz pagesize = <8>; 160c484cf93SQuentin Schulz size = <128>; 161c484cf93SQuentin Schulz vcc-supply = <&vcc3v3_baseboard>; 162c484cf93SQuentin Schulz }; 163c484cf93SQuentin Schulz}; 164c484cf93SQuentin Schulz 165c484cf93SQuentin Schulz&i2s0_8ch { 166c484cf93SQuentin Schulz status = "okay"; 167c484cf93SQuentin Schulz}; 168c484cf93SQuentin Schulz 169c484cf93SQuentin Schulz&gmac { 170c484cf93SQuentin Schulz status = "okay"; 171c484cf93SQuentin Schulz}; 172c484cf93SQuentin Schulz 173c484cf93SQuentin Schulz&pinctrl { 174c484cf93SQuentin Schulz haikou { 175c484cf93SQuentin Schulz haikou_keys_pin: haikou-keys-pin { 176c484cf93SQuentin Schulz rockchip,pins = 177c484cf93SQuentin Schulz /* WAKE# */ 178c484cf93SQuentin Schulz <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>, 179c484cf93SQuentin Schulz /* SLP_BTN# */ 180c484cf93SQuentin Schulz <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>, 181c484cf93SQuentin Schulz /* LID_BTN */ 182c484cf93SQuentin Schulz <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>, 183c484cf93SQuentin Schulz /* BATLOW# */ 184c484cf93SQuentin Schulz <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>, 185c484cf93SQuentin Schulz /* BIOS_DISABLE# */ 186c484cf93SQuentin Schulz <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>; 187c484cf93SQuentin Schulz }; 188c484cf93SQuentin Schulz }; 189c484cf93SQuentin Schulz 190c484cf93SQuentin Schulz leds { 191c484cf93SQuentin Schulz sd_card_led_pin: sd-card-led-pin { 192c484cf93SQuentin Schulz rockchip,pins = 193c484cf93SQuentin Schulz <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 194c484cf93SQuentin Schulz }; 195c484cf93SQuentin Schulz }; 196c484cf93SQuentin Schulz}; 197c484cf93SQuentin Schulz 198c484cf93SQuentin Schulz&pwm0 { 199c484cf93SQuentin Schulz status = "okay"; 200c484cf93SQuentin Schulz}; 201c484cf93SQuentin Schulz 202c484cf93SQuentin Schulz&sdmmc { 203c484cf93SQuentin Schulz sd-uhs-sdr12; 204c484cf93SQuentin Schulz sd-uhs-sdr25; 205c484cf93SQuentin Schulz sd-uhs-sdr50; 206c484cf93SQuentin Schulz bus-width = <4>; 207c484cf93SQuentin Schulz cap-mmc-highspeed; 208c484cf93SQuentin Schulz cap-sd-highspeed; 209c484cf93SQuentin Schulz cd-gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>; 210c484cf93SQuentin Schulz disable-wp; 211c484cf93SQuentin Schulz vmmc-supply = <&vcc3v3_baseboard>; 212c484cf93SQuentin Schulz status = "okay"; 213c484cf93SQuentin Schulz}; 214c484cf93SQuentin Schulz 215c484cf93SQuentin Schulz&spi1 { 216c484cf93SQuentin Schulz status = "okay"; 217c484cf93SQuentin Schulz}; 218c484cf93SQuentin Schulz 219c484cf93SQuentin Schulz&u2phy_otg { 220c484cf93SQuentin Schulz status = "okay"; 221c484cf93SQuentin Schulz}; 222c484cf93SQuentin Schulz 223c484cf93SQuentin Schulz&uart0 { 224*db59b24bSQuentin Schulz pinctrl-names = "default"; 225*db59b24bSQuentin Schulz pinctrl-0 = <&uart0_xfer>; 226c484cf93SQuentin Schulz status = "okay"; 227c484cf93SQuentin Schulz}; 228c484cf93SQuentin Schulz 229c484cf93SQuentin Schulz&uart5 { 230c484cf93SQuentin Schulz pinctrl-0 = <&uart5_xfer>; 23175cc3357SFarouk Bouabid rts-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; 232c484cf93SQuentin Schulz status = "okay"; 233c484cf93SQuentin Schulz}; 234c484cf93SQuentin Schulz 235c484cf93SQuentin Schulz&usb20_otg { 236c484cf93SQuentin Schulz status = "okay"; 237c484cf93SQuentin Schulz}; 238