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

TOMOYO Linux Cross Reference
Linux/scripts/dtc/include-prefixes/arm64/amlogic/meson-gx-libretech-pc.dtsi

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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.12 ] ~ [ 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                 clocks = <&clkc CLKID_MPLL0>,
198                          <&clkc CLKID_MPLL1>,
199                          <&clkc CLKID_MPLL2>;
200 
201                 assigned-clocks = <&clkc CLKID_MPLL0>,
202                                   <&clkc CLKID_MPLL1>,
203                                   <&clkc CLKID_MPLL2>;
204                 assigned-clock-parents = <0>, <0>, <0>;
205                 assigned-clock-rates = <294912000>,
206                                        <270950400>,
207                                        <393216000>;
208 
209                 dai-link-0 {
210                         sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
211                 };
212 
213                 dai-link-1 {
214                         sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
215                         dai-format = "i2s";
216                         mclk-fs = <256>;
217 
218                         codec-0 {
219                                 sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
220                         };
221 
222                         codec-1 {
223                                 sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
224                         };
225                 };
226 
227                 dai-link-2 {
228                         sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
229 
230                         codec-0 {
231                                 sound-dai = <&hdmi_tx>;
232                         };
233                 };
234 
235                 dai-link-3 {
236                         sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
237 
238                         codec-0 {
239                                 sound-dai = <&acodec>;
240                         };
241                 };
242         };
243 };
244 
245 &acodec {
246         AVDD-supply = <&vddio_ao18>;
247         status = "okay";
248 };
249 
250 &aiu {
251         status = "okay";
252 };
253 
254 &cec_AO {
255         pinctrl-0 = <&ao_cec_pins>;
256         pinctrl-names = "default";
257         hdmi-phandle = <&hdmi_tx>;
258         status = "okay";
259 };
260 
261 &cvbs_vdac_port {
262         cvbs_vdac_out: endpoint {
263                 remote-endpoint = <&cvbs_connector_in>;
264         };
265 };
266 
267 &ethmac {
268         pinctrl-0 = <&eth_pins>, <&eth_phy_irq_pins>;
269         pinctrl-names = "default";
270         phy-handle = <&external_phy>;
271         amlogic,tx-delay-ns = <2>;
272         phy-mode = "rgmii";
273         status = "okay";
274 };
275 
276 &external_mdio {
277         external_phy: ethernet-phy@0 {
278                 reg = <0>;
279                 max-speed = <1000>;
280                 reset-assert-us = <10000>;
281                 reset-deassert-us = <30000>;
282                 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
283                 interrupt-parent = <&gpio_intc>;
284                 interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
285         };
286 };
287 
288 &pinctrl_periphs {
289         /*
290          * Make sure the reset pin of the usb HUB is driven high to take
291          * it out of reset.
292          */
293         usb1_rst_pins: usb1_rst_irq {
294                 mux {
295                         groups = "GPIODV_3";
296                         function = "gpio_periphs";
297                         bias-disable;
298                         output-high;
299                 };
300         };
301 
302         /* Make sure the phy irq pin is properly configured as input */
303         eth_phy_irq_pins: eth_phy_irq {
304                 mux {
305                         groups = "GPIOZ_15";
306                         function = "gpio_periphs";
307                         bias-disable;
308                         output-disable;
309                 };
310         };
311 };
312 
313 &hdmi_tx {
314         pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
315         pinctrl-names = "default";
316         hdmi-supply = <&vcc5v>;
317         status = "okay";
318 };
319 
320 &hdmi_tx_tmds_port {
321         hdmi_tx_tmds_out: endpoint {
322                 remote-endpoint = <&hdmi_connector_in>;
323         };
324 };
325 
326 &ir {
327         pinctrl-0 = <&remote_input_ao_pins>;
328         pinctrl-names = "default";
329         status = "okay";
330 };
331 
332 &i2c_C {
333         pinctrl-0 = <&i2c_c_dv18_pins>;
334         pinctrl-names = "default";
335         status = "okay";
336 
337         rtc: rtc@51 {
338                 reg = <0x51>;
339                 compatible = "nxp,pcf8563";
340                 #clock-cells = <0>;
341                 clock-output-names = "rtc_clkout";
342         };
343 };
344 
345 &pwm_AO_ab {
346         pinctrl-0 = <&pwm_ao_a_3_pins>;
347         pinctrl-names = "default";
348         clocks = <&clkc CLKID_FCLK_DIV4>;
349         clock-names = "clkin0";
350         status = "okay";
351 };
352 
353 &pwm_ab {
354         pinctrl-0 = <&pwm_b_pins>;
355         pinctrl-names = "default";
356         clocks = <&clkc CLKID_FCLK_DIV4>;
357         clock-names = "clkin0";
358         status = "okay";
359 };
360 
361 &pwm_ef {
362         pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
363         pinctrl-names = "default";
364         clocks = <&clkc CLKID_FCLK_DIV4>;
365         clock-names = "clkin0";
366         status = "okay";
367 };
368 
369 &saradc {
370         vref-supply = <&vddio_ao18>;
371         status = "okay";
372 };
373 
374 /* SD card */
375 &sd_emmc_b {
376         pinctrl-0 = <&sdcard_pins>;
377         pinctrl-1 = <&sdcard_clk_gate_pins>;
378         pinctrl-names = "default", "clk-gate";
379 
380         bus-width = <4>;
381         cap-sd-highspeed;
382         sd-uhs-sdr12;
383         sd-uhs-sdr25;
384         sd-uhs-sdr50;
385         sd-uhs-ddr50;
386         max-frequency = <200000000>;
387         disable-wp;
388 
389         cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
390 
391         vmmc-supply = <&vcc_card>;
392         vqmmc-supply = <&vddio_card>;
393 
394         status = "okay";
395 };
396 
397 /* eMMC */
398 &sd_emmc_c {
399         pinctrl-0 = <&emmc_pins>;
400         pinctrl-1 = <&emmc_clk_gate_pins>;
401         pinctrl-names = "default", "clk-gate";
402 
403         bus-width = <8>;
404         cap-mmc-highspeed;
405         mmc-ddr-1_8v;
406         mmc-hs200-1_8v;
407         max-frequency = <200000000>;
408         disable-wp;
409 
410         mmc-pwrseq = <&emmc_pwrseq>;
411         vmmc-supply = <&vddio_ao3v3>;
412         vqmmc-supply = <&vddio_boot>;
413 
414         status = "okay";
415 };
416 
417 &spifc {
418         pinctrl-0 = <&nor_pins>;
419         pinctrl-names = "default";
420         status = "okay";
421 
422         gd25lq128: flash@0 {
423                 compatible = "jedec,spi-nor";
424                 #address-cells = <1>;
425                 #size-cells = <1>;
426                 reg = <0>;
427                 spi-max-frequency = <12000000>;
428         };
429 };
430 
431 &uart_AO {
432         pinctrl-0 = <&uart_ao_a_pins>;
433         pinctrl-names = "default";
434         status = "okay";
435 };
436 
437 &usb {
438         status = "okay";
439         dr_mode = "host";
440 };
441 
442 &usb2_phy0 {
443         pinctrl-0 = <&usb1_rst_pins>;
444         pinctrl-names = "default";
445         phy-supply = <&vcc5v>;
446 };
447 
448 &usb2_phy1 {
449         phy-supply = <&vcc5v>;
450 };

~ [ 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