~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0
  2 /*
  3  * Copyright (c) 2019 BayLibre SAS.
  4  * Author: Jerome Brunet <jbrunet@baylibre.com>
  5  */
  6 
  7 /* Libretech Amlogic GX PC form factor - AKA: Tartiflette */
  8 
  9 #include <dt-bindings/input/input.h>
 10 #include <dt-bindings/leds/common.h>
 11 #include <dt-bindings/sound/meson-aiu.h>
 12 
 13 / {
 14         adc-keys {
 15                 compatible = "adc-keys";
 16                 io-channels = <&saradc 0>;
 17                 io-channel-names = "buttons";
 18                 keyup-threshold-microvolt = <1800000>;
 19 
 20                 button-update {
 21                         label = "update";
 22                         linux,code = <KEY_VENDOR>;
 23                         press-threshold-microvolt = <1300000>;
 24                 };
 25         };
 26 
 27         aliases {
 28                 serial0 = &uart_AO;
 29                 ethernet0 = &ethmac;
 30                 spi0 = &spifc;
 31         };
 32 
 33         dio2133: analog-amplifier {
 34                 compatible = "simple-audio-amplifier";
 35                 sound-name-prefix = "AU2";
 36                 VCC-supply = <&vcc5v>;
 37                 enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
 38         };
 39 
 40         chosen {
 41                 stdout-path = "serial0:115200n8";
 42         };
 43 
 44         cvbs-connector {
 45                 compatible = "composite-video-connector";
 46                 status = "disabled";
 47 
 48                 port {
 49                         cvbs_connector_in: endpoint {
 50                                 remote-endpoint = <&cvbs_vdac_out>;
 51                         };
 52                 };
 53         };
 54 
 55         emmc_pwrseq: emmc-pwrseq {
 56                 compatible = "mmc-pwrseq-emmc";
 57                 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
 58         };
 59 
 60         hdmi-connector {
 61                 compatible = "hdmi-connector";
 62                 type = "a";
 63 
 64                 port {
 65                         hdmi_connector_in: endpoint {
 66                                 remote-endpoint = <&hdmi_tx_tmds_out>;
 67                         };
 68                 };
 69         };
 70 
 71         gpio-keys-polled {
 72                 compatible = "gpio-keys-polled";
 73                 poll-interval = <100>;
 74 
 75                 power-button {
 76                         label = "power";
 77                         linux,code = <KEY_POWER>;
 78                         gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
 79                 };
 80         };
 81 
 82         memory@0 {
 83                 device_type = "memory";
 84                 reg = <0x0 0x0 0x0 0x80000000>;
 85         };
 86 
 87         ao_5v: regulator-ao-5v {
 88                 compatible = "regulator-fixed";
 89                 regulator-name = "AO_5V";
 90                 regulator-min-microvolt = <5000000>;
 91                 regulator-max-microvolt = <5000000>;
 92                 vin-supply = <&dc_in>;
 93                 regulator-always-on;
 94         };
 95 
 96         dc_in: regulator-dc-in {
 97                 compatible = "regulator-fixed";
 98                 regulator-name = "DC_IN";
 99                 regulator-min-microvolt = <5000000>;
100                 regulator-max-microvolt = <5000000>;
101                 regulator-always-on;
102         };
103 
104         leds {
105                 compatible = "gpio-leds";
106 
107                 led-green {
108                         color = <LED_COLOR_ID_GREEN>;
109                         function = LED_FUNCTION_DISK_ACTIVITY;
110                         gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
111                         linux,default-trigger = "disk-activity";
112                 };
113 
114                 led-blue {
115                         color = <LED_COLOR_ID_BLUE>;
116                         function = LED_FUNCTION_STATUS;
117                         gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>;
118                         linux,default-trigger = "heartbeat";
119                         panic-indicator;
120                 };
121         };
122 
123         vcc_card: regulator-vcc-card {
124                 compatible = "regulator-fixed";
125                 regulator-name = "VCC_CARD";
126                 regulator-min-microvolt = <3300000>;
127                 regulator-max-microvolt = <3300000>;
128                 vin-supply = <&vddio_ao3v3>;
129 
130                 gpio = <&gpio GPIODV_4 GPIO_ACTIVE_HIGH>;
131                 enable-active-high;
132         };
133 
134         vcc5v: regulator-vcc5v {
135                 compatible = "regulator-fixed";
136                 regulator-name = "VCC5V";
137                 regulator-min-microvolt = <5000000>;
138                 regulator-max-microvolt = <5000000>;
139                 vin-supply = <&ao_5v>;
140 
141                 gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>;
142         };
143 
144         vddio_ao18: regulator-vddio-ao18 {
145                 compatible = "regulator-fixed";
146                 regulator-name = "VDDIO_AO18";
147                 regulator-min-microvolt = <1800000>;
148                 regulator-max-microvolt = <1800000>;
149                 vin-supply = <&ao_5v>;
150                 regulator-always-on;
151         };
152 
153         vddio_ao3v3: regulator-vddio-ao3v3 {
154                 compatible = "regulator-fixed";
155                 regulator-name = "VDDIO_AO3V3";
156                 regulator-min-microvolt = <3300000>;
157                 regulator-max-microvolt = <3300000>;
158                 vin-supply = <&ao_5v>;
159                 regulator-always-on;
160         };
161 
162         vddio_boot: regulator-vddio-boot {
163                 compatible = "regulator-fixed";
164                 regulator-name = "VDDIO_BOOT";
165                 regulator-min-microvolt = <1800000>;
166                 regulator-max-microvolt = <1800000>;
167                 vin-supply = <&vddio_ao3v3>;
168                 regulator-always-on;
169         };
170 
171         vddio_card: regulator-vddio-card {
172                 compatible = "regulator-gpio";
173                 regulator-name = "VDDIO_CARD";
174                 regulator-min-microvolt = <1800000>;
175                 regulator-max-microvolt = <3300000>;
176 
177                 gpios = <&gpio GPIODV_5 GPIO_ACTIVE_HIGH>;
178                 gpios-states = <0>;
179 
180                 states = <3300000 0>,
181                          <1800000 1>;
182 
183                 regulator-settling-time-up-us = <200>;
184                 regulator-settling-time-down-us = <50000>;
185         };
186 
187         sound {
188                 compatible = "amlogic,gx-sound-card";
189                 model = "LIBRETECH-PC";
190                 audio-aux-devs = <&dio2133>;
191                 audio-widgets = "Speaker", "7J4-14 LEFT",
192                                 "Speaker", "7J4-11 RIGHT";
193                 audio-routing = "AU2 INL", "ACODEC LOLN",
194                                 "AU2 INR", "ACODEC LORN",
195                                 "7J4-14 LEFT", "AU2 OUTL",
196                                 "7J4-11 RIGHT", "AU2 OUTR";
197                 assigned-clocks = <&clkc CLKID_MPLL0>,
198                                   <&clkc CLKID_MPLL1>,
199                                   <&clkc CLKID_MPLL2>;
200                 assigned-clock-parents = <0>, <0>, <0>;
201                 assigned-clock-rates = <294912000>,
202                                        <270950400>,
203                                        <393216000>;
204 
205                 dai-link-0 {
206                         sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
207                 };
208 
209                 dai-link-1 {
210                         sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
211                         dai-format = "i2s";
212                         mclk-fs = <256>;
213 
214                         codec-0 {
215                                 sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
216                         };
217 
218                         codec-1 {
219                                 sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
220                         };
221                 };
222 
223                 dai-link-2 {
224                         sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
225 
226                         codec-0 {
227                                 sound-dai = <&hdmi_tx>;
228                         };
229                 };
230 
231                 dai-link-3 {
232                         sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
233 
234                         codec-0 {
235                                 sound-dai = <&acodec>;
236                         };
237                 };
238         };
239 };
240 
241 &acodec {
242         AVDD-supply = <&vddio_ao18>;
243         status = "okay";
244 };
245 
246 &aiu {
247         status = "okay";
248 };
249 
250 &cec_AO {
251         pinctrl-0 = <&ao_cec_pins>;
252         pinctrl-names = "default";
253         hdmi-phandle = <&hdmi_tx>;
254         status = "okay";
255 };
256 
257 &cvbs_vdac_port {
258         cvbs_vdac_out: endpoint {
259                 remote-endpoint = <&cvbs_connector_in>;
260         };
261 };
262 
263 &ethmac {
264         pinctrl-0 = <&eth_pins>, <&eth_phy_irq_pins>;
265         pinctrl-names = "default";
266         phy-handle = <&external_phy>;
267         amlogic,tx-delay-ns = <2>;
268         phy-mode = "rgmii";
269         status = "okay";
270 };
271 
272 &external_mdio {
273         external_phy: ethernet-phy@0 {
274                 reg = <0>;
275                 max-speed = <1000>;
276                 reset-assert-us = <10000>;
277                 reset-deassert-us = <30000>;
278                 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
279                 interrupt-parent = <&gpio_intc>;
280                 interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
281         };
282 };
283 
284 &pinctrl_periphs {
285         /*
286          * Make sure the reset pin of the usb HUB is driven high to take
287          * it out of reset.
288          */
289         usb1_rst_pins: usb1_rst_irq {
290                 mux {
291                         groups = "GPIODV_3";
292                         function = "gpio_periphs";
293                         bias-disable;
294                         output-high;
295                 };
296         };
297 
298         /* Make sure the phy irq pin is properly configured as input */
299         eth_phy_irq_pins: eth_phy_irq {
300                 mux {
301                         groups = "GPIOZ_15";
302                         function = "gpio_periphs";
303                         bias-disable;
304                         output-disable;
305                 };
306         };
307 };
308 
309 &hdmi_tx {
310         pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
311         pinctrl-names = "default";
312         hdmi-supply = <&vcc5v>;
313         status = "okay";
314 };
315 
316 &hdmi_tx_tmds_port {
317         hdmi_tx_tmds_out: endpoint {
318                 remote-endpoint = <&hdmi_connector_in>;
319         };
320 };
321 
322 &ir {
323         pinctrl-0 = <&remote_input_ao_pins>;
324         pinctrl-names = "default";
325         status = "okay";
326 };
327 
328 &i2c_C {
329         pinctrl-0 = <&i2c_c_dv18_pins>;
330         pinctrl-names = "default";
331         status = "okay";
332 
333         rtc: rtc@51 {
334                 reg = <0x51>;
335                 compatible = "nxp,pcf8563";
336                 #clock-cells = <0>;
337                 clock-output-names = "rtc_clkout";
338         };
339 };
340 
341 &pwm_AO_ab {
342         pinctrl-0 = <&pwm_ao_a_3_pins>;
343         pinctrl-names = "default";
344         clocks = <&clkc CLKID_FCLK_DIV4>;
345         clock-names = "clkin0";
346         status = "okay";
347 };
348 
349 &pwm_ab {
350         pinctrl-0 = <&pwm_b_pins>;
351         pinctrl-names = "default";
352         clocks = <&clkc CLKID_FCLK_DIV4>;
353         clock-names = "clkin0";
354         status = "okay";
355 };
356 
357 &pwm_ef {
358         pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
359         pinctrl-names = "default";
360         clocks = <&clkc CLKID_FCLK_DIV4>;
361         clock-names = "clkin0";
362         status = "okay";
363 };
364 
365 &saradc {
366         vref-supply = <&vddio_ao18>;
367         status = "okay";
368 };
369 
370 /* SD card */
371 &sd_emmc_b {
372         pinctrl-0 = <&sdcard_pins>;
373         pinctrl-1 = <&sdcard_clk_gate_pins>;
374         pinctrl-names = "default", "clk-gate";
375 
376         bus-width = <4>;
377         cap-sd-highspeed;
378         sd-uhs-sdr12;
379         sd-uhs-sdr25;
380         sd-uhs-sdr50;
381         sd-uhs-ddr50;
382         max-frequency = <200000000>;
383         disable-wp;
384 
385         cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
386 
387         vmmc-supply = <&vcc_card>;
388         vqmmc-supply = <&vddio_card>;
389 
390         status = "okay";
391 };
392 
393 /* eMMC */
394 &sd_emmc_c {
395         pinctrl-0 = <&emmc_pins>;
396         pinctrl-1 = <&emmc_clk_gate_pins>;
397         pinctrl-names = "default", "clk-gate";
398 
399         bus-width = <8>;
400         cap-mmc-highspeed;
401         mmc-ddr-1_8v;
402         mmc-hs200-1_8v;
403         max-frequency = <200000000>;
404         disable-wp;
405 
406         mmc-pwrseq = <&emmc_pwrseq>;
407         vmmc-supply = <&vddio_ao3v3>;
408         vqmmc-supply = <&vddio_boot>;
409 
410         status = "okay";
411 };
412 
413 &spifc {
414         pinctrl-0 = <&nor_pins>;
415         pinctrl-names = "default";
416         status = "okay";
417 
418         gd25lq128: flash@0 {
419                 compatible = "jedec,spi-nor";
420                 #address-cells = <1>;
421                 #size-cells = <1>;
422                 reg = <0>;
423                 spi-max-frequency = <12000000>;
424         };
425 };
426 
427 &uart_AO {
428         pinctrl-0 = <&uart_ao_a_pins>;
429         pinctrl-names = "default";
430         status = "okay";
431 };
432 
433 &usb {
434         status = "okay";
435         dr_mode = "host";
436 };
437 
438 &usb2_phy0 {
439         pinctrl-0 = <&usb1_rst_pins>;
440         pinctrl-names = "default";
441         phy-supply = <&vcc5v>;
442 };
443 
444 &usb2_phy1 {
445         phy-supply = <&vcc5v>;
446 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php