1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 2 /* 3 * Copyright (c) 2019 BayLibre, SAS 3 * Copyright (c) 2019 BayLibre, SAS 4 * Author: Neil Armstrong <narmstrong@baylibre. 4 * Author: Neil Armstrong <narmstrong@baylibre.com> 5 */ 5 */ 6 6 7 #include "meson-g12b-odroid.dtsi" 7 #include "meson-g12b-odroid.dtsi" 8 8 9 / { 9 / { 10 aliases { 10 aliases { 11 rtc0 = &rtc; 11 rtc0 = &rtc; 12 }; 12 }; 13 13 14 dio2133: audio-amplifier-0 { 14 dio2133: audio-amplifier-0 { 15 compatible = "simple-audio-amp 15 compatible = "simple-audio-amplifier"; 16 enable-gpios = <&gpio_ao GPIOA 16 enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 17 VCC-supply = <&vcc_5v>; 17 VCC-supply = <&vcc_5v>; 18 sound-name-prefix = "U19"; 18 sound-name-prefix = "U19"; 19 status = "okay"; 19 status = "okay"; 20 }; 20 }; 21 21 22 hub_5v: regulator-hub-5v { 22 hub_5v: regulator-hub-5v { 23 compatible = "regulator-fixed" 23 compatible = "regulator-fixed"; 24 regulator-name = "HUB_5V"; 24 regulator-name = "HUB_5V"; 25 regulator-min-microvolt = <500 25 regulator-min-microvolt = <5000000>; 26 regulator-max-microvolt = <500 26 regulator-max-microvolt = <5000000>; 27 vin-supply = <&vcc_5v>; 27 vin-supply = <&vcc_5v>; 28 28 29 /* Connected to the Hub CHIPEN 29 /* Connected to the Hub CHIPENABLE, LOW sets low power state */ 30 gpio = <&gpio GPIOH_5 GPIO_ACT 30 gpio = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; 31 enable-active-high; 31 enable-active-high; 32 }; 32 }; 33 33 34 /* USB hub supports both USB 2.0 and U 34 /* USB hub supports both USB 2.0 and USB 3.0 root hub */ 35 usb-hub { 35 usb-hub { 36 dr_mode = "host"; 36 dr_mode = "host"; 37 #address-cells = <1>; 37 #address-cells = <1>; 38 #size-cells = <0>; 38 #size-cells = <0>; 39 39 40 /* 2.0 hub on port 1 */ 40 /* 2.0 hub on port 1 */ 41 hub_2_0: hub@1 { 41 hub_2_0: hub@1 { 42 compatible = "usb5e3,6 42 compatible = "usb5e3,610"; 43 reg = <1>; 43 reg = <1>; 44 peer-hub = <&hub_3_0>; 44 peer-hub = <&hub_3_0>; 45 vdd-supply = <&usb_pwr 45 vdd-supply = <&usb_pwr_en>; 46 }; 46 }; 47 47 48 /* 3.0 hub on port 4 */ 48 /* 3.0 hub on port 4 */ 49 hub_3_0: hub@2 { 49 hub_3_0: hub@2 { 50 compatible = "usb5e3,6 50 compatible = "usb5e3,620"; 51 reg = <2>; 51 reg = <2>; 52 peer-hub = <&hub_2_0>; 52 peer-hub = <&hub_2_0>; 53 reset-gpios = <&gpio G 53 reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; 54 vdd-supply = <&vcc_5v> 54 vdd-supply = <&vcc_5v>; 55 }; 55 }; 56 }; 56 }; 57 57 58 sound { 58 sound { 59 compatible = "amlogic,axg-soun 59 compatible = "amlogic,axg-sound-card"; 60 model = "ODROID-N2"; 60 model = "ODROID-N2"; 61 audio-widgets = "Line", "Lineo 61 audio-widgets = "Line", "Lineout"; 62 audio-aux-devs = <&tdmout_b>, 62 audio-aux-devs = <&tdmout_b>, <&tdmout_c>, <&tdmin_a>, 63 <&tdmin_b>, < 63 <&tdmin_b>, <&tdmin_c>, <&tdmin_lb>, 64 <&dio2133>; 64 <&dio2133>; 65 audio-routing = "TDMOUT_B IN 0 65 audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 66 "TDMOUT_B IN 1 66 "TDMOUT_B IN 1", "FRDDR_B OUT 1", 67 "TDMOUT_B IN 2 67 "TDMOUT_B IN 2", "FRDDR_C OUT 1", 68 "TDM_B Playbac 68 "TDM_B Playback", "TDMOUT_B OUT", 69 "TDMOUT_C IN 0 69 "TDMOUT_C IN 0", "FRDDR_A OUT 2", 70 "TDMOUT_C IN 1 70 "TDMOUT_C IN 1", "FRDDR_B OUT 2", 71 "TDMOUT_C IN 2 71 "TDMOUT_C IN 2", "FRDDR_C OUT 2", 72 "TDM_C Playbac 72 "TDM_C Playback", "TDMOUT_C OUT", 73 "TDMIN_A IN 4" 73 "TDMIN_A IN 4", "TDM_B Loopback", 74 "TDMIN_B IN 4" 74 "TDMIN_B IN 4", "TDM_B Loopback", 75 "TDMIN_C IN 4" 75 "TDMIN_C IN 4", "TDM_B Loopback", 76 "TDMIN_LB IN 1 76 "TDMIN_LB IN 1", "TDM_B Loopback", 77 "TDMIN_A IN 5" 77 "TDMIN_A IN 5", "TDM_C Loopback", 78 "TDMIN_B IN 5" 78 "TDMIN_B IN 5", "TDM_C Loopback", 79 "TDMIN_C IN 5" 79 "TDMIN_C IN 5", "TDM_C Loopback", 80 "TDMIN_LB IN 2 80 "TDMIN_LB IN 2", "TDM_C Loopback", 81 "TODDR_A IN 0" 81 "TODDR_A IN 0", "TDMIN_A OUT", 82 "TODDR_B IN 0" 82 "TODDR_B IN 0", "TDMIN_A OUT", 83 "TODDR_C IN 0" 83 "TODDR_C IN 0", "TDMIN_A OUT", 84 "TODDR_A IN 1" 84 "TODDR_A IN 1", "TDMIN_B OUT", 85 "TODDR_B IN 1" 85 "TODDR_B IN 1", "TDMIN_B OUT", 86 "TODDR_C IN 1" 86 "TODDR_C IN 1", "TDMIN_B OUT", 87 "TODDR_A IN 2" 87 "TODDR_A IN 2", "TDMIN_C OUT", 88 "TODDR_B IN 2" 88 "TODDR_B IN 2", "TDMIN_C OUT", 89 "TODDR_C IN 2" 89 "TODDR_C IN 2", "TDMIN_C OUT", 90 "TODDR_A IN 6" 90 "TODDR_A IN 6", "TDMIN_LB OUT", 91 "TODDR_B IN 6" 91 "TODDR_B IN 6", "TDMIN_LB OUT", 92 "TODDR_C IN 6" 92 "TODDR_C IN 6", "TDMIN_LB OUT", 93 "U19 INL", "AC 93 "U19 INL", "ACODEC LOLP", 94 "U19 INR", "AC 94 "U19 INR", "ACODEC LORP", 95 "Lineout", "U1 95 "Lineout", "U19 OUTL", 96 "Lineout", "U1 96 "Lineout", "U19 OUTR"; 97 97 98 clocks = <&clkc CLKID_MPLL2>, 98 clocks = <&clkc CLKID_MPLL2>, 99 <&clkc CLKID_MPLL0>, 99 <&clkc CLKID_MPLL0>, 100 <&clkc CLKID_MPLL1>; 100 <&clkc CLKID_MPLL1>; 101 101 102 assigned-clocks = <&clkc CLKID 102 assigned-clocks = <&clkc CLKID_MPLL2>, 103 <&clkc CLKID 103 <&clkc CLKID_MPLL0>, 104 <&clkc CLKID 104 <&clkc CLKID_MPLL1>; 105 assigned-clock-parents = <0>, 105 assigned-clock-parents = <0>, <0>, <0>; 106 assigned-clock-rates = <294912 106 assigned-clock-rates = <294912000>, 107 <270950 107 <270950400>, 108 <393216 108 <393216000>; 109 109 110 dai-link-0 { 110 dai-link-0 { 111 sound-dai = <&frddr_a> 111 sound-dai = <&frddr_a>; 112 }; 112 }; 113 113 114 dai-link-1 { 114 dai-link-1 { 115 sound-dai = <&frddr_b> 115 sound-dai = <&frddr_b>; 116 }; 116 }; 117 117 118 dai-link-2 { 118 dai-link-2 { 119 sound-dai = <&frddr_c> 119 sound-dai = <&frddr_c>; 120 }; 120 }; 121 121 122 dai-link-3 { 122 dai-link-3 { 123 sound-dai = <&toddr_a> 123 sound-dai = <&toddr_a>; 124 }; 124 }; 125 125 126 dai-link-4 { 126 dai-link-4 { 127 sound-dai = <&toddr_b> 127 sound-dai = <&toddr_b>; 128 }; 128 }; 129 129 130 dai-link-5 { 130 dai-link-5 { 131 sound-dai = <&toddr_c> 131 sound-dai = <&toddr_c>; 132 }; 132 }; 133 133 134 /* 8ch hdmi interface */ 134 /* 8ch hdmi interface */ 135 dai-link-6 { 135 dai-link-6 { 136 sound-dai = <&tdmif_b> 136 sound-dai = <&tdmif_b>; 137 dai-format = "i2s"; 137 dai-format = "i2s"; 138 dai-tdm-slot-tx-mask-0 138 dai-tdm-slot-tx-mask-0 = <1 1>; 139 dai-tdm-slot-tx-mask-1 139 dai-tdm-slot-tx-mask-1 = <1 1>; 140 dai-tdm-slot-tx-mask-2 140 dai-tdm-slot-tx-mask-2 = <1 1>; 141 dai-tdm-slot-tx-mask-3 141 dai-tdm-slot-tx-mask-3 = <1 1>; 142 mclk-fs = <256>; 142 mclk-fs = <256>; 143 143 144 codec-0 { 144 codec-0 { 145 sound-dai = <& 145 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 146 }; 146 }; 147 147 148 codec-1 { 148 codec-1 { 149 sound-dai = <& 149 sound-dai = <&toacodec TOACODEC_IN_B>; 150 }; 150 }; 151 }; 151 }; 152 152 153 /* i2s jack output interface * 153 /* i2s jack output interface */ 154 dai-link-7 { 154 dai-link-7 { 155 sound-dai = <&tdmif_c> 155 sound-dai = <&tdmif_c>; 156 dai-format = "i2s"; 156 dai-format = "i2s"; 157 dai-tdm-slot-tx-mask-0 157 dai-tdm-slot-tx-mask-0 = <1 1>; 158 mclk-fs = <256>; 158 mclk-fs = <256>; 159 159 160 codec-0 { 160 codec-0 { 161 sound-dai = <& 161 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>; 162 }; 162 }; 163 163 164 codec-1 { 164 codec-1 { 165 sound-dai = <& 165 sound-dai = <&toacodec TOACODEC_IN_C>; 166 }; 166 }; 167 }; 167 }; 168 168 169 /* hdmi glue */ 169 /* hdmi glue */ 170 dai-link-8 { 170 dai-link-8 { 171 sound-dai = <&tohdmitx 171 sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 172 172 173 codec { 173 codec { 174 sound-dai = <& 174 sound-dai = <&hdmi_tx>; 175 }; 175 }; 176 }; 176 }; 177 177 178 /* acodec glue */ 178 /* acodec glue */ 179 dai-link-9 { 179 dai-link-9 { 180 sound-dai = <&toacodec 180 sound-dai = <&toacodec TOACODEC_OUT>; 181 181 182 codec { 182 codec { 183 sound-dai = <& 183 sound-dai = <&acodec>; 184 }; 184 }; 185 }; 185 }; 186 }; 186 }; 187 }; 187 }; 188 188 189 &acodec { 189 &acodec { 190 AVDD-supply = <&vddao_1v8>; 190 AVDD-supply = <&vddao_1v8>; 191 status = "okay"; 191 status = "okay"; 192 }; 192 }; 193 193 194 ðmac { 194 ðmac { 195 pinctrl-0 = <ð_pins>, <ð_rgmii_p 195 pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; 196 pinctrl-names = "default"; 196 pinctrl-names = "default"; 197 status = "okay"; 197 status = "okay"; 198 phy-mode = "rgmii"; 198 phy-mode = "rgmii"; 199 phy-handle = <&external_phy>; 199 phy-handle = <&external_phy>; 200 amlogic,tx-delay-ns = <2>; 200 amlogic,tx-delay-ns = <2>; 201 }; 201 }; 202 202 203 &ext_mdio { 203 &ext_mdio { 204 external_phy: ethernet-phy@0 { 204 external_phy: ethernet-phy@0 { 205 /* Realtek RTL8211F (0x001cc91 205 /* Realtek RTL8211F (0x001cc916) */ 206 reg = <0>; 206 reg = <0>; 207 max-speed = <1000>; 207 max-speed = <1000>; 208 208 209 reset-assert-us = <10000>; 209 reset-assert-us = <10000>; 210 reset-deassert-us = <80000>; 210 reset-deassert-us = <80000>; 211 reset-gpios = <&gpio GPIOZ_15 211 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 212 212 213 interrupt-parent = <&gpio_intc 213 interrupt-parent = <&gpio_intc>; 214 /* MAC_INTR on GPIOZ_14 */ 214 /* MAC_INTR on GPIOZ_14 */ 215 interrupts = <IRQID_GPIOZ_14 I 215 interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>; 216 }; 216 }; 217 }; 217 }; 218 218 219 &gpio { 219 &gpio { 220 gpio-line-names = 220 gpio-line-names = 221 /* GPIOZ */ 221 /* GPIOZ */ 222 "", "", "", "", "", "", "", "" 222 "", "", "", "", "", "", "", "", 223 "", "", "", "", "", "", "", "" 223 "", "", "", "", "", "", "", "", 224 /* GPIOH */ 224 /* GPIOH */ 225 "", "", "", "", "", "", "", "" 225 "", "", "", "", "", "", "", "", 226 "", 226 "", 227 /* BOOT */ 227 /* BOOT */ 228 "", "", "", "", "", "", "", "" 228 "", "", "", "", "", "", "", "", 229 "", "", "", "", "", "", "", "" 229 "", "", "", "", "", "", "", "", 230 /* GPIOC */ 230 /* GPIOC */ 231 "", "", "", "", "", "", "", "" 231 "", "", "", "", "", "", "", "", 232 /* GPIOA */ 232 /* GPIOA */ 233 "PIN_44", /* GPIOA_0 */ 233 "PIN_44", /* GPIOA_0 */ 234 "PIN_46", /* GPIOA_1 */ 234 "PIN_46", /* GPIOA_1 */ 235 "PIN_45", /* GPIOA_2 */ 235 "PIN_45", /* GPIOA_2 */ 236 "PIN_47", /* GPIOA_3 */ 236 "PIN_47", /* GPIOA_3 */ 237 "PIN_26", /* GPIOA_4 */ 237 "PIN_26", /* GPIOA_4 */ 238 "", "", "", "", "", "", 238 "", "", "", "", "", "", 239 "PIN_42", /* GPIOA_11 */ 239 "PIN_42", /* GPIOA_11 */ 240 "PIN_32", /* GPIOA_12 */ 240 "PIN_32", /* GPIOA_12 */ 241 "PIN_7", /* GPIOA_13 */ 241 "PIN_7", /* GPIOA_13 */ 242 "PIN_27", /* GPIOA_14 */ 242 "PIN_27", /* GPIOA_14 */ 243 "PIN_28", /* GPIOA_15 */ 243 "PIN_28", /* GPIOA_15 */ 244 /* GPIOX */ 244 /* GPIOX */ 245 "PIN_16", /* GPIOX_0 */ 245 "PIN_16", /* GPIOX_0 */ 246 "PIN_18", /* GPIOX_1 */ 246 "PIN_18", /* GPIOX_1 */ 247 "PIN_22", /* GPIOX_2 */ 247 "PIN_22", /* GPIOX_2 */ 248 "PIN_11", /* GPIOX_3 */ 248 "PIN_11", /* GPIOX_3 */ 249 "PIN_13", /* GPIOX_4 */ 249 "PIN_13", /* GPIOX_4 */ 250 "PIN_33", /* GPIOX_5 */ 250 "PIN_33", /* GPIOX_5 */ 251 "PIN_35", /* GPIOX_6 */ 251 "PIN_35", /* GPIOX_6 */ 252 "PIN_15", /* GPIOX_7 */ 252 "PIN_15", /* GPIOX_7 */ 253 "PIN_19", /* GPIOX_8 */ 253 "PIN_19", /* GPIOX_8 */ 254 "PIN_21", /* GPIOX_9 */ 254 "PIN_21", /* GPIOX_9 */ 255 "PIN_24", /* GPIOX_10 */ 255 "PIN_24", /* GPIOX_10 */ 256 "PIN_23", /* GPIOX_11 */ 256 "PIN_23", /* GPIOX_11 */ 257 "PIN_8", /* GPIOX_12 */ 257 "PIN_8", /* GPIOX_12 */ 258 "PIN_10", /* GPIOX_13 */ 258 "PIN_10", /* GPIOX_13 */ 259 "PIN_29", /* GPIOX_14 */ 259 "PIN_29", /* GPIOX_14 */ 260 "PIN_31", /* GPIOX_15 */ 260 "PIN_31", /* GPIOX_15 */ 261 "PIN_12", /* GPIOX_16 */ 261 "PIN_12", /* GPIOX_16 */ 262 "PIN_3", /* GPIOX_17 */ 262 "PIN_3", /* GPIOX_17 */ 263 "PIN_5", /* GPIOX_18 */ 263 "PIN_5", /* GPIOX_18 */ 264 "PIN_36"; /* GPIOX_19 */ 264 "PIN_36"; /* GPIOX_19 */ 265 }; 265 }; 266 266 267 &i2c3 { 267 &i2c3 { 268 status = "okay"; 268 status = "okay"; 269 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3 269 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 270 pinctrl-names = "default"; 270 pinctrl-names = "default"; 271 271 272 rtc: rtc@51 { 272 rtc: rtc@51 { 273 compatible = "nxp,pcf8563"; 273 compatible = "nxp,pcf8563"; 274 reg = <0x51>; 274 reg = <0x51>; 275 wakeup-source; 275 wakeup-source; 276 }; 276 }; 277 }; 277 }; 278 278 279 &ir { 279 &ir { 280 status = "okay"; 280 status = "okay"; 281 pinctrl-0 = <&remote_input_ao_pins>; 281 pinctrl-0 = <&remote_input_ao_pins>; 282 pinctrl-names = "default"; 282 pinctrl-names = "default"; 283 linux,rc-map-name = "rc-odroid"; 283 linux,rc-map-name = "rc-odroid"; 284 }; 284 }; 285 285 286 /* 286 /* 287 * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins 287 * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins are shared between SPI NOR pins 288 * and eMMC Data 4 to 7 pins. 288 * and eMMC Data 4 to 7 pins. 289 * Replace emmc_data_8b_pins to emmc_data_4b_p 289 * Replace emmc_data_8b_pins to emmc_data_4b_pins from sd_emmc_c pinctrl-0, 290 * and change bus-width to 4 then spifc can be 290 * and change bus-width to 4 then spifc can be enabled. 291 * The SW1 slide should also be set to the cor 291 * The SW1 slide should also be set to the correct position. 292 */ 292 */ 293 &spifc { 293 &spifc { 294 status = "disabled"; 294 status = "disabled"; 295 pinctrl-0 = <&nor_pins>; 295 pinctrl-0 = <&nor_pins>; 296 pinctrl-names = "default"; 296 pinctrl-names = "default"; 297 297 298 mx25u64: flash@0 { 298 mx25u64: flash@0 { 299 #address-cells = <1>; 299 #address-cells = <1>; 300 #size-cells = <1>; 300 #size-cells = <1>; 301 compatible = "mxicy,mx25u6435f 301 compatible = "mxicy,mx25u6435f", "jedec,spi-nor"; 302 reg = <0>; 302 reg = <0>; 303 spi-max-frequency = <104000000 303 spi-max-frequency = <104000000>; 304 }; 304 }; 305 }; 305 }; 306 306 307 &toacodec { 307 &toacodec { 308 status = "okay"; 308 status = "okay"; 309 }; 309 }; 310 310 311 &usb { 311 &usb { 312 vbus-supply = <&usb_pwr_en>; 312 vbus-supply = <&usb_pwr_en>; 313 }; 313 }; 314 314 315 &usb2_phy1 { 315 &usb2_phy1 { 316 /* Enable the hub which is connected t 316 /* Enable the hub which is connected to this port */ 317 phy-supply = <&hub_5v>; 317 phy-supply = <&hub_5v>; 318 }; 318 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.