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>, << 99 <&clkc CLKID_MPLL0>, << 100 <&clkc CLKID_MPLL1>; << 101 << 102 assigned-clocks = <&clkc CLKID 98 assigned-clocks = <&clkc CLKID_MPLL2>, 103 <&clkc CLKID 99 <&clkc CLKID_MPLL0>, 104 <&clkc CLKID 100 <&clkc CLKID_MPLL1>; 105 assigned-clock-parents = <0>, 101 assigned-clock-parents = <0>, <0>, <0>; 106 assigned-clock-rates = <294912 102 assigned-clock-rates = <294912000>, 107 <270950 103 <270950400>, 108 <393216 104 <393216000>; 109 105 110 dai-link-0 { 106 dai-link-0 { 111 sound-dai = <&frddr_a> 107 sound-dai = <&frddr_a>; 112 }; 108 }; 113 109 114 dai-link-1 { 110 dai-link-1 { 115 sound-dai = <&frddr_b> 111 sound-dai = <&frddr_b>; 116 }; 112 }; 117 113 118 dai-link-2 { 114 dai-link-2 { 119 sound-dai = <&frddr_c> 115 sound-dai = <&frddr_c>; 120 }; 116 }; 121 117 122 dai-link-3 { 118 dai-link-3 { 123 sound-dai = <&toddr_a> 119 sound-dai = <&toddr_a>; 124 }; 120 }; 125 121 126 dai-link-4 { 122 dai-link-4 { 127 sound-dai = <&toddr_b> 123 sound-dai = <&toddr_b>; 128 }; 124 }; 129 125 130 dai-link-5 { 126 dai-link-5 { 131 sound-dai = <&toddr_c> 127 sound-dai = <&toddr_c>; 132 }; 128 }; 133 129 134 /* 8ch hdmi interface */ 130 /* 8ch hdmi interface */ 135 dai-link-6 { 131 dai-link-6 { 136 sound-dai = <&tdmif_b> 132 sound-dai = <&tdmif_b>; 137 dai-format = "i2s"; 133 dai-format = "i2s"; 138 dai-tdm-slot-tx-mask-0 134 dai-tdm-slot-tx-mask-0 = <1 1>; 139 dai-tdm-slot-tx-mask-1 135 dai-tdm-slot-tx-mask-1 = <1 1>; 140 dai-tdm-slot-tx-mask-2 136 dai-tdm-slot-tx-mask-2 = <1 1>; 141 dai-tdm-slot-tx-mask-3 137 dai-tdm-slot-tx-mask-3 = <1 1>; 142 mclk-fs = <256>; 138 mclk-fs = <256>; 143 139 144 codec-0 { 140 codec-0 { 145 sound-dai = <& 141 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 146 }; 142 }; 147 143 148 codec-1 { 144 codec-1 { 149 sound-dai = <& 145 sound-dai = <&toacodec TOACODEC_IN_B>; 150 }; 146 }; 151 }; 147 }; 152 148 153 /* i2s jack output interface * 149 /* i2s jack output interface */ 154 dai-link-7 { 150 dai-link-7 { 155 sound-dai = <&tdmif_c> 151 sound-dai = <&tdmif_c>; 156 dai-format = "i2s"; 152 dai-format = "i2s"; 157 dai-tdm-slot-tx-mask-0 153 dai-tdm-slot-tx-mask-0 = <1 1>; 158 mclk-fs = <256>; 154 mclk-fs = <256>; 159 155 160 codec-0 { 156 codec-0 { 161 sound-dai = <& 157 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>; 162 }; 158 }; 163 159 164 codec-1 { 160 codec-1 { 165 sound-dai = <& 161 sound-dai = <&toacodec TOACODEC_IN_C>; 166 }; 162 }; 167 }; 163 }; 168 164 169 /* hdmi glue */ 165 /* hdmi glue */ 170 dai-link-8 { 166 dai-link-8 { 171 sound-dai = <&tohdmitx 167 sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 172 168 173 codec { 169 codec { 174 sound-dai = <& 170 sound-dai = <&hdmi_tx>; 175 }; 171 }; 176 }; 172 }; 177 173 178 /* acodec glue */ 174 /* acodec glue */ 179 dai-link-9 { 175 dai-link-9 { 180 sound-dai = <&toacodec 176 sound-dai = <&toacodec TOACODEC_OUT>; 181 177 182 codec { 178 codec { 183 sound-dai = <& 179 sound-dai = <&acodec>; 184 }; 180 }; 185 }; 181 }; 186 }; 182 }; 187 }; 183 }; 188 184 189 &acodec { 185 &acodec { 190 AVDD-supply = <&vddao_1v8>; 186 AVDD-supply = <&vddao_1v8>; 191 status = "okay"; 187 status = "okay"; 192 }; 188 }; 193 189 194 ðmac { 190 ðmac { 195 pinctrl-0 = <ð_pins>, <ð_rgmii_p 191 pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; 196 pinctrl-names = "default"; 192 pinctrl-names = "default"; 197 status = "okay"; 193 status = "okay"; 198 phy-mode = "rgmii"; 194 phy-mode = "rgmii"; 199 phy-handle = <&external_phy>; 195 phy-handle = <&external_phy>; 200 amlogic,tx-delay-ns = <2>; 196 amlogic,tx-delay-ns = <2>; 201 }; 197 }; 202 198 203 &ext_mdio { 199 &ext_mdio { 204 external_phy: ethernet-phy@0 { 200 external_phy: ethernet-phy@0 { 205 /* Realtek RTL8211F (0x001cc91 201 /* Realtek RTL8211F (0x001cc916) */ 206 reg = <0>; 202 reg = <0>; 207 max-speed = <1000>; 203 max-speed = <1000>; 208 204 209 reset-assert-us = <10000>; 205 reset-assert-us = <10000>; 210 reset-deassert-us = <80000>; 206 reset-deassert-us = <80000>; 211 reset-gpios = <&gpio GPIOZ_15 207 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 212 208 213 interrupt-parent = <&gpio_intc 209 interrupt-parent = <&gpio_intc>; 214 /* MAC_INTR on GPIOZ_14 */ 210 /* MAC_INTR on GPIOZ_14 */ 215 interrupts = <IRQID_GPIOZ_14 I 211 interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>; 216 }; 212 }; 217 }; 213 }; 218 214 219 &gpio { 215 &gpio { 220 gpio-line-names = 216 gpio-line-names = 221 /* GPIOZ */ 217 /* GPIOZ */ 222 "", "", "", "", "", "", "", "" 218 "", "", "", "", "", "", "", "", 223 "", "", "", "", "", "", "", "" 219 "", "", "", "", "", "", "", "", 224 /* GPIOH */ 220 /* GPIOH */ 225 "", "", "", "", "", "", "", "" 221 "", "", "", "", "", "", "", "", 226 "", 222 "", 227 /* BOOT */ 223 /* BOOT */ 228 "", "", "", "", "", "", "", "" 224 "", "", "", "", "", "", "", "", 229 "", "", "", "", "", "", "", "" 225 "", "", "", "", "", "", "", "", 230 /* GPIOC */ 226 /* GPIOC */ 231 "", "", "", "", "", "", "", "" 227 "", "", "", "", "", "", "", "", 232 /* GPIOA */ 228 /* GPIOA */ 233 "PIN_44", /* GPIOA_0 */ 229 "PIN_44", /* GPIOA_0 */ 234 "PIN_46", /* GPIOA_1 */ 230 "PIN_46", /* GPIOA_1 */ 235 "PIN_45", /* GPIOA_2 */ 231 "PIN_45", /* GPIOA_2 */ 236 "PIN_47", /* GPIOA_3 */ 232 "PIN_47", /* GPIOA_3 */ 237 "PIN_26", /* GPIOA_4 */ 233 "PIN_26", /* GPIOA_4 */ 238 "", "", "", "", "", "", 234 "", "", "", "", "", "", 239 "PIN_42", /* GPIOA_11 */ 235 "PIN_42", /* GPIOA_11 */ 240 "PIN_32", /* GPIOA_12 */ 236 "PIN_32", /* GPIOA_12 */ 241 "PIN_7", /* GPIOA_13 */ 237 "PIN_7", /* GPIOA_13 */ 242 "PIN_27", /* GPIOA_14 */ 238 "PIN_27", /* GPIOA_14 */ 243 "PIN_28", /* GPIOA_15 */ 239 "PIN_28", /* GPIOA_15 */ 244 /* GPIOX */ 240 /* GPIOX */ 245 "PIN_16", /* GPIOX_0 */ 241 "PIN_16", /* GPIOX_0 */ 246 "PIN_18", /* GPIOX_1 */ 242 "PIN_18", /* GPIOX_1 */ 247 "PIN_22", /* GPIOX_2 */ 243 "PIN_22", /* GPIOX_2 */ 248 "PIN_11", /* GPIOX_3 */ 244 "PIN_11", /* GPIOX_3 */ 249 "PIN_13", /* GPIOX_4 */ 245 "PIN_13", /* GPIOX_4 */ 250 "PIN_33", /* GPIOX_5 */ 246 "PIN_33", /* GPIOX_5 */ 251 "PIN_35", /* GPIOX_6 */ 247 "PIN_35", /* GPIOX_6 */ 252 "PIN_15", /* GPIOX_7 */ 248 "PIN_15", /* GPIOX_7 */ 253 "PIN_19", /* GPIOX_8 */ 249 "PIN_19", /* GPIOX_8 */ 254 "PIN_21", /* GPIOX_9 */ 250 "PIN_21", /* GPIOX_9 */ 255 "PIN_24", /* GPIOX_10 */ 251 "PIN_24", /* GPIOX_10 */ 256 "PIN_23", /* GPIOX_11 */ 252 "PIN_23", /* GPIOX_11 */ 257 "PIN_8", /* GPIOX_12 */ 253 "PIN_8", /* GPIOX_12 */ 258 "PIN_10", /* GPIOX_13 */ 254 "PIN_10", /* GPIOX_13 */ 259 "PIN_29", /* GPIOX_14 */ 255 "PIN_29", /* GPIOX_14 */ 260 "PIN_31", /* GPIOX_15 */ 256 "PIN_31", /* GPIOX_15 */ 261 "PIN_12", /* GPIOX_16 */ 257 "PIN_12", /* GPIOX_16 */ 262 "PIN_3", /* GPIOX_17 */ 258 "PIN_3", /* GPIOX_17 */ 263 "PIN_5", /* GPIOX_18 */ 259 "PIN_5", /* GPIOX_18 */ 264 "PIN_36"; /* GPIOX_19 */ 260 "PIN_36"; /* GPIOX_19 */ 265 }; 261 }; 266 262 267 &i2c3 { 263 &i2c3 { 268 status = "okay"; 264 status = "okay"; 269 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3 265 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 270 pinctrl-names = "default"; 266 pinctrl-names = "default"; 271 267 272 rtc: rtc@51 { 268 rtc: rtc@51 { 273 compatible = "nxp,pcf8563"; 269 compatible = "nxp,pcf8563"; 274 reg = <0x51>; 270 reg = <0x51>; 275 wakeup-source; 271 wakeup-source; 276 }; 272 }; 277 }; 273 }; 278 274 279 &ir { 275 &ir { 280 status = "okay"; 276 status = "okay"; 281 pinctrl-0 = <&remote_input_ao_pins>; 277 pinctrl-0 = <&remote_input_ao_pins>; 282 pinctrl-names = "default"; 278 pinctrl-names = "default"; 283 linux,rc-map-name = "rc-odroid"; 279 linux,rc-map-name = "rc-odroid"; 284 }; 280 }; 285 281 286 /* 282 /* 287 * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins 283 * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins are shared between SPI NOR pins 288 * and eMMC Data 4 to 7 pins. 284 * and eMMC Data 4 to 7 pins. 289 * Replace emmc_data_8b_pins to emmc_data_4b_p 285 * 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 286 * and change bus-width to 4 then spifc can be enabled. 291 * The SW1 slide should also be set to the cor 287 * The SW1 slide should also be set to the correct position. 292 */ 288 */ 293 &spifc { 289 &spifc { 294 status = "disabled"; 290 status = "disabled"; 295 pinctrl-0 = <&nor_pins>; 291 pinctrl-0 = <&nor_pins>; 296 pinctrl-names = "default"; 292 pinctrl-names = "default"; 297 293 298 mx25u64: flash@0 { 294 mx25u64: flash@0 { 299 #address-cells = <1>; 295 #address-cells = <1>; 300 #size-cells = <1>; 296 #size-cells = <1>; 301 compatible = "mxicy,mx25u6435f 297 compatible = "mxicy,mx25u6435f", "jedec,spi-nor"; 302 reg = <0>; 298 reg = <0>; 303 spi-max-frequency = <104000000 299 spi-max-frequency = <104000000>; 304 }; 300 }; 305 }; 301 }; 306 302 307 &toacodec { 303 &toacodec { 308 status = "okay"; 304 status = "okay"; 309 }; 305 }; 310 306 311 &usb { 307 &usb { 312 vbus-supply = <&usb_pwr_en>; 308 vbus-supply = <&usb_pwr_en>; 313 }; 309 }; 314 310 315 &usb2_phy1 { 311 &usb2_phy1 { 316 /* Enable the hub which is connected t 312 /* Enable the hub which is connected to this port */ 317 phy-supply = <&hub_5v>; 313 phy-supply = <&hub_5v>; 318 }; 314 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.