diff options
author | Olof Johansson <olof@lixom.net> | 2019-06-25 08:52:25 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2019-06-25 08:52:25 -0400 |
commit | d78cda5aa0a0a9b75b650150e258c277d3207d45 (patch) | |
tree | c3dc41be5acfbbdd14b8dd561f9e2201acc5407d | |
parent | 37937ee73ba4d24850df666261f5243d611d1cc5 (diff) | |
parent | 50b617a61874a136d9c4fd75e9cccc7e2f9a03c8 (diff) |
Merge tag 'amlogic-dt64' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dt
arm64: dts: Amlogic updates for v5.3
Highlights:
- new SoC: S922X (G12B family, A73/A53 big.LITTLE)
- new board: Hardkernel odroid-N2 (SoC: G12B S922X)
- add/use ethernet PHY interrupt/reset lines
- G12A: add/enable audio, PWM, IR, i2c, SD/eMMC, WiFi, bluetooth, network
- gxbb-vega-s95 board: fix WiFi/BT, enable more peripherals
* tag 'amlogic-dt64' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: (79 commits)
arm64: dts: meson: g12a: x96-max: add the Ethernet PHY interrupt line
arm64: dts: meson: g12b: odroid-n2: add the Ethernet PHY interrupt line
arm64: dts: meson: g12b: odroid-n2: add the Ethernet PHY reset line
arm64: dts: meson: use the generic Ethernet PHY reset GPIO bindings
arm64: dts: meson: g12a: x96-max: fix the Ethernet PHY reset line
arm64: dts: meson: g12a: sort sdio nodes correctly
arm64: dts: meson-g12a-x96-max: add sound card
arm64: dts: meson-g12b-odroid-n2: add sound card
arm64: dts: meson: sei510: add sound card
arm64: dts: meson: sei510: add max98357a DAC
ASoC: meson: add tohdmitx DT bindings
arm64: dts: meson: g12a: add the GPIO interrupt controller
arm64: dts: meson-g12a-x96-max: bump bluetooth bus speed to 2Mbaud/s
arm64: dts: meson-g12a-sei510: bump bluetooth bus speed to 2Mbaud/s
arm64: dts: meson-g12a-x96-max: add 32k clock to bluetooth node
arm64: dts: meson-g12a-sei510: add 32k clock to bluetooth node
arm64: dts: meson-g12a-sei510: Enable Wifi SDIO module
arm64: dts: meson-g12a-x96-max: Enable Wifi SDIO Module
arm64: dts: meson-g12a-x96-max: add support for sdcard and emmc
arm64: dts: meson: g12a: add SDIO controller
...
Signed-off-by: Olof Johansson <olof@lixom.net>
38 files changed, 3521 insertions, 350 deletions
diff --git a/Documentation/devicetree/bindings/arm/amlogic.txt b/Documentation/devicetree/bindings/arm/amlogic.txt deleted file mode 100644 index 061f7b98a07f..000000000000 --- a/Documentation/devicetree/bindings/arm/amlogic.txt +++ /dev/null | |||
@@ -1,142 +0,0 @@ | |||
1 | Amlogic MesonX device tree bindings | ||
2 | ------------------------------------------- | ||
3 | |||
4 | Work in progress statement: | ||
5 | |||
6 | Device tree files and bindings applying to Amlogic SoCs and boards are | ||
7 | considered "unstable". Any Amlogic device tree binding may change at | ||
8 | any time. Be sure to use a device tree binary and a kernel image | ||
9 | generated from the same source tree. | ||
10 | |||
11 | Please refer to Documentation/devicetree/bindings/ABI.txt for a definition of a | ||
12 | stable binding/ABI. | ||
13 | |||
14 | --------------------------------------------------------------- | ||
15 | |||
16 | Boards with the Amlogic Meson6 SoC shall have the following properties: | ||
17 | Required root node property: | ||
18 | compatible: "amlogic,meson6" | ||
19 | |||
20 | Boards with the Amlogic Meson8 SoC shall have the following properties: | ||
21 | Required root node property: | ||
22 | compatible: "amlogic,meson8"; | ||
23 | |||
24 | Boards with the Amlogic Meson8b SoC shall have the following properties: | ||
25 | Required root node property: | ||
26 | compatible: "amlogic,meson8b"; | ||
27 | |||
28 | Boards with the Amlogic Meson8m2 SoC shall have the following properties: | ||
29 | Required root node property: | ||
30 | compatible: "amlogic,meson8m2"; | ||
31 | |||
32 | Boards with the Amlogic Meson GXBaby SoC shall have the following properties: | ||
33 | Required root node property: | ||
34 | compatible: "amlogic,meson-gxbb"; | ||
35 | |||
36 | Boards with the Amlogic Meson GXL S905X SoC shall have the following properties: | ||
37 | Required root node property: | ||
38 | compatible: "amlogic,s905x", "amlogic,meson-gxl"; | ||
39 | |||
40 | Boards with the Amlogic Meson GXL S905D SoC shall have the following properties: | ||
41 | Required root node property: | ||
42 | compatible: "amlogic,s905d", "amlogic,meson-gxl"; | ||
43 | |||
44 | Boards with the Amlogic Meson GXL S805X SoC shall have the following properties: | ||
45 | Required root node property: | ||
46 | compatible: "amlogic,s805x", "amlogic,meson-gxl"; | ||
47 | |||
48 | Boards with the Amlogic Meson GXL S905W SoC shall have the following properties: | ||
49 | Required root node property: | ||
50 | compatible: "amlogic,s905w", "amlogic,meson-gxl"; | ||
51 | |||
52 | Boards with the Amlogic Meson GXM S912 SoC shall have the following properties: | ||
53 | Required root node property: | ||
54 | compatible: "amlogic,s912", "amlogic,meson-gxm"; | ||
55 | |||
56 | Boards with the Amlogic Meson AXG A113D SoC shall have the following properties: | ||
57 | Required root node property: | ||
58 | compatible: "amlogic,a113d", "amlogic,meson-axg"; | ||
59 | |||
60 | Boards with the Amlogic Meson G12A S905D2 SoC shall have the following properties: | ||
61 | Required root node property: | ||
62 | compatible: "amlogic,g12a"; | ||
63 | |||
64 | Board compatible values (alphabetically, grouped by SoC): | ||
65 | |||
66 | - "geniatech,atv1200" (Meson6) | ||
67 | |||
68 | - "minix,neo-x8" (Meson8) | ||
69 | |||
70 | - "endless,ec100" (Meson8b) | ||
71 | - "hardkernel,odroid-c1" (Meson8b) | ||
72 | - "tronfy,mxq" (Meson8b) | ||
73 | |||
74 | - "tronsmart,mxiii-plus" (Meson8m2) | ||
75 | |||
76 | - "amlogic,p200" (Meson gxbb) | ||
77 | - "amlogic,p201" (Meson gxbb) | ||
78 | - "friendlyarm,nanopi-k2" (Meson gxbb) | ||
79 | - "hardkernel,odroid-c2" (Meson gxbb) | ||
80 | - "nexbox,a95x" (Meson gxbb or Meson gxl s905x) | ||
81 | - "tronsmart,vega-s95-pro", "tronsmart,vega-s95" (Meson gxbb) | ||
82 | - "tronsmart,vega-s95-meta", "tronsmart,vega-s95" (Meson gxbb) | ||
83 | - "tronsmart,vega-s95-telos", "tronsmart,vega-s95" (Meson gxbb) | ||
84 | - "wetek,hub" (Meson gxbb) | ||
85 | - "wetek,play2" (Meson gxbb) | ||
86 | |||
87 | - "amlogic,p212" (Meson gxl s905x) | ||
88 | - "hwacom,amazetv" (Meson gxl s905x) | ||
89 | - "khadas,vim" (Meson gxl s905x) | ||
90 | - "libretech,cc" (Meson gxl s905x) | ||
91 | |||
92 | - "amlogic,p230" (Meson gxl s905d) | ||
93 | - "amlogic,p231" (Meson gxl s905d) | ||
94 | - "phicomm,n1" (Meson gxl s905d) | ||
95 | |||
96 | - "amlogic,p241" (Meson gxl s805x) | ||
97 | - "libretech,aml-s805x-ac" (Meson gxl s805x) | ||
98 | |||
99 | - "amlogic,p281" (Meson gxl s905w) | ||
100 | - "oranth,tx3-mini" (Meson gxl s905w) | ||
101 | |||
102 | - "amlogic,q200" (Meson gxm s912) | ||
103 | - "amlogic,q201" (Meson gxm s912) | ||
104 | - "khadas,vim2" (Meson gxm s912) | ||
105 | - "kingnovel,r-box-pro" (Meson gxm S912) | ||
106 | - "nexbox,a1" (Meson gxm s912) | ||
107 | - "tronsmart,vega-s96" (Meson gxm s912) | ||
108 | |||
109 | - "amlogic,s400" (Meson axg a113d) | ||
110 | |||
111 | - "amlogic,u200" (Meson g12a s905d2) | ||
112 | - "amediatech,x96-max" (Meson g12a s905x2) | ||
113 | - "seirobotics,sei510" (Meson g12a s905x2) | ||
114 | |||
115 | Amlogic Meson Firmware registers Interface | ||
116 | ------------------------------------------ | ||
117 | |||
118 | The Meson SoCs have a register bank with status and data shared with the | ||
119 | secure firmware. | ||
120 | |||
121 | Required properties: | ||
122 | - compatible: For Meson GX SoCs, must be "amlogic,meson-gx-ao-secure", "syscon" | ||
123 | |||
124 | Properties should indentify components of this register interface : | ||
125 | |||
126 | Meson GX SoC Information | ||
127 | ------------------------ | ||
128 | A firmware register encodes the SoC type, package and revision information on | ||
129 | the Meson GX SoCs. | ||
130 | If present, the following property should be added : | ||
131 | |||
132 | Optional properties: | ||
133 | - amlogic,has-chip-id: If present, the interface gives the current SoC version. | ||
134 | |||
135 | Example | ||
136 | ------- | ||
137 | |||
138 | ao-secure@140 { | ||
139 | compatible = "amlogic,meson-gx-ao-secure", "syscon"; | ||
140 | reg = <0x0 0x140 0x0 0x140>; | ||
141 | amlogic,has-chip-id; | ||
142 | }; | ||
diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml new file mode 100644 index 000000000000..325c6fd3566d --- /dev/null +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml | |||
@@ -0,0 +1,144 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | ||
2 | %YAML 1.2 | ||
3 | --- | ||
4 | $id: http://devicetree.org/schemas/arm/amlogic.yaml# | ||
5 | $schema: http://devicetree.org/meta-schemas/core.yaml# | ||
6 | |||
7 | title: Amlogic MesonX device tree bindings | ||
8 | |||
9 | maintainers: | ||
10 | - Kevin Hilman <khilman@baylibre.com> | ||
11 | |||
12 | description: |+ | ||
13 | Work in progress statement: | ||
14 | |||
15 | Device tree files and bindings applying to Amlogic SoCs and boards are | ||
16 | considered "unstable". Any Amlogic device tree binding may change at | ||
17 | any time. Be sure to use a device tree binary and a kernel image | ||
18 | generated from the same source tree. | ||
19 | |||
20 | Please refer to Documentation/devicetree/bindings/ABI.txt for a definition of a | ||
21 | stable binding/ABI. | ||
22 | |||
23 | properties: | ||
24 | $nodename: | ||
25 | const: '/' | ||
26 | compatible: | ||
27 | oneOf: | ||
28 | - description: Boards with the Amlogic Meson6 SoC | ||
29 | items: | ||
30 | - enum: | ||
31 | - geniatech,atv1200 | ||
32 | - const: amlogic,meson6 | ||
33 | |||
34 | - description: Boards with the Amlogic Meson8 SoC | ||
35 | items: | ||
36 | - enum: | ||
37 | - minix,neo-x8 | ||
38 | - const: amlogic,meson8 | ||
39 | |||
40 | - description: Boards with the Amlogic Meson8m2 SoC | ||
41 | items: | ||
42 | - enum: | ||
43 | - tronsmart,mxiii-plus | ||
44 | - const: amlogic,meson8m2 | ||
45 | |||
46 | - description: Boards with the Amlogic Meson8b SoC | ||
47 | items: | ||
48 | - enum: | ||
49 | - endless,ec100 | ||
50 | - hardkernel,odroid-c1 | ||
51 | - tronfy,mxq | ||
52 | - const: amlogic,meson8b | ||
53 | |||
54 | - description: Boards with the Amlogic Meson GXBaby SoC | ||
55 | items: | ||
56 | - enum: | ||
57 | - amlogic,p200 | ||
58 | - amlogic,p201 | ||
59 | - friendlyarm,nanopi-k2 | ||
60 | - hardkernel,odroid-c2 | ||
61 | - nexbox,a95x | ||
62 | - wetek,hub | ||
63 | - wetek,play2 | ||
64 | - const: amlogic,meson-gxbb | ||
65 | |||
66 | - description: Tronsmart Vega S95 devices | ||
67 | items: | ||
68 | - enum: | ||
69 | - tronsmart,vega-s95-pro | ||
70 | - tronsmart,vega-s95-meta | ||
71 | - tronsmart,vega-s95-telos | ||
72 | - const: tronsmart,vega-s95 | ||
73 | - const: amlogic,meson-gxbb | ||
74 | |||
75 | - description: Boards with the Amlogic Meson GXL S805X SoC | ||
76 | items: | ||
77 | - enum: | ||
78 | - amlogic,p241 | ||
79 | - libretech,aml-s805x-ac | ||
80 | - const: amlogic,s805x | ||
81 | - const: amlogic,meson-gxl | ||
82 | |||
83 | - description: Boards with the Amlogic Meson GXL S905W SoC | ||
84 | items: | ||
85 | - enum: | ||
86 | - amlogic,p281 | ||
87 | - oranth,tx3-mini | ||
88 | - const: amlogic,s905w | ||
89 | - const: amlogic,meson-gxl | ||
90 | |||
91 | - description: Boards with the Amlogic Meson GXL S905X SoC | ||
92 | items: | ||
93 | - enum: | ||
94 | - amediatech,x96-max | ||
95 | - amlogic,p212 | ||
96 | - hwacom,amazetv | ||
97 | - khadas,vim | ||
98 | - libretech,cc | ||
99 | - nexbox,a95x | ||
100 | - seirobotics,sei510 | ||
101 | - const: amlogic,s905x | ||
102 | - const: amlogic,meson-gxl | ||
103 | |||
104 | - description: Boards with the Amlogic Meson GXL S905D SoC | ||
105 | items: | ||
106 | - enum: | ||
107 | - amlogic,p230 | ||
108 | - amlogic,p231 | ||
109 | - phicomm,n1 | ||
110 | - const: amlogic,s905d | ||
111 | - const: amlogic,meson-gxl | ||
112 | |||
113 | - description: Boards with the Amlogic Meson GXM S912 SoC | ||
114 | items: | ||
115 | - enum: | ||
116 | - amlogic,q200 | ||
117 | - amlogic,q201 | ||
118 | - khadas,vim2 | ||
119 | - kingnovel,r-box-pro | ||
120 | - nexbox,a1 | ||
121 | - tronsmart,vega-s96 | ||
122 | - const: amlogic,s912 | ||
123 | - const: amlogic,meson-gxm | ||
124 | |||
125 | - description: Boards with the Amlogic Meson AXG A113D SoC | ||
126 | items: | ||
127 | - enum: | ||
128 | - amlogic,s400 | ||
129 | - const: amlogic,a113d | ||
130 | - const: amlogic,meson-axg | ||
131 | |||
132 | - description: Boards with the Amlogic Meson G12A S905D2 SoC | ||
133 | items: | ||
134 | - enum: | ||
135 | - amlogic,u200 | ||
136 | - const: amlogic,g12a | ||
137 | |||
138 | - description: Boards with the Amlogic Meson G12B S922X SoC | ||
139 | items: | ||
140 | - enum: | ||
141 | - hardkernel,odroid-n2 | ||
142 | - const: amlogic,g12b | ||
143 | |||
144 | ... | ||
diff --git a/Documentation/devicetree/bindings/arm/amlogic/amlogic,meson-gx-ao-secure.txt b/Documentation/devicetree/bindings/arm/amlogic/amlogic,meson-gx-ao-secure.txt new file mode 100644 index 000000000000..c67d9f48fb91 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/amlogic/amlogic,meson-gx-ao-secure.txt | |||
@@ -0,0 +1,28 @@ | |||
1 | Amlogic Meson Firmware registers Interface | ||
2 | ------------------------------------------ | ||
3 | |||
4 | The Meson SoCs have a register bank with status and data shared with the | ||
5 | secure firmware. | ||
6 | |||
7 | Required properties: | ||
8 | - compatible: For Meson GX SoCs, must be "amlogic,meson-gx-ao-secure", "syscon" | ||
9 | |||
10 | Properties should indentify components of this register interface : | ||
11 | |||
12 | Meson GX SoC Information | ||
13 | ------------------------ | ||
14 | A firmware register encodes the SoC type, package and revision information on | ||
15 | the Meson GX SoCs. | ||
16 | If present, the following property should be added : | ||
17 | |||
18 | Optional properties: | ||
19 | - amlogic,has-chip-id: If present, the interface gives the current SoC version. | ||
20 | |||
21 | Example | ||
22 | ------- | ||
23 | |||
24 | ao-secure@140 { | ||
25 | compatible = "amlogic,meson-gx-ao-secure", "syscon"; | ||
26 | reg = <0x0 0x140 0x0 0x140>; | ||
27 | amlogic,has-chip-id; | ||
28 | }; | ||
diff --git a/Documentation/devicetree/bindings/sound/amlogic,g12a-tohdmitx.txt b/Documentation/devicetree/bindings/sound/amlogic,g12a-tohdmitx.txt new file mode 100644 index 000000000000..aa6c35570d31 --- /dev/null +++ b/Documentation/devicetree/bindings/sound/amlogic,g12a-tohdmitx.txt | |||
@@ -0,0 +1,55 @@ | |||
1 | * Amlogic HDMI Tx control glue | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: "amlogic,g12a-tohdmitx" | ||
5 | - reg: physical base address of the controller and length of memory | ||
6 | mapped region. | ||
7 | - #sound-dai-cells: should be 1. | ||
8 | |||
9 | Example on the S905X2 SoC: | ||
10 | |||
11 | tohdmitx: audio-controller@744 { | ||
12 | compatible = "amlogic,g12a-tohdmitx"; | ||
13 | reg = <0x0 0x744 0x0 0x4>; | ||
14 | #sound-dai-cells = <1>; | ||
15 | }; | ||
16 | |||
17 | Example of an 'amlogic,axg-sound-card': | ||
18 | |||
19 | sound { | ||
20 | compatible = "amlogic,axg-sound-card"; | ||
21 | |||
22 | [...] | ||
23 | |||
24 | dai-link-x { | ||
25 | sound-dai = <&tdmif_a>; | ||
26 | dai-format = "i2s"; | ||
27 | dai-tdm-slot-tx-mask-0 = <1 1>; | ||
28 | |||
29 | codec-0 { | ||
30 | sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; | ||
31 | }; | ||
32 | |||
33 | codec-1 { | ||
34 | sound-dai = <&external_dac>; | ||
35 | }; | ||
36 | }; | ||
37 | |||
38 | dai-link-y { | ||
39 | sound-dai = <&tdmif_c>; | ||
40 | dai-format = "i2s"; | ||
41 | dai-tdm-slot-tx-mask-0 = <1 1>; | ||
42 | |||
43 | codec { | ||
44 | sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>; | ||
45 | }; | ||
46 | }; | ||
47 | |||
48 | dai-link-z { | ||
49 | sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; | ||
50 | |||
51 | codec { | ||
52 | sound-dai = <&hdmi_tx>; | ||
53 | }; | ||
54 | }; | ||
55 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile index e129c03ced14..07b861fe5fa5 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile | |||
@@ -3,6 +3,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb | |||
3 | dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb | 3 | dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb |
4 | dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb | 4 | dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb |
5 | dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb | 5 | dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb |
6 | dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb | ||
6 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb | 7 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb |
7 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb | 8 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb |
8 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb | 9 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb |
diff --git a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts index 75fe1a2c49d0..4cd2d5951822 100644 --- a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts +++ b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts | |||
@@ -482,8 +482,8 @@ | |||
482 | 482 | ||
483 | /* emmc storage */ | 483 | /* emmc storage */ |
484 | &sd_emmc_c { | 484 | &sd_emmc_c { |
485 | status = "disabled"; | 485 | status = "okay"; |
486 | pinctrl-0 = <&emmc_pins>; | 486 | pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; |
487 | pinctrl-1 = <&emmc_clk_gate_pins>; | 487 | pinctrl-1 = <&emmc_clk_gate_pins>; |
488 | pinctrl-names = "default", "clk-gate"; | 488 | pinctrl-names = "default", "clk-gate"; |
489 | 489 | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi index 34704fecf756..6219337033a0 100644 --- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi | |||
@@ -171,7 +171,9 @@ | |||
171 | ranges; | 171 | ranges; |
172 | 172 | ||
173 | ethmac: ethernet@ff3f0000 { | 173 | ethmac: ethernet@ff3f0000 { |
174 | compatible = "amlogic,meson-axg-dwmac", "snps,dwmac"; | 174 | compatible = "amlogic,meson-axg-dwmac", |
175 | "snps,dwmac-3.70a", | ||
176 | "snps,dwmac"; | ||
175 | reg = <0x0 0xff3f0000 0x0 0x10000 | 177 | reg = <0x0 0xff3f0000 0x0 0x10000 |
176 | 0x0 0xff634540 0x0 0x8>; | 178 | 0x0 0xff634540 0x0 0x8>; |
177 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | 179 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; |
@@ -299,7 +301,7 @@ | |||
299 | }; | 301 | }; |
300 | 302 | ||
301 | emmc_pins: emmc { | 303 | emmc_pins: emmc { |
302 | mux { | 304 | mux-0 { |
303 | groups = "emmc_nand_d0", | 305 | groups = "emmc_nand_d0", |
304 | "emmc_nand_d1", | 306 | "emmc_nand_d1", |
305 | "emmc_nand_d2", | 307 | "emmc_nand_d2", |
@@ -308,14 +310,26 @@ | |||
308 | "emmc_nand_d5", | 310 | "emmc_nand_d5", |
309 | "emmc_nand_d6", | 311 | "emmc_nand_d6", |
310 | "emmc_nand_d7", | 312 | "emmc_nand_d7", |
311 | "emmc_clk", | 313 | "emmc_cmd"; |
312 | "emmc_cmd", | 314 | function = "emmc"; |
313 | "emmc_ds"; | 315 | bias-pull-up; |
316 | }; | ||
317 | |||
318 | mux-1 { | ||
319 | groups = "emmc_clk"; | ||
314 | function = "emmc"; | 320 | function = "emmc"; |
315 | bias-disable; | 321 | bias-disable; |
316 | }; | 322 | }; |
317 | }; | 323 | }; |
318 | 324 | ||
325 | emmc_ds_pins: emmc_ds { | ||
326 | mux { | ||
327 | groups = "emmc_ds"; | ||
328 | function = "emmc"; | ||
329 | bias-pull-down; | ||
330 | }; | ||
331 | }; | ||
332 | |||
319 | emmc_clk_gate_pins: emmc_clk_gate { | 333 | emmc_clk_gate_pins: emmc_clk_gate { |
320 | mux { | 334 | mux { |
321 | groups = "BOOT_8"; | 335 | groups = "BOOT_8"; |
@@ -559,13 +573,18 @@ | |||
559 | }; | 573 | }; |
560 | 574 | ||
561 | sdio_pins: sdio { | 575 | sdio_pins: sdio { |
562 | mux { | 576 | mux-0 { |
563 | groups = "sdio_d0", | 577 | groups = "sdio_d0", |
564 | "sdio_d1", | 578 | "sdio_d1", |
565 | "sdio_d2", | 579 | "sdio_d2", |
566 | "sdio_d3", | 580 | "sdio_d3", |
567 | "sdio_cmd", | 581 | "sdio_cmd"; |
568 | "sdio_clk"; | 582 | function = "sdio"; |
583 | bias-pull-up; | ||
584 | }; | ||
585 | |||
586 | mux-1 { | ||
587 | groups = "sdio_clk"; | ||
569 | function = "sdio"; | 588 | function = "sdio"; |
570 | bias-disable; | 589 | bias-disable; |
571 | }; | 590 | }; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts index 34b40587e5ef..c7a87368850b 100644 --- a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts +++ b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts | |||
@@ -9,15 +9,12 @@ | |||
9 | #include <dt-bindings/gpio/gpio.h> | 9 | #include <dt-bindings/gpio/gpio.h> |
10 | #include <dt-bindings/input/input.h> | 10 | #include <dt-bindings/input/input.h> |
11 | #include <dt-bindings/gpio/meson-g12a-gpio.h> | 11 | #include <dt-bindings/gpio/meson-g12a-gpio.h> |
12 | #include <dt-bindings/sound/meson-g12a-tohdmitx.h> | ||
12 | 13 | ||
13 | / { | 14 | / { |
14 | compatible = "seirobotics,sei510", "amlogic,g12a"; | 15 | compatible = "seirobotics,sei510", "amlogic,g12a"; |
15 | model = "SEI Robotics SEI510"; | 16 | model = "SEI Robotics SEI510"; |
16 | 17 | ||
17 | aliases { | ||
18 | serial0 = &uart_AO; | ||
19 | }; | ||
20 | |||
21 | adc_keys { | 18 | adc_keys { |
22 | compatible = "adc-keys"; | 19 | compatible = "adc-keys"; |
23 | io-channels = <&saradc 0>; | 20 | io-channels = <&saradc 0>; |
@@ -31,13 +28,25 @@ | |||
31 | }; | 28 | }; |
32 | }; | 29 | }; |
33 | 30 | ||
34 | ao_5v: regulator-ao_5v { | 31 | aliases { |
35 | compatible = "regulator-fixed"; | 32 | serial0 = &uart_AO; |
36 | regulator-name = "AO_5V"; | 33 | ethernet0 = ðmac; |
37 | regulator-min-microvolt = <5000000>; | 34 | }; |
38 | regulator-max-microvolt = <5000000>; | 35 | |
39 | vin-supply = <&dc_in>; | 36 | mono_dac: audio-codec-0 { |
40 | regulator-always-on; | 37 | compatible = "maxim,max98357a"; |
38 | #sound-dai-cells = <0>; | ||
39 | sound-name-prefix = "U16"; | ||
40 | sdmode-gpios = <&gpio GPIOX_8 GPIO_ACTIVE_HIGH>; | ||
41 | }; | ||
42 | |||
43 | dmics: audio-codec-1 { | ||
44 | #sound-dai-cells = <0>; | ||
45 | compatible = "dmic-codec"; | ||
46 | num-channels = <2>; | ||
47 | wakeup-delay-ms = <50>; | ||
48 | status = "okay"; | ||
49 | sound-name-prefix = "MIC"; | ||
41 | }; | 50 | }; |
42 | 51 | ||
43 | chosen { | 52 | chosen { |
@@ -54,21 +63,9 @@ | |||
54 | }; | 63 | }; |
55 | }; | 64 | }; |
56 | 65 | ||
57 | dc_in: regulator-dc_in { | 66 | emmc_pwrseq: emmc-pwrseq { |
58 | compatible = "regulator-fixed"; | 67 | compatible = "mmc-pwrseq-emmc"; |
59 | regulator-name = "DC_IN"; | 68 | reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; |
60 | regulator-min-microvolt = <5000000>; | ||
61 | regulator-max-microvolt = <5000000>; | ||
62 | regulator-always-on; | ||
63 | }; | ||
64 | |||
65 | emmc_1v8: regulator-emmc_1v8 { | ||
66 | compatible = "regulator-fixed"; | ||
67 | regulator-name = "EMMC_1V8"; | ||
68 | regulator-min-microvolt = <1800000>; | ||
69 | regulator-max-microvolt = <1800000>; | ||
70 | vin-supply = <&vddao_3v3>; | ||
71 | regulator-always-on; | ||
72 | }; | 69 | }; |
73 | 70 | ||
74 | hdmi-connector { | 71 | hdmi-connector { |
@@ -87,12 +84,30 @@ | |||
87 | reg = <0x0 0x0 0x0 0x40000000>; | 84 | reg = <0x0 0x0 0x0 0x40000000>; |
88 | }; | 85 | }; |
89 | 86 | ||
90 | reserved-memory { | 87 | ao_5v: regulator-ao_5v { |
91 | /* TEE Reserved Memory */ | 88 | compatible = "regulator-fixed"; |
92 | bl32_reserved: bl32@5000000 { | 89 | regulator-name = "AO_5V"; |
93 | reg = <0x0 0x05300000 0x0 0x2000000>; | 90 | regulator-min-microvolt = <5000000>; |
94 | no-map; | 91 | regulator-max-microvolt = <5000000>; |
95 | }; | 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 | emmc_1v8: regulator-emmc_1v8 { | ||
105 | compatible = "regulator-fixed"; | ||
106 | regulator-name = "EMMC_1V8"; | ||
107 | regulator-min-microvolt = <1800000>; | ||
108 | regulator-max-microvolt = <1800000>; | ||
109 | vin-supply = <&vddao_3v3>; | ||
110 | regulator-always-on; | ||
96 | }; | 111 | }; |
97 | 112 | ||
98 | vddao_3v3: regulator-vddao_3v3 { | 113 | vddao_3v3: regulator-vddao_3v3 { |
@@ -122,6 +137,146 @@ | |||
122 | vin-supply = <&vddao_3v3>; | 137 | vin-supply = <&vddao_3v3>; |
123 | regulator-always-on; | 138 | regulator-always-on; |
124 | }; | 139 | }; |
140 | |||
141 | reserved-memory { | ||
142 | /* TEE Reserved Memory */ | ||
143 | bl32_reserved: bl32@5000000 { | ||
144 | reg = <0x0 0x05300000 0x0 0x2000000>; | ||
145 | no-map; | ||
146 | }; | ||
147 | }; | ||
148 | |||
149 | sdio_pwrseq: sdio-pwrseq { | ||
150 | compatible = "mmc-pwrseq-simple"; | ||
151 | reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; | ||
152 | clocks = <&wifi32k>; | ||
153 | clock-names = "ext_clock"; | ||
154 | }; | ||
155 | |||
156 | wifi32k: wifi32k { | ||
157 | compatible = "pwm-clock"; | ||
158 | #clock-cells = <0>; | ||
159 | clock-frequency = <32768>; | ||
160 | pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ | ||
161 | }; | ||
162 | |||
163 | sound { | ||
164 | compatible = "amlogic,axg-sound-card"; | ||
165 | model = "G12A-SEI510"; | ||
166 | audio-aux-devs = <&tdmout_a>, <&tdmout_b>, | ||
167 | <&tdmin_a>, <&tdmin_b>; | ||
168 | audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", | ||
169 | "TDMOUT_A IN 1", "FRDDR_B OUT 0", | ||
170 | "TDMOUT_A IN 2", "FRDDR_C OUT 0", | ||
171 | "TDM_A Playback", "TDMOUT_A OUT", | ||
172 | "TDMOUT_B IN 0", "FRDDR_A OUT 1", | ||
173 | "TDMOUT_B IN 1", "FRDDR_B OUT 1", | ||
174 | "TDMOUT_B IN 2", "FRDDR_C OUT 1", | ||
175 | "TDM_B Playback", "TDMOUT_B OUT", | ||
176 | "TODDR_A IN 4", "PDM Capture", | ||
177 | "TODDR_B IN 4", "PDM Capture", | ||
178 | "TODDR_C IN 4", "PDM Capture", | ||
179 | "TDMIN_A IN 0", "TDM_A Capture", | ||
180 | "TDMIN_A IN 3", "TDM_A Loopback", | ||
181 | "TDMIN_B IN 0", "TDM_A Capture", | ||
182 | "TDMIN_B IN 3", "TDM_A Loopback", | ||
183 | "TDMIN_A IN 1", "TDM_B Capture", | ||
184 | "TDMIN_A IN 4", "TDM_B Loopback", | ||
185 | "TDMIN_B IN 1", "TDM_B Capture", | ||
186 | "TDMIN_B IN 4", "TDM_B Loopback", | ||
187 | "TODDR_A IN 0", "TDMIN_A OUT", | ||
188 | "TODDR_B IN 0", "TDMIN_A OUT", | ||
189 | "TODDR_C IN 0", "TDMIN_A OUT", | ||
190 | "TODDR_A IN 1", "TDMIN_B OUT", | ||
191 | "TODDR_B IN 1", "TDMIN_B OUT", | ||
192 | "TODDR_C IN 1", "TDMIN_B OUT"; | ||
193 | |||
194 | assigned-clocks = <&clkc CLKID_MPLL2>, | ||
195 | <&clkc CLKID_MPLL0>, | ||
196 | <&clkc CLKID_MPLL1>; | ||
197 | assigned-clock-parents = <0>, <0>, <0>; | ||
198 | assigned-clock-rates = <294912000>, | ||
199 | <270950400>, | ||
200 | <393216000>; | ||
201 | status = "okay"; | ||
202 | |||
203 | dai-link-0 { | ||
204 | sound-dai = <&frddr_a>; | ||
205 | }; | ||
206 | |||
207 | dai-link-1 { | ||
208 | sound-dai = <&frddr_b>; | ||
209 | }; | ||
210 | |||
211 | dai-link-2 { | ||
212 | sound-dai = <&frddr_c>; | ||
213 | }; | ||
214 | |||
215 | dai-link-3 { | ||
216 | sound-dai = <&toddr_a>; | ||
217 | }; | ||
218 | |||
219 | dai-link-4 { | ||
220 | sound-dai = <&toddr_b>; | ||
221 | }; | ||
222 | |||
223 | dai-link-5 { | ||
224 | sound-dai = <&toddr_c>; | ||
225 | }; | ||
226 | |||
227 | /* internal speaker interface */ | ||
228 | dai-link-6 { | ||
229 | sound-dai = <&tdmif_a>; | ||
230 | dai-format = "i2s"; | ||
231 | dai-tdm-slot-tx-mask-0 = <1 1>; | ||
232 | mclk-fs = <256>; | ||
233 | |||
234 | codec-0 { | ||
235 | sound-dai = <&mono_dac>; | ||
236 | }; | ||
237 | |||
238 | codec-1 { | ||
239 | sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; | ||
240 | }; | ||
241 | }; | ||
242 | |||
243 | /* 8ch hdmi interface */ | ||
244 | dai-link-7 { | ||
245 | sound-dai = <&tdmif_b>; | ||
246 | dai-format = "i2s"; | ||
247 | dai-tdm-slot-tx-mask-0 = <1 1>; | ||
248 | dai-tdm-slot-tx-mask-1 = <1 1>; | ||
249 | dai-tdm-slot-tx-mask-2 = <1 1>; | ||
250 | dai-tdm-slot-tx-mask-3 = <1 1>; | ||
251 | mclk-fs = <256>; | ||
252 | |||
253 | codec@0 { | ||
254 | sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; | ||
255 | }; | ||
256 | }; | ||
257 | |||
258 | /* internal digital mics */ | ||
259 | dai-link-8 { | ||
260 | sound-dai = <&pdm>; | ||
261 | |||
262 | codec { | ||
263 | sound-dai = <&dmics>; | ||
264 | }; | ||
265 | }; | ||
266 | |||
267 | /* hdmi glue */ | ||
268 | dai-link-9 { | ||
269 | sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; | ||
270 | |||
271 | codec { | ||
272 | sound-dai = <&hdmi_tx>; | ||
273 | }; | ||
274 | }; | ||
275 | }; | ||
276 | }; | ||
277 | |||
278 | &arb { | ||
279 | status = "okay"; | ||
125 | }; | 280 | }; |
126 | 281 | ||
127 | &cec_AO { | 282 | &cec_AO { |
@@ -138,27 +293,32 @@ | |||
138 | hdmi-phandle = <&hdmi_tx>; | 293 | hdmi-phandle = <&hdmi_tx>; |
139 | }; | 294 | }; |
140 | 295 | ||
296 | &clkc_audio { | ||
297 | status = "okay"; | ||
298 | }; | ||
299 | |||
141 | &cvbs_vdac_port { | 300 | &cvbs_vdac_port { |
142 | cvbs_vdac_out: endpoint { | 301 | cvbs_vdac_out: endpoint { |
143 | remote-endpoint = <&cvbs_connector_in>; | 302 | remote-endpoint = <&cvbs_connector_in>; |
144 | }; | 303 | }; |
145 | }; | 304 | }; |
146 | 305 | ||
147 | &saradc { | 306 | ðmac { |
148 | status = "okay"; | 307 | status = "okay"; |
149 | vref-supply = <&vddio_ao1v8>; | 308 | phy-handle = <&internal_ephy>; |
309 | phy-mode = "rmii"; | ||
150 | }; | 310 | }; |
151 | 311 | ||
152 | &uart_A { | 312 | &frddr_a { |
153 | status = "okay"; | 313 | status = "okay"; |
154 | pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; | 314 | }; |
155 | pinctrl-names = "default"; | ||
156 | uart-has-rtscts; | ||
157 | 315 | ||
158 | bluetooth { | 316 | &frddr_b { |
159 | compatible = "brcm,bcm43438-bt"; | 317 | status = "okay"; |
160 | shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; | 318 | }; |
161 | }; | 319 | |
320 | &frddr_c { | ||
321 | status = "okay"; | ||
162 | }; | 322 | }; |
163 | 323 | ||
164 | &hdmi_tx { | 324 | &hdmi_tx { |
@@ -173,6 +333,163 @@ | |||
173 | }; | 333 | }; |
174 | }; | 334 | }; |
175 | 335 | ||
336 | &i2c3 { | ||
337 | status = "okay"; | ||
338 | pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; | ||
339 | pinctrl-names = "default"; | ||
340 | }; | ||
341 | |||
342 | &pwm_ef { | ||
343 | status = "okay"; | ||
344 | pinctrl-0 = <&pwm_e_pins>; | ||
345 | pinctrl-names = "default"; | ||
346 | clocks = <&xtal>; | ||
347 | clock-names = "clkin0"; | ||
348 | }; | ||
349 | |||
350 | &pdm { | ||
351 | pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_din1_z_pins>, | ||
352 | <&pdm_din2_z_pins>, <&pdm_din3_z_pins>, | ||
353 | <&pdm_dclk_z_pins>; | ||
354 | pinctrl-names = "default"; | ||
355 | status = "okay"; | ||
356 | }; | ||
357 | |||
358 | &saradc { | ||
359 | status = "okay"; | ||
360 | vref-supply = <&vddio_ao1v8>; | ||
361 | }; | ||
362 | |||
363 | /* SDIO */ | ||
364 | &sd_emmc_a { | ||
365 | status = "okay"; | ||
366 | pinctrl-0 = <&sdio_pins>; | ||
367 | pinctrl-1 = <&sdio_clk_gate_pins>; | ||
368 | pinctrl-names = "default", "clk-gate"; | ||
369 | #address-cells = <1>; | ||
370 | #size-cells = <0>; | ||
371 | |||
372 | bus-width = <4>; | ||
373 | cap-sd-highspeed; | ||
374 | sd-uhs-sdr50; | ||
375 | max-frequency = <100000000>; | ||
376 | |||
377 | non-removable; | ||
378 | disable-wp; | ||
379 | |||
380 | mmc-pwrseq = <&sdio_pwrseq>; | ||
381 | |||
382 | vmmc-supply = <&vddao_3v3>; | ||
383 | vqmmc-supply = <&vddio_ao1v8>; | ||
384 | |||
385 | brcmf: wifi@1 { | ||
386 | reg = <1>; | ||
387 | compatible = "brcm,bcm4329-fmac"; | ||
388 | }; | ||
389 | }; | ||
390 | |||
391 | /* SD card */ | ||
392 | &sd_emmc_b { | ||
393 | status = "okay"; | ||
394 | pinctrl-0 = <&sdcard_c_pins>; | ||
395 | pinctrl-1 = <&sdcard_clk_gate_c_pins>; | ||
396 | pinctrl-names = "default", "clk-gate"; | ||
397 | |||
398 | bus-width = <4>; | ||
399 | cap-sd-highspeed; | ||
400 | max-frequency = <50000000>; | ||
401 | disable-wp; | ||
402 | |||
403 | cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; | ||
404 | vmmc-supply = <&vddao_3v3>; | ||
405 | vqmmc-supply = <&vddao_3v3>; | ||
406 | }; | ||
407 | |||
408 | /* eMMC */ | ||
409 | &sd_emmc_c { | ||
410 | status = "okay"; | ||
411 | pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; | ||
412 | pinctrl-1 = <&emmc_clk_gate_pins>; | ||
413 | pinctrl-names = "default", "clk-gate"; | ||
414 | |||
415 | bus-width = <8>; | ||
416 | cap-mmc-highspeed; | ||
417 | mmc-ddr-1_8v; | ||
418 | mmc-hs200-1_8v; | ||
419 | max-frequency = <200000000>; | ||
420 | non-removable; | ||
421 | disable-wp; | ||
422 | |||
423 | mmc-pwrseq = <&emmc_pwrseq>; | ||
424 | vmmc-supply = <&vddao_3v3>; | ||
425 | vqmmc-supply = <&emmc_1v8>; | ||
426 | }; | ||
427 | |||
428 | &tdmif_a { | ||
429 | pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm_a_fs_pins>, <&tdm_a_sclk_pins>; | ||
430 | pinctrl-names = "default"; | ||
431 | status = "okay"; | ||
432 | |||
433 | assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD0>, | ||
434 | <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD0>; | ||
435 | assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_A_SCLK>, | ||
436 | <&clkc_audio AUD_CLKID_MST_A_LRCLK>; | ||
437 | assigned-clock-rates = <0>, <0>; | ||
438 | }; | ||
439 | |||
440 | &tdmif_b { | ||
441 | status = "okay"; | ||
442 | }; | ||
443 | |||
444 | &tdmin_a { | ||
445 | status = "okay"; | ||
446 | }; | ||
447 | |||
448 | &tdmin_b { | ||
449 | status = "okay"; | ||
450 | }; | ||
451 | |||
452 | &tdmout_a { | ||
453 | status = "okay"; | ||
454 | }; | ||
455 | |||
456 | &tdmout_b { | ||
457 | status = "okay"; | ||
458 | }; | ||
459 | |||
460 | &toddr_a { | ||
461 | status = "okay"; | ||
462 | }; | ||
463 | |||
464 | &toddr_b { | ||
465 | status = "okay"; | ||
466 | }; | ||
467 | |||
468 | &toddr_c { | ||
469 | status = "okay"; | ||
470 | }; | ||
471 | |||
472 | &tohdmitx { | ||
473 | status = "okay"; | ||
474 | }; | ||
475 | |||
476 | &uart_A { | ||
477 | status = "okay"; | ||
478 | pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; | ||
479 | pinctrl-names = "default"; | ||
480 | uart-has-rtscts; | ||
481 | |||
482 | bluetooth { | ||
483 | compatible = "brcm,bcm43438-bt"; | ||
484 | shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; | ||
485 | max-speed = <2000000>; | ||
486 | clocks = <&wifi32k>; | ||
487 | clock-names = "lpo"; | ||
488 | vbat-supply = <&vddao_3v3>; | ||
489 | vddio-supply = <&vddio_ao1v8>; | ||
490 | }; | ||
491 | }; | ||
492 | |||
176 | &uart_AO { | 493 | &uart_AO { |
177 | status = "okay"; | 494 | status = "okay"; |
178 | pinctrl-0 = <&uart_ao_a_pins>; | 495 | pinctrl-0 = <&uart_ao_a_pins>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts index 0e8045b8a915..8551fbd4a488 100644 --- a/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts +++ b/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts | |||
@@ -15,14 +15,12 @@ | |||
15 | 15 | ||
16 | aliases { | 16 | aliases { |
17 | serial0 = &uart_AO; | 17 | serial0 = &uart_AO; |
18 | ethernet0 = ðmac; | ||
18 | }; | 19 | }; |
20 | |||
19 | chosen { | 21 | chosen { |
20 | stdout-path = "serial0:115200n8"; | 22 | stdout-path = "serial0:115200n8"; |
21 | }; | 23 | }; |
22 | memory@0 { | ||
23 | device_type = "memory"; | ||
24 | reg = <0x0 0x0 0x0 0x40000000>; | ||
25 | }; | ||
26 | 24 | ||
27 | cvbs-connector { | 25 | cvbs-connector { |
28 | compatible = "composite-video-connector"; | 26 | compatible = "composite-video-connector"; |
@@ -34,13 +32,9 @@ | |||
34 | }; | 32 | }; |
35 | }; | 33 | }; |
36 | 34 | ||
37 | flash_1v8: regulator-flash_1v8 { | 35 | emmc_pwrseq: emmc-pwrseq { |
38 | compatible = "regulator-fixed"; | 36 | compatible = "mmc-pwrseq-emmc"; |
39 | regulator-name = "FLASH_1V8"; | 37 | reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; |
40 | regulator-min-microvolt = <1800000>; | ||
41 | regulator-max-microvolt = <1800000>; | ||
42 | vin-supply = <&vcc_3v3>; | ||
43 | regulator-always-on; | ||
44 | }; | 38 | }; |
45 | 39 | ||
46 | hdmi-connector { | 40 | hdmi-connector { |
@@ -54,6 +48,20 @@ | |||
54 | }; | 48 | }; |
55 | }; | 49 | }; |
56 | 50 | ||
51 | memory@0 { | ||
52 | device_type = "memory"; | ||
53 | reg = <0x0 0x0 0x0 0x40000000>; | ||
54 | }; | ||
55 | |||
56 | flash_1v8: regulator-flash_1v8 { | ||
57 | compatible = "regulator-fixed"; | ||
58 | regulator-name = "FLASH_1V8"; | ||
59 | regulator-min-microvolt = <1800000>; | ||
60 | regulator-max-microvolt = <1800000>; | ||
61 | vin-supply = <&vcc_3v3>; | ||
62 | regulator-always-on; | ||
63 | }; | ||
64 | |||
57 | main_12v: regulator-main_12v { | 65 | main_12v: regulator-main_12v { |
58 | compatible = "regulator-fixed"; | 66 | compatible = "regulator-fixed"; |
59 | regulator-name = "12V"; | 67 | regulator-name = "12V"; |
@@ -62,6 +70,17 @@ | |||
62 | regulator-always-on; | 70 | regulator-always-on; |
63 | }; | 71 | }; |
64 | 72 | ||
73 | usb_pwr_en: regulator-usb_pwr_en { | ||
74 | compatible = "regulator-fixed"; | ||
75 | regulator-name = "USB_PWR_EN"; | ||
76 | regulator-min-microvolt = <5000000>; | ||
77 | regulator-max-microvolt = <5000000>; | ||
78 | vin-supply = <&vcc_5v>; | ||
79 | |||
80 | gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>; | ||
81 | enable-active-high; | ||
82 | }; | ||
83 | |||
65 | vcc_1v8: regulator-vcc_1v8 { | 84 | vcc_1v8: regulator-vcc_1v8 { |
66 | compatible = "regulator-fixed"; | 85 | compatible = "regulator-fixed"; |
67 | regulator-name = "VCC_1V8"; | 86 | regulator-name = "VCC_1V8"; |
@@ -92,17 +111,6 @@ | |||
92 | enable-active-high; | 111 | enable-active-high; |
93 | }; | 112 | }; |
94 | 113 | ||
95 | usb_pwr_en: regulator-usb_pwr_en { | ||
96 | compatible = "regulator-fixed"; | ||
97 | regulator-name = "USB_PWR_EN"; | ||
98 | regulator-min-microvolt = <5000000>; | ||
99 | regulator-max-microvolt = <5000000>; | ||
100 | vin-supply = <&vcc_5v>; | ||
101 | |||
102 | gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>; | ||
103 | enable-active-high; | ||
104 | }; | ||
105 | |||
106 | vddao_1v8: regulator-vddao_1v8 { | 114 | vddao_1v8: regulator-vddao_1v8 { |
107 | compatible = "regulator-fixed"; | 115 | compatible = "regulator-fixed"; |
108 | regulator-name = "VDDAO_1V8"; | 116 | regulator-name = "VDDAO_1V8"; |
@@ -143,6 +151,12 @@ | |||
143 | }; | 151 | }; |
144 | }; | 152 | }; |
145 | 153 | ||
154 | ðmac { | ||
155 | status = "okay"; | ||
156 | phy-handle = <&internal_ephy>; | ||
157 | phy-mode = "rmii"; | ||
158 | }; | ||
159 | |||
146 | &hdmi_tx { | 160 | &hdmi_tx { |
147 | status = "okay"; | 161 | status = "okay"; |
148 | pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; | 162 | pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; |
@@ -156,6 +170,70 @@ | |||
156 | }; | 170 | }; |
157 | }; | 171 | }; |
158 | 172 | ||
173 | &ir { | ||
174 | status = "okay"; | ||
175 | pinctrl-0 = <&remote_input_ao_pins>; | ||
176 | pinctrl-names = "default"; | ||
177 | }; | ||
178 | |||
179 | /* i2c Touch */ | ||
180 | &i2c0 { | ||
181 | status = "okay"; | ||
182 | pinctrl-0 = <&i2c0_sda_z0_pins>, <&i2c0_sck_z1_pins>; | ||
183 | pinctrl-names = "default"; | ||
184 | }; | ||
185 | |||
186 | /* i2c CM */ | ||
187 | &i2c2 { | ||
188 | status = "okay"; | ||
189 | pinctrl-0 = <&i2c2_sda_z_pins>, <&i2c2_sck_z_pins>; | ||
190 | pinctrl-names = "default"; | ||
191 | }; | ||
192 | |||
193 | /* i2c Audio */ | ||
194 | &i2c3 { | ||
195 | status = "okay"; | ||
196 | pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; | ||
197 | pinctrl-names = "default"; | ||
198 | }; | ||
199 | |||
200 | /* SD card */ | ||
201 | &sd_emmc_b { | ||
202 | status = "okay"; | ||
203 | pinctrl-0 = <&sdcard_c_pins>; | ||
204 | pinctrl-1 = <&sdcard_clk_gate_c_pins>; | ||
205 | pinctrl-names = "default", "clk-gate"; | ||
206 | |||
207 | bus-width = <4>; | ||
208 | cap-sd-highspeed; | ||
209 | max-frequency = <50000000>; | ||
210 | disable-wp; | ||
211 | |||
212 | cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; | ||
213 | vmmc-supply = <&vddao_3v3>; | ||
214 | vqmmc-supply = <&vddao_3v3>; | ||
215 | }; | ||
216 | |||
217 | /* eMMC */ | ||
218 | &sd_emmc_c { | ||
219 | status = "okay"; | ||
220 | pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; | ||
221 | pinctrl-1 = <&emmc_clk_gate_pins>; | ||
222 | pinctrl-names = "default", "clk-gate"; | ||
223 | |||
224 | bus-width = <8>; | ||
225 | cap-mmc-highspeed; | ||
226 | mmc-ddr-1_8v; | ||
227 | mmc-hs200-1_8v; | ||
228 | max-frequency = <200000000>; | ||
229 | non-removable; | ||
230 | disable-wp; | ||
231 | |||
232 | mmc-pwrseq = <&emmc_pwrseq>; | ||
233 | vmmc-supply = <&vcc_3v3>; | ||
234 | vqmmc-supply = <&flash_1v8>; | ||
235 | }; | ||
236 | |||
159 | &uart_AO { | 237 | &uart_AO { |
160 | status = "okay"; | 238 | status = "okay"; |
161 | pinctrl-0 = <&uart_ao_a_pins>; | 239 | pinctrl-0 = <&uart_ao_a_pins>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts index b3d913f28f12..fe4013cca876 100644 --- a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts +++ b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts | |||
@@ -8,6 +8,7 @@ | |||
8 | #include "meson-g12a.dtsi" | 8 | #include "meson-g12a.dtsi" |
9 | #include <dt-bindings/gpio/gpio.h> | 9 | #include <dt-bindings/gpio/gpio.h> |
10 | #include <dt-bindings/gpio/meson-g12a-gpio.h> | 10 | #include <dt-bindings/gpio/meson-g12a-gpio.h> |
11 | #include <dt-bindings/sound/meson-g12a-tohdmitx.h> | ||
11 | 12 | ||
12 | / { | 13 | / { |
13 | compatible = "amediatech,x96-max", "amlogic,u200", "amlogic,g12a"; | 14 | compatible = "amediatech,x96-max", "amlogic,u200", "amlogic,g12a"; |
@@ -15,7 +16,16 @@ | |||
15 | 16 | ||
16 | aliases { | 17 | aliases { |
17 | serial0 = &uart_AO; | 18 | serial0 = &uart_AO; |
19 | ethernet0 = ðmac; | ||
18 | }; | 20 | }; |
21 | |||
22 | spdif_dit: audio-codec-1 { | ||
23 | #sound-dai-cells = <0>; | ||
24 | compatible = "linux,spdif-dit"; | ||
25 | status = "okay"; | ||
26 | sound-name-prefix = "DIT"; | ||
27 | }; | ||
28 | |||
19 | chosen { | 29 | chosen { |
20 | stdout-path = "serial0:115200n8"; | 30 | stdout-path = "serial0:115200n8"; |
21 | }; | 31 | }; |
@@ -45,6 +55,18 @@ | |||
45 | }; | 55 | }; |
46 | }; | 56 | }; |
47 | 57 | ||
58 | emmc_pwrseq: emmc-pwrseq { | ||
59 | compatible = "mmc-pwrseq-emmc"; | ||
60 | reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; | ||
61 | }; | ||
62 | |||
63 | sdio_pwrseq: sdio-pwrseq { | ||
64 | compatible = "mmc-pwrseq-simple"; | ||
65 | reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; | ||
66 | clocks = <&wifi32k>; | ||
67 | clock-names = "ext_clock"; | ||
68 | }; | ||
69 | |||
48 | flash_1v8: regulator-flash_1v8 { | 70 | flash_1v8: regulator-flash_1v8 { |
49 | compatible = "regulator-fixed"; | 71 | compatible = "regulator-fixed"; |
50 | regulator-name = "FLASH_1V8"; | 72 | regulator-name = "FLASH_1V8"; |
@@ -109,6 +131,97 @@ | |||
109 | vin-supply = <&dc_in>; | 131 | vin-supply = <&dc_in>; |
110 | regulator-always-on; | 132 | regulator-always-on; |
111 | }; | 133 | }; |
134 | |||
135 | sound { | ||
136 | compatible = "amlogic,axg-sound-card"; | ||
137 | model = "G12A-X96-MAX"; | ||
138 | audio-aux-devs = <&tdmout_b>; | ||
139 | audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", | ||
140 | "TDMOUT_B IN 1", "FRDDR_B OUT 1", | ||
141 | "TDMOUT_B IN 2", "FRDDR_C OUT 1", | ||
142 | "TDM_B Playback", "TDMOUT_B OUT", | ||
143 | "SPDIFOUT IN 0", "FRDDR_A OUT 3", | ||
144 | "SPDIFOUT IN 1", "FRDDR_B OUT 3", | ||
145 | "SPDIFOUT IN 2", "FRDDR_C OUT 3"; | ||
146 | |||
147 | assigned-clocks = <&clkc CLKID_MPLL2>, | ||
148 | <&clkc CLKID_MPLL0>, | ||
149 | <&clkc CLKID_MPLL1>; | ||
150 | assigned-clock-parents = <0>, <0>, <0>; | ||
151 | assigned-clock-rates = <294912000>, | ||
152 | <270950400>, | ||
153 | <393216000>; | ||
154 | status = "okay"; | ||
155 | |||
156 | dai-link-0 { | ||
157 | sound-dai = <&frddr_a>; | ||
158 | }; | ||
159 | |||
160 | dai-link-1 { | ||
161 | sound-dai = <&frddr_b>; | ||
162 | }; | ||
163 | |||
164 | dai-link-2 { | ||
165 | sound-dai = <&frddr_c>; | ||
166 | }; | ||
167 | |||
168 | /* 8ch hdmi interface */ | ||
169 | dai-link-3 { | ||
170 | sound-dai = <&tdmif_b>; | ||
171 | dai-format = "i2s"; | ||
172 | dai-tdm-slot-tx-mask-0 = <1 1>; | ||
173 | dai-tdm-slot-tx-mask-1 = <1 1>; | ||
174 | dai-tdm-slot-tx-mask-2 = <1 1>; | ||
175 | dai-tdm-slot-tx-mask-3 = <1 1>; | ||
176 | mclk-fs = <256>; | ||
177 | |||
178 | codec { | ||
179 | sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; | ||
180 | }; | ||
181 | }; | ||
182 | |||
183 | /* spdif hdmi or toslink interface */ | ||
184 | dai-link-4 { | ||
185 | sound-dai = <&spdifout>; | ||
186 | |||
187 | codec-0 { | ||
188 | sound-dai = <&spdif_dit>; | ||
189 | }; | ||
190 | |||
191 | codec-1 { | ||
192 | sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>; | ||
193 | }; | ||
194 | }; | ||
195 | |||
196 | /* spdif hdmi interface */ | ||
197 | dai-link-5 { | ||
198 | sound-dai = <&spdifout_b>; | ||
199 | |||
200 | codec { | ||
201 | sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>; | ||
202 | }; | ||
203 | }; | ||
204 | |||
205 | /* hdmi glue */ | ||
206 | dai-link-6 { | ||
207 | sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; | ||
208 | |||
209 | codec { | ||
210 | sound-dai = <&hdmi_tx>; | ||
211 | }; | ||
212 | }; | ||
213 | }; | ||
214 | |||
215 | wifi32k: wifi32k { | ||
216 | compatible = "pwm-clock"; | ||
217 | #clock-cells = <0>; | ||
218 | clock-frequency = <32768>; | ||
219 | pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ | ||
220 | }; | ||
221 | }; | ||
222 | |||
223 | &arb { | ||
224 | status = "okay"; | ||
112 | }; | 225 | }; |
113 | 226 | ||
114 | &cec_AO { | 227 | &cec_AO { |
@@ -125,12 +238,28 @@ | |||
125 | hdmi-phandle = <&hdmi_tx>; | 238 | hdmi-phandle = <&hdmi_tx>; |
126 | }; | 239 | }; |
127 | 240 | ||
241 | &clkc_audio { | ||
242 | status = "okay"; | ||
243 | }; | ||
244 | |||
128 | &cvbs_vdac_port { | 245 | &cvbs_vdac_port { |
129 | cvbs_vdac_out: endpoint { | 246 | cvbs_vdac_out: endpoint { |
130 | remote-endpoint = <&cvbs_connector_in>; | 247 | remote-endpoint = <&cvbs_connector_in>; |
131 | }; | 248 | }; |
132 | }; | 249 | }; |
133 | 250 | ||
251 | &frddr_a { | ||
252 | status = "okay"; | ||
253 | }; | ||
254 | |||
255 | &frddr_b { | ||
256 | status = "okay"; | ||
257 | }; | ||
258 | |||
259 | &frddr_c { | ||
260 | status = "okay"; | ||
261 | }; | ||
262 | |||
134 | &hdmi_tx { | 263 | &hdmi_tx { |
135 | status = "okay"; | 264 | status = "okay"; |
136 | pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; | 265 | pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; |
@@ -144,6 +273,46 @@ | |||
144 | }; | 273 | }; |
145 | }; | 274 | }; |
146 | 275 | ||
276 | &ir { | ||
277 | status = "okay"; | ||
278 | pinctrl-0 = <&remote_input_ao_pins>; | ||
279 | pinctrl-names = "default"; | ||
280 | }; | ||
281 | |||
282 | &ext_mdio { | ||
283 | external_phy: ethernet-phy@0 { | ||
284 | /* Realtek RTL8211F (0x001cc916) */ | ||
285 | reg = <0>; | ||
286 | max-speed = <1000>; | ||
287 | eee-broken-1000t; | ||
288 | |||
289 | reset-assert-us = <10000>; | ||
290 | reset-deassert-us = <30000>; | ||
291 | reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; | ||
292 | |||
293 | interrupt-parent = <&gpio_intc>; | ||
294 | /* MAC_INTR on GPIOZ_14 */ | ||
295 | interrupts = <26 IRQ_TYPE_LEVEL_LOW>; | ||
296 | }; | ||
297 | }; | ||
298 | |||
299 | ðmac { | ||
300 | pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; | ||
301 | pinctrl-names = "default"; | ||
302 | status = "okay"; | ||
303 | phy-mode = "rgmii"; | ||
304 | phy-handle = <&external_phy>; | ||
305 | amlogic,tx-delay-ns = <2>; | ||
306 | }; | ||
307 | |||
308 | &pwm_ef { | ||
309 | status = "okay"; | ||
310 | pinctrl-0 = <&pwm_e_pins>; | ||
311 | pinctrl-names = "default"; | ||
312 | clocks = <&xtal>; | ||
313 | clock-names = "clkin0"; | ||
314 | }; | ||
315 | |||
147 | &uart_A { | 316 | &uart_A { |
148 | status = "okay"; | 317 | status = "okay"; |
149 | pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; | 318 | pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; |
@@ -153,6 +322,9 @@ | |||
153 | bluetooth { | 322 | bluetooth { |
154 | compatible = "brcm,bcm43438-bt"; | 323 | compatible = "brcm,bcm43438-bt"; |
155 | shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; | 324 | shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; |
325 | max-speed = <2000000>; | ||
326 | clocks = <&wifi32k>; | ||
327 | clock-names = "lpo"; | ||
156 | }; | 328 | }; |
157 | }; | 329 | }; |
158 | 330 | ||
@@ -166,3 +338,88 @@ | |||
166 | status = "okay"; | 338 | status = "okay"; |
167 | dr_mode = "host"; | 339 | dr_mode = "host"; |
168 | }; | 340 | }; |
341 | |||
342 | /* SDIO */ | ||
343 | &sd_emmc_a { | ||
344 | status = "okay"; | ||
345 | pinctrl-0 = <&sdio_pins>; | ||
346 | pinctrl-1 = <&sdio_clk_gate_pins>; | ||
347 | pinctrl-names = "default", "clk-gate"; | ||
348 | #address-cells = <1>; | ||
349 | #size-cells = <0>; | ||
350 | |||
351 | bus-width = <4>; | ||
352 | cap-sd-highspeed; | ||
353 | sd-uhs-sdr50; | ||
354 | max-frequency = <100000000>; | ||
355 | |||
356 | non-removable; | ||
357 | disable-wp; | ||
358 | |||
359 | mmc-pwrseq = <&sdio_pwrseq>; | ||
360 | |||
361 | vmmc-supply = <&vddao_3v3>; | ||
362 | vqmmc-supply = <&vddao_1v8>; | ||
363 | |||
364 | brcmf: wifi@1 { | ||
365 | reg = <1>; | ||
366 | compatible = "brcm,bcm4329-fmac"; | ||
367 | }; | ||
368 | }; | ||
369 | |||
370 | /* SD card */ | ||
371 | &sd_emmc_b { | ||
372 | status = "okay"; | ||
373 | pinctrl-0 = <&sdcard_c_pins>; | ||
374 | pinctrl-1 = <&sdcard_clk_gate_c_pins>; | ||
375 | pinctrl-names = "default", "clk-gate"; | ||
376 | |||
377 | bus-width = <4>; | ||
378 | cap-sd-highspeed; | ||
379 | max-frequency = <100000000>; | ||
380 | disable-wp; | ||
381 | |||
382 | cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; | ||
383 | vmmc-supply = <&vddao_3v3>; | ||
384 | vqmmc-supply = <&vddao_3v3>; | ||
385 | }; | ||
386 | |||
387 | /* eMMC */ | ||
388 | &sd_emmc_c { | ||
389 | status = "okay"; | ||
390 | pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; | ||
391 | pinctrl-1 = <&emmc_clk_gate_pins>; | ||
392 | pinctrl-names = "default", "clk-gate"; | ||
393 | |||
394 | bus-width = <8>; | ||
395 | cap-mmc-highspeed; | ||
396 | max-frequency = <100000000>; | ||
397 | non-removable; | ||
398 | disable-wp; | ||
399 | |||
400 | mmc-pwrseq = <&emmc_pwrseq>; | ||
401 | vmmc-supply = <&vcc_3v3>; | ||
402 | vqmmc-supply = <&flash_1v8>; | ||
403 | }; | ||
404 | |||
405 | &spdifout { | ||
406 | pinctrl-0 = <&spdif_out_h_pins>; | ||
407 | pinctrl-names = "default"; | ||
408 | status = "okay"; | ||
409 | }; | ||
410 | |||
411 | &spdifout_b { | ||
412 | status = "okay"; | ||
413 | }; | ||
414 | |||
415 | &tdmif_b { | ||
416 | status = "okay"; | ||
417 | }; | ||
418 | |||
419 | &tdmout_b { | ||
420 | status = "okay"; | ||
421 | }; | ||
422 | |||
423 | &tohdmitx { | ||
424 | status = "okay"; | ||
425 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi index 9f72396ba710..f8d43e3dcf20 100644 --- a/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi | |||
@@ -5,10 +5,12 @@ | |||
5 | 5 | ||
6 | #include <dt-bindings/phy/phy.h> | 6 | #include <dt-bindings/phy/phy.h> |
7 | #include <dt-bindings/gpio/gpio.h> | 7 | #include <dt-bindings/gpio/gpio.h> |
8 | #include <dt-bindings/clock/axg-audio-clkc.h> | ||
8 | #include <dt-bindings/clock/g12a-clkc.h> | 9 | #include <dt-bindings/clock/g12a-clkc.h> |
9 | #include <dt-bindings/clock/g12a-aoclkc.h> | 10 | #include <dt-bindings/clock/g12a-aoclkc.h> |
10 | #include <dt-bindings/interrupt-controller/irq.h> | 11 | #include <dt-bindings/interrupt-controller/irq.h> |
11 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
13 | #include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h> | ||
12 | #include <dt-bindings/reset/amlogic,meson-g12a-reset.h> | 14 | #include <dt-bindings/reset/amlogic,meson-g12a-reset.h> |
13 | 15 | ||
14 | / { | 16 | / { |
@@ -18,6 +20,39 @@ | |||
18 | #address-cells = <2>; | 20 | #address-cells = <2>; |
19 | #size-cells = <2>; | 21 | #size-cells = <2>; |
20 | 22 | ||
23 | tdmif_a: audio-controller-0 { | ||
24 | compatible = "amlogic,axg-tdm-iface"; | ||
25 | #sound-dai-cells = <0>; | ||
26 | sound-name-prefix = "TDM_A"; | ||
27 | clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>, | ||
28 | <&clkc_audio AUD_CLKID_MST_A_SCLK>, | ||
29 | <&clkc_audio AUD_CLKID_MST_A_LRCLK>; | ||
30 | clock-names = "mclk", "sclk", "lrclk"; | ||
31 | status = "disabled"; | ||
32 | }; | ||
33 | |||
34 | tdmif_b: audio-controller-1 { | ||
35 | compatible = "amlogic,axg-tdm-iface"; | ||
36 | #sound-dai-cells = <0>; | ||
37 | sound-name-prefix = "TDM_B"; | ||
38 | clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>, | ||
39 | <&clkc_audio AUD_CLKID_MST_B_SCLK>, | ||
40 | <&clkc_audio AUD_CLKID_MST_B_LRCLK>; | ||
41 | clock-names = "mclk", "sclk", "lrclk"; | ||
42 | status = "disabled"; | ||
43 | }; | ||
44 | |||
45 | tdmif_c: audio-controller-2 { | ||
46 | compatible = "amlogic,axg-tdm-iface"; | ||
47 | #sound-dai-cells = <0>; | ||
48 | sound-name-prefix = "TDM_C"; | ||
49 | clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>, | ||
50 | <&clkc_audio AUD_CLKID_MST_C_SCLK>, | ||
51 | <&clkc_audio AUD_CLKID_MST_C_LRCLK>; | ||
52 | clock-names = "mclk", "sclk", "lrclk"; | ||
53 | status = "disabled"; | ||
54 | }; | ||
55 | |||
21 | cpus { | 56 | cpus { |
22 | #address-cells = <0x2>; | 57 | #address-cells = <0x2>; |
23 | #size-cells = <0x0>; | 58 | #size-cells = <0x0>; |
@@ -102,6 +137,27 @@ | |||
102 | #size-cells = <2>; | 137 | #size-cells = <2>; |
103 | ranges; | 138 | ranges; |
104 | 139 | ||
140 | ethmac: ethernet@ff3f0000 { | ||
141 | compatible = "amlogic,meson-axg-dwmac", | ||
142 | "snps,dwmac-3.70a", | ||
143 | "snps,dwmac"; | ||
144 | reg = <0x0 0xff3f0000 0x0 0x10000 | ||
145 | 0x0 0xff634540 0x0 0x8>; | ||
146 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | ||
147 | interrupt-names = "macirq"; | ||
148 | clocks = <&clkc CLKID_ETH>, | ||
149 | <&clkc CLKID_FCLK_DIV2>, | ||
150 | <&clkc CLKID_MPLL2>; | ||
151 | clock-names = "stmmaceth", "clkin0", "clkin1"; | ||
152 | status = "disabled"; | ||
153 | |||
154 | mdio0: mdio { | ||
155 | #address-cells = <1>; | ||
156 | #size-cells = <0>; | ||
157 | compatible = "snps,dwmac-mdio"; | ||
158 | }; | ||
159 | }; | ||
160 | |||
105 | apb: bus@ff600000 { | 161 | apb: bus@ff600000 { |
106 | compatible = "simple-bus"; | 162 | compatible = "simple-bus"; |
107 | reg = <0x0 0xff600000 0x0 0x200000>; | 163 | reg = <0x0 0xff600000 0x0 0x200000>; |
@@ -123,6 +179,7 @@ | |||
123 | clock-names = "isfr", "iahb", "venci"; | 179 | clock-names = "isfr", "iahb", "venci"; |
124 | #address-cells = <1>; | 180 | #address-cells = <1>; |
125 | #size-cells = <0>; | 181 | #size-cells = <0>; |
182 | #sound-dai-cells = <0>; | ||
126 | status = "disabled"; | 183 | status = "disabled"; |
127 | 184 | ||
128 | /* VPU VENC Input */ | 185 | /* VPU VENC Input */ |
@@ -140,6 +197,19 @@ | |||
140 | }; | 197 | }; |
141 | }; | 198 | }; |
142 | 199 | ||
200 | apb_efuse: bus@30000 { | ||
201 | compatible = "simple-bus"; | ||
202 | reg = <0x0 0x30000 0x0 0x2000>; | ||
203 | #address-cells = <2>; | ||
204 | #size-cells = <2>; | ||
205 | ranges = <0x0 0x0 0x0 0x30000 0x0 0x2000>; | ||
206 | |||
207 | hwrng: rng@218 { | ||
208 | compatible = "amlogic,meson-rng"; | ||
209 | reg = <0x0 0x218 0x0 0x4>; | ||
210 | }; | ||
211 | }; | ||
212 | |||
143 | periphs: bus@34400 { | 213 | periphs: bus@34400 { |
144 | compatible = "simple-bus"; | 214 | compatible = "simple-bus"; |
145 | reg = <0x0 0x34400 0x0 0x400>; | 215 | reg = <0x0 0x34400 0x0 0x400>; |
@@ -185,12 +255,55 @@ | |||
185 | }; | 255 | }; |
186 | }; | 256 | }; |
187 | 257 | ||
258 | emmc_pins: emmc { | ||
259 | mux-0 { | ||
260 | groups = "emmc_nand_d0", | ||
261 | "emmc_nand_d1", | ||
262 | "emmc_nand_d2", | ||
263 | "emmc_nand_d3", | ||
264 | "emmc_nand_d4", | ||
265 | "emmc_nand_d5", | ||
266 | "emmc_nand_d6", | ||
267 | "emmc_nand_d7", | ||
268 | "emmc_cmd"; | ||
269 | function = "emmc"; | ||
270 | bias-pull-up; | ||
271 | drive-strength-microamp = <4000>; | ||
272 | }; | ||
273 | |||
274 | mux-1 { | ||
275 | groups = "emmc_clk"; | ||
276 | function = "emmc"; | ||
277 | bias-disable; | ||
278 | drive-strength-microamp = <4000>; | ||
279 | }; | ||
280 | }; | ||
281 | |||
282 | emmc_ds_pins: emmc-ds { | ||
283 | mux { | ||
284 | groups = "emmc_nand_ds"; | ||
285 | function = "emmc"; | ||
286 | bias-pull-down; | ||
287 | drive-strength-microamp = <4000>; | ||
288 | }; | ||
289 | }; | ||
290 | |||
291 | emmc_clk_gate_pins: emmc_clk_gate { | ||
292 | mux { | ||
293 | groups = "BOOT_8"; | ||
294 | function = "gpio_periphs"; | ||
295 | bias-pull-down; | ||
296 | drive-strength-microamp = <4000>; | ||
297 | }; | ||
298 | }; | ||
299 | |||
188 | hdmitx_ddc_pins: hdmitx_ddc { | 300 | hdmitx_ddc_pins: hdmitx_ddc { |
189 | mux { | 301 | mux { |
190 | groups = "hdmitx_sda", | 302 | groups = "hdmitx_sda", |
191 | "hdmitx_sck"; | 303 | "hdmitx_sck"; |
192 | function = "hdmitx"; | 304 | function = "hdmitx"; |
193 | bias-disable; | 305 | bias-disable; |
306 | drive-strength-microamp = <4000>; | ||
194 | }; | 307 | }; |
195 | }; | 308 | }; |
196 | 309 | ||
@@ -202,6 +315,1040 @@ | |||
202 | }; | 315 | }; |
203 | }; | 316 | }; |
204 | 317 | ||
318 | |||
319 | i2c0_sda_c_pins: i2c0-sda-c { | ||
320 | mux { | ||
321 | groups = "i2c0_sda_c"; | ||
322 | function = "i2c0"; | ||
323 | bias-disable; | ||
324 | drive-strength-microamp = <3000>; | ||
325 | |||
326 | }; | ||
327 | }; | ||
328 | |||
329 | i2c0_sck_c_pins: i2c0-sck-c { | ||
330 | mux { | ||
331 | groups = "i2c0_sck_c"; | ||
332 | function = "i2c0"; | ||
333 | bias-disable; | ||
334 | drive-strength-microamp = <3000>; | ||
335 | }; | ||
336 | }; | ||
337 | |||
338 | i2c0_sda_z0_pins: i2c0-sda-z0 { | ||
339 | mux { | ||
340 | groups = "i2c0_sda_z0"; | ||
341 | function = "i2c0"; | ||
342 | bias-disable; | ||
343 | drive-strength-microamp = <3000>; | ||
344 | }; | ||
345 | }; | ||
346 | |||
347 | i2c0_sck_z1_pins: i2c0-sck-z1 { | ||
348 | mux { | ||
349 | groups = "i2c0_sck_z1"; | ||
350 | function = "i2c0"; | ||
351 | bias-disable; | ||
352 | drive-strength-microamp = <3000>; | ||
353 | }; | ||
354 | }; | ||
355 | |||
356 | i2c0_sda_z7_pins: i2c0-sda-z7 { | ||
357 | mux { | ||
358 | groups = "i2c0_sda_z7"; | ||
359 | function = "i2c0"; | ||
360 | bias-disable; | ||
361 | drive-strength-microamp = <3000>; | ||
362 | }; | ||
363 | }; | ||
364 | |||
365 | i2c0_sda_z8_pins: i2c0-sda-z8 { | ||
366 | mux { | ||
367 | groups = "i2c0_sda_z8"; | ||
368 | function = "i2c0"; | ||
369 | bias-disable; | ||
370 | drive-strength-microamp = <3000>; | ||
371 | }; | ||
372 | }; | ||
373 | |||
374 | i2c1_sda_x_pins: i2c1-sda-x { | ||
375 | mux { | ||
376 | groups = "i2c1_sda_x"; | ||
377 | function = "i2c1"; | ||
378 | bias-disable; | ||
379 | drive-strength-microamp = <3000>; | ||
380 | }; | ||
381 | }; | ||
382 | |||
383 | i2c1_sck_x_pins: i2c1-sck-x { | ||
384 | mux { | ||
385 | groups = "i2c1_sck_x"; | ||
386 | function = "i2c1"; | ||
387 | bias-disable; | ||
388 | drive-strength-microamp = <3000>; | ||
389 | }; | ||
390 | }; | ||
391 | |||
392 | i2c1_sda_h2_pins: i2c1-sda-h2 { | ||
393 | mux { | ||
394 | groups = "i2c1_sda_h2"; | ||
395 | function = "i2c1"; | ||
396 | bias-disable; | ||
397 | drive-strength-microamp = <3000>; | ||
398 | }; | ||
399 | }; | ||
400 | |||
401 | i2c1_sck_h3_pins: i2c1-sck-h3 { | ||
402 | mux { | ||
403 | groups = "i2c1_sck_h3"; | ||
404 | function = "i2c1"; | ||
405 | bias-disable; | ||
406 | drive-strength-microamp = <3000>; | ||
407 | }; | ||
408 | }; | ||
409 | |||
410 | i2c1_sda_h6_pins: i2c1-sda-h6 { | ||
411 | mux { | ||
412 | groups = "i2c1_sda_h6"; | ||
413 | function = "i2c1"; | ||
414 | bias-disable; | ||
415 | drive-strength-microamp = <3000>; | ||
416 | }; | ||
417 | }; | ||
418 | |||
419 | i2c1_sck_h7_pins: i2c1-sck-h7 { | ||
420 | mux { | ||
421 | groups = "i2c1_sck_h7"; | ||
422 | function = "i2c1"; | ||
423 | bias-disable; | ||
424 | drive-strength-microamp = <3000>; | ||
425 | }; | ||
426 | }; | ||
427 | |||
428 | i2c2_sda_x_pins: i2c2-sda-x { | ||
429 | mux { | ||
430 | groups = "i2c2_sda_x"; | ||
431 | function = "i2c2"; | ||
432 | bias-disable; | ||
433 | drive-strength-microamp = <3000>; | ||
434 | }; | ||
435 | }; | ||
436 | |||
437 | i2c2_sck_x_pins: i2c2-sck-x { | ||
438 | mux { | ||
439 | groups = "i2c2_sck_x"; | ||
440 | function = "i2c2"; | ||
441 | bias-disable; | ||
442 | drive-strength-microamp = <3000>; | ||
443 | }; | ||
444 | }; | ||
445 | |||
446 | i2c2_sda_z_pins: i2c2-sda-z { | ||
447 | mux { | ||
448 | groups = "i2c2_sda_z"; | ||
449 | function = "i2c2"; | ||
450 | bias-disable; | ||
451 | drive-strength-microamp = <3000>; | ||
452 | }; | ||
453 | }; | ||
454 | |||
455 | i2c2_sck_z_pins: i2c2-sck-z { | ||
456 | mux { | ||
457 | groups = "i2c2_sck_z"; | ||
458 | function = "i2c2"; | ||
459 | bias-disable; | ||
460 | drive-strength-microamp = <3000>; | ||
461 | }; | ||
462 | }; | ||
463 | |||
464 | i2c3_sda_h_pins: i2c3-sda-h { | ||
465 | mux { | ||
466 | groups = "i2c3_sda_h"; | ||
467 | function = "i2c3"; | ||
468 | bias-disable; | ||
469 | drive-strength-microamp = <3000>; | ||
470 | }; | ||
471 | }; | ||
472 | |||
473 | i2c3_sck_h_pins: i2c3-sck-h { | ||
474 | mux { | ||
475 | groups = "i2c3_sck_h"; | ||
476 | function = "i2c3"; | ||
477 | bias-disable; | ||
478 | drive-strength-microamp = <3000>; | ||
479 | }; | ||
480 | }; | ||
481 | |||
482 | i2c3_sda_a_pins: i2c3-sda-a { | ||
483 | mux { | ||
484 | groups = "i2c3_sda_a"; | ||
485 | function = "i2c3"; | ||
486 | bias-disable; | ||
487 | drive-strength-microamp = <3000>; | ||
488 | }; | ||
489 | }; | ||
490 | |||
491 | i2c3_sck_a_pins: i2c3-sck-a { | ||
492 | mux { | ||
493 | groups = "i2c3_sck_a"; | ||
494 | function = "i2c3"; | ||
495 | bias-disable; | ||
496 | drive-strength-microamp = <3000>; | ||
497 | }; | ||
498 | }; | ||
499 | |||
500 | mclk0_a_pins: mclk0-a { | ||
501 | mux { | ||
502 | groups = "mclk0_a"; | ||
503 | function = "mclk0"; | ||
504 | bias-disable; | ||
505 | drive-strength-microamp = <3000>; | ||
506 | }; | ||
507 | }; | ||
508 | |||
509 | mclk1_a_pins: mclk1-a { | ||
510 | mux { | ||
511 | groups = "mclk1_a"; | ||
512 | function = "mclk1"; | ||
513 | bias-disable; | ||
514 | drive-strength-microamp = <3000>; | ||
515 | }; | ||
516 | }; | ||
517 | |||
518 | mclk1_x_pins: mclk1-x { | ||
519 | mux { | ||
520 | groups = "mclk1_x"; | ||
521 | function = "mclk1"; | ||
522 | bias-disable; | ||
523 | drive-strength-microamp = <3000>; | ||
524 | }; | ||
525 | }; | ||
526 | |||
527 | mclk1_z_pins: mclk1-z { | ||
528 | mux { | ||
529 | groups = "mclk1_z"; | ||
530 | function = "mclk1"; | ||
531 | bias-disable; | ||
532 | drive-strength-microamp = <3000>; | ||
533 | }; | ||
534 | }; | ||
535 | |||
536 | pdm_din0_a_pins: pdm-din0-a { | ||
537 | mux { | ||
538 | groups = "pdm_din0_a"; | ||
539 | function = "pdm"; | ||
540 | bias-disable; | ||
541 | }; | ||
542 | }; | ||
543 | |||
544 | pdm_din0_c_pins: pdm-din0-c { | ||
545 | mux { | ||
546 | groups = "pdm_din0_c"; | ||
547 | function = "pdm"; | ||
548 | bias-disable; | ||
549 | }; | ||
550 | }; | ||
551 | |||
552 | pdm_din0_x_pins: pdm-din0-x { | ||
553 | mux { | ||
554 | groups = "pdm_din0_x"; | ||
555 | function = "pdm"; | ||
556 | bias-disable; | ||
557 | }; | ||
558 | }; | ||
559 | |||
560 | pdm_din0_z_pins: pdm-din0-z { | ||
561 | mux { | ||
562 | groups = "pdm_din0_z"; | ||
563 | function = "pdm"; | ||
564 | bias-disable; | ||
565 | }; | ||
566 | }; | ||
567 | |||
568 | pdm_din1_a_pins: pdm-din1-a { | ||
569 | mux { | ||
570 | groups = "pdm_din1_a"; | ||
571 | function = "pdm"; | ||
572 | bias-disable; | ||
573 | }; | ||
574 | }; | ||
575 | |||
576 | pdm_din1_c_pins: pdm-din1-c { | ||
577 | mux { | ||
578 | groups = "pdm_din1_c"; | ||
579 | function = "pdm"; | ||
580 | bias-disable; | ||
581 | }; | ||
582 | }; | ||
583 | |||
584 | pdm_din1_x_pins: pdm-din1-x { | ||
585 | mux { | ||
586 | groups = "pdm_din1_x"; | ||
587 | function = "pdm"; | ||
588 | bias-disable; | ||
589 | }; | ||
590 | }; | ||
591 | |||
592 | pdm_din1_z_pins: pdm-din1-z { | ||
593 | mux { | ||
594 | groups = "pdm_din1_z"; | ||
595 | function = "pdm"; | ||
596 | bias-disable; | ||
597 | }; | ||
598 | }; | ||
599 | |||
600 | pdm_din2_a_pins: pdm-din2-a { | ||
601 | mux { | ||
602 | groups = "pdm_din2_a"; | ||
603 | function = "pdm"; | ||
604 | bias-disable; | ||
605 | }; | ||
606 | }; | ||
607 | |||
608 | pdm_din2_c_pins: pdm-din2-c { | ||
609 | mux { | ||
610 | groups = "pdm_din2_c"; | ||
611 | function = "pdm"; | ||
612 | bias-disable; | ||
613 | }; | ||
614 | }; | ||
615 | |||
616 | pdm_din2_x_pins: pdm-din2-x { | ||
617 | mux { | ||
618 | groups = "pdm_din2_x"; | ||
619 | function = "pdm"; | ||
620 | bias-disable; | ||
621 | }; | ||
622 | }; | ||
623 | |||
624 | pdm_din2_z_pins: pdm-din2-z { | ||
625 | mux { | ||
626 | groups = "pdm_din2_z"; | ||
627 | function = "pdm"; | ||
628 | bias-disable; | ||
629 | }; | ||
630 | }; | ||
631 | |||
632 | pdm_din3_a_pins: pdm-din3-a { | ||
633 | mux { | ||
634 | groups = "pdm_din3_a"; | ||
635 | function = "pdm"; | ||
636 | bias-disable; | ||
637 | }; | ||
638 | }; | ||
639 | |||
640 | pdm_din3_c_pins: pdm-din3-c { | ||
641 | mux { | ||
642 | groups = "pdm_din3_c"; | ||
643 | function = "pdm"; | ||
644 | bias-disable; | ||
645 | }; | ||
646 | }; | ||
647 | |||
648 | pdm_din3_x_pins: pdm-din3-x { | ||
649 | mux { | ||
650 | groups = "pdm_din3_x"; | ||
651 | function = "pdm"; | ||
652 | bias-disable; | ||
653 | }; | ||
654 | }; | ||
655 | |||
656 | pdm_din3_z_pins: pdm-din3-z { | ||
657 | mux { | ||
658 | groups = "pdm_din3_z"; | ||
659 | function = "pdm"; | ||
660 | bias-disable; | ||
661 | }; | ||
662 | }; | ||
663 | |||
664 | pdm_dclk_a_pins: pdm-dclk-a { | ||
665 | mux { | ||
666 | groups = "pdm_dclk_a"; | ||
667 | function = "pdm"; | ||
668 | bias-disable; | ||
669 | drive-strength-microamp = <500>; | ||
670 | }; | ||
671 | }; | ||
672 | |||
673 | pdm_dclk_c_pins: pdm-dclk-c { | ||
674 | mux { | ||
675 | groups = "pdm_dclk_c"; | ||
676 | function = "pdm"; | ||
677 | bias-disable; | ||
678 | drive-strength-microamp = <500>; | ||
679 | }; | ||
680 | }; | ||
681 | |||
682 | pdm_dclk_x_pins: pdm-dclk-x { | ||
683 | mux { | ||
684 | groups = "pdm_dclk_x"; | ||
685 | function = "pdm"; | ||
686 | bias-disable; | ||
687 | drive-strength-microamp = <500>; | ||
688 | }; | ||
689 | }; | ||
690 | |||
691 | pdm_dclk_z_pins: pdm-dclk-z { | ||
692 | mux { | ||
693 | groups = "pdm_dclk_z"; | ||
694 | function = "pdm"; | ||
695 | bias-disable; | ||
696 | drive-strength-microamp = <500>; | ||
697 | }; | ||
698 | }; | ||
699 | |||
700 | pwm_a_pins: pwm-a { | ||
701 | mux { | ||
702 | groups = "pwm_a"; | ||
703 | function = "pwm_a"; | ||
704 | bias-disable; | ||
705 | }; | ||
706 | }; | ||
707 | |||
708 | pwm_b_x7_pins: pwm-b-x7 { | ||
709 | mux { | ||
710 | groups = "pwm_b_x7"; | ||
711 | function = "pwm_b"; | ||
712 | bias-disable; | ||
713 | }; | ||
714 | }; | ||
715 | |||
716 | pwm_b_x19_pins: pwm-b-x19 { | ||
717 | mux { | ||
718 | groups = "pwm_b_x19"; | ||
719 | function = "pwm_b"; | ||
720 | bias-disable; | ||
721 | }; | ||
722 | }; | ||
723 | |||
724 | pwm_c_c_pins: pwm-c-c { | ||
725 | mux { | ||
726 | groups = "pwm_c_c"; | ||
727 | function = "pwm_c"; | ||
728 | bias-disable; | ||
729 | }; | ||
730 | }; | ||
731 | |||
732 | pwm_c_x5_pins: pwm-c-x5 { | ||
733 | mux { | ||
734 | groups = "pwm_c_x5"; | ||
735 | function = "pwm_c"; | ||
736 | bias-disable; | ||
737 | }; | ||
738 | }; | ||
739 | |||
740 | pwm_c_x8_pins: pwm-c-x8 { | ||
741 | mux { | ||
742 | groups = "pwm_c_x8"; | ||
743 | function = "pwm_c"; | ||
744 | bias-disable; | ||
745 | }; | ||
746 | }; | ||
747 | |||
748 | pwm_d_x3_pins: pwm-d-x3 { | ||
749 | mux { | ||
750 | groups = "pwm_d_x3"; | ||
751 | function = "pwm_d"; | ||
752 | bias-disable; | ||
753 | }; | ||
754 | }; | ||
755 | |||
756 | pwm_d_x6_pins: pwm-d-x6 { | ||
757 | mux { | ||
758 | groups = "pwm_d_x6"; | ||
759 | function = "pwm_d"; | ||
760 | bias-disable; | ||
761 | }; | ||
762 | }; | ||
763 | |||
764 | pwm_e_pins: pwm-e { | ||
765 | mux { | ||
766 | groups = "pwm_e"; | ||
767 | function = "pwm_e"; | ||
768 | bias-disable; | ||
769 | }; | ||
770 | }; | ||
771 | |||
772 | pwm_f_x_pins: pwm-f-x { | ||
773 | mux { | ||
774 | groups = "pwm_f_x"; | ||
775 | function = "pwm_f"; | ||
776 | bias-disable; | ||
777 | }; | ||
778 | }; | ||
779 | |||
780 | pwm_f_h_pins: pwm-f-h { | ||
781 | mux { | ||
782 | groups = "pwm_f_h"; | ||
783 | function = "pwm_f"; | ||
784 | bias-disable; | ||
785 | }; | ||
786 | }; | ||
787 | |||
788 | sdcard_c_pins: sdcard_c { | ||
789 | mux-0 { | ||
790 | groups = "sdcard_d0_c", | ||
791 | "sdcard_d1_c", | ||
792 | "sdcard_d2_c", | ||
793 | "sdcard_d3_c", | ||
794 | "sdcard_cmd_c"; | ||
795 | function = "sdcard"; | ||
796 | bias-pull-up; | ||
797 | drive-strength-microamp = <4000>; | ||
798 | }; | ||
799 | |||
800 | mux-1 { | ||
801 | groups = "sdcard_clk_c"; | ||
802 | function = "sdcard"; | ||
803 | bias-disable; | ||
804 | drive-strength-microamp = <4000>; | ||
805 | }; | ||
806 | }; | ||
807 | |||
808 | sdcard_clk_gate_c_pins: sdcard_clk_gate_c { | ||
809 | mux { | ||
810 | groups = "GPIOC_4"; | ||
811 | function = "gpio_periphs"; | ||
812 | bias-pull-down; | ||
813 | drive-strength-microamp = <4000>; | ||
814 | }; | ||
815 | }; | ||
816 | |||
817 | sdcard_z_pins: sdcard_z { | ||
818 | mux-0 { | ||
819 | groups = "sdcard_d0_z", | ||
820 | "sdcard_d1_z", | ||
821 | "sdcard_d2_z", | ||
822 | "sdcard_d3_z", | ||
823 | "sdcard_cmd_z"; | ||
824 | function = "sdcard"; | ||
825 | bias-pull-up; | ||
826 | drive-strength-microamp = <4000>; | ||
827 | }; | ||
828 | |||
829 | mux-1 { | ||
830 | groups = "sdcard_clk_z"; | ||
831 | function = "sdcard"; | ||
832 | bias-disable; | ||
833 | drive-strength-microamp = <4000>; | ||
834 | }; | ||
835 | }; | ||
836 | |||
837 | sdcard_clk_gate_z_pins: sdcard_clk_gate_z { | ||
838 | mux { | ||
839 | groups = "GPIOZ_6"; | ||
840 | function = "gpio_periphs"; | ||
841 | bias-pull-down; | ||
842 | drive-strength-microamp = <4000>; | ||
843 | }; | ||
844 | }; | ||
845 | |||
846 | sdio_pins: sdio { | ||
847 | mux { | ||
848 | groups = "sdio_d0", | ||
849 | "sdio_d1", | ||
850 | "sdio_d2", | ||
851 | "sdio_d3", | ||
852 | "sdio_clk", | ||
853 | "sdio_cmd"; | ||
854 | function = "sdio"; | ||
855 | bias-disable; | ||
856 | drive-strength-microamp = <4000>; | ||
857 | }; | ||
858 | }; | ||
859 | |||
860 | sdio_clk_gate_pins: sdio_clk_gate { | ||
861 | mux { | ||
862 | groups = "GPIOX_4"; | ||
863 | function = "gpio_periphs"; | ||
864 | bias-pull-down; | ||
865 | drive-strength-microamp = <4000>; | ||
866 | }; | ||
867 | }; | ||
868 | |||
869 | spdif_in_a10_pins: spdif-in-a10 { | ||
870 | mux { | ||
871 | groups = "spdif_in_a10"; | ||
872 | function = "spdif_in"; | ||
873 | bias-disable; | ||
874 | }; | ||
875 | }; | ||
876 | |||
877 | spdif_in_a12_pins: spdif-in-a12 { | ||
878 | mux { | ||
879 | groups = "spdif_in_a12"; | ||
880 | function = "spdif_in"; | ||
881 | bias-disable; | ||
882 | }; | ||
883 | }; | ||
884 | |||
885 | spdif_in_h_pins: spdif-in-h { | ||
886 | mux { | ||
887 | groups = "spdif_in_h"; | ||
888 | function = "spdif_in"; | ||
889 | bias-disable; | ||
890 | }; | ||
891 | }; | ||
892 | |||
893 | spdif_out_h_pins: spdif-out-h { | ||
894 | mux { | ||
895 | groups = "spdif_out_h"; | ||
896 | function = "spdif_out"; | ||
897 | drive-strength-microamp = <500>; | ||
898 | bias-disable; | ||
899 | }; | ||
900 | }; | ||
901 | |||
902 | spdif_out_a11_pins: spdif-out-a11 { | ||
903 | mux { | ||
904 | groups = "spdif_out_a11"; | ||
905 | function = "spdif_out"; | ||
906 | drive-strength-microamp = <500>; | ||
907 | bias-disable; | ||
908 | }; | ||
909 | }; | ||
910 | |||
911 | spdif_out_a13_pins: spdif-out-a13 { | ||
912 | mux { | ||
913 | groups = "spdif_out_a13"; | ||
914 | function = "spdif_out"; | ||
915 | drive-strength-microamp = <500>; | ||
916 | bias-disable; | ||
917 | }; | ||
918 | }; | ||
919 | |||
920 | tdm_a_din0_pins: tdm-a-din0 { | ||
921 | mux { | ||
922 | groups = "tdm_a_din0"; | ||
923 | function = "tdm_a"; | ||
924 | bias-disable; | ||
925 | }; | ||
926 | }; | ||
927 | |||
928 | |||
929 | tdm_a_din1_pins: tdm-a-din1 { | ||
930 | mux { | ||
931 | groups = "tdm_a_din1"; | ||
932 | function = "tdm_a"; | ||
933 | bias-disable; | ||
934 | }; | ||
935 | }; | ||
936 | |||
937 | tdm_a_dout0_pins: tdm-a-dout0 { | ||
938 | mux { | ||
939 | groups = "tdm_a_dout0"; | ||
940 | function = "tdm_a"; | ||
941 | bias-disable; | ||
942 | drive-strength-microamp = <3000>; | ||
943 | }; | ||
944 | }; | ||
945 | |||
946 | tdm_a_dout1_pins: tdm-a-dout1 { | ||
947 | mux { | ||
948 | groups = "tdm_a_dout1"; | ||
949 | function = "tdm_a"; | ||
950 | bias-disable; | ||
951 | drive-strength-microamp = <3000>; | ||
952 | }; | ||
953 | }; | ||
954 | |||
955 | tdm_a_fs_pins: tdm-a-fs { | ||
956 | mux { | ||
957 | groups = "tdm_a_fs"; | ||
958 | function = "tdm_a"; | ||
959 | bias-disable; | ||
960 | drive-strength-microamp = <3000>; | ||
961 | }; | ||
962 | }; | ||
963 | |||
964 | tdm_a_sclk_pins: tdm-a-sclk { | ||
965 | mux { | ||
966 | groups = "tdm_a_sclk"; | ||
967 | function = "tdm_a"; | ||
968 | bias-disable; | ||
969 | drive-strength-microamp = <3000>; | ||
970 | }; | ||
971 | }; | ||
972 | |||
973 | tdm_a_slv_fs_pins: tdm-a-slv-fs { | ||
974 | mux { | ||
975 | groups = "tdm_a_slv_fs"; | ||
976 | function = "tdm_a"; | ||
977 | bias-disable; | ||
978 | }; | ||
979 | }; | ||
980 | |||
981 | |||
982 | tdm_a_slv_sclk_pins: tdm-a-slv-sclk { | ||
983 | mux { | ||
984 | groups = "tdm_a_slv_sclk"; | ||
985 | function = "tdm_a"; | ||
986 | bias-disable; | ||
987 | }; | ||
988 | }; | ||
989 | |||
990 | tdm_b_din0_pins: tdm-b-din0 { | ||
991 | mux { | ||
992 | groups = "tdm_b_din0"; | ||
993 | function = "tdm_b"; | ||
994 | bias-disable; | ||
995 | }; | ||
996 | }; | ||
997 | |||
998 | tdm_b_din1_pins: tdm-b-din1 { | ||
999 | mux { | ||
1000 | groups = "tdm_b_din1"; | ||
1001 | function = "tdm_b"; | ||
1002 | bias-disable; | ||
1003 | }; | ||
1004 | }; | ||
1005 | |||
1006 | tdm_b_din2_pins: tdm-b-din2 { | ||
1007 | mux { | ||
1008 | groups = "tdm_b_din2"; | ||
1009 | function = "tdm_b"; | ||
1010 | bias-disable; | ||
1011 | }; | ||
1012 | }; | ||
1013 | |||
1014 | tdm_b_din3_a_pins: tdm-b-din3-a { | ||
1015 | mux { | ||
1016 | groups = "tdm_b_din3_a"; | ||
1017 | function = "tdm_b"; | ||
1018 | bias-disable; | ||
1019 | }; | ||
1020 | }; | ||
1021 | |||
1022 | tdm_b_din3_h_pins: tdm-b-din3-h { | ||
1023 | mux { | ||
1024 | groups = "tdm_b_din3_h"; | ||
1025 | function = "tdm_b"; | ||
1026 | bias-disable; | ||
1027 | }; | ||
1028 | }; | ||
1029 | |||
1030 | tdm_b_dout0_pins: tdm-b-dout0 { | ||
1031 | mux { | ||
1032 | groups = "tdm_b_dout0"; | ||
1033 | function = "tdm_b"; | ||
1034 | bias-disable; | ||
1035 | drive-strength-microamp = <3000>; | ||
1036 | }; | ||
1037 | }; | ||
1038 | |||
1039 | tdm_b_dout1_pins: tdm-b-dout1 { | ||
1040 | mux { | ||
1041 | groups = "tdm_b_dout1"; | ||
1042 | function = "tdm_b"; | ||
1043 | bias-disable; | ||
1044 | drive-strength-microamp = <3000>; | ||
1045 | }; | ||
1046 | }; | ||
1047 | |||
1048 | tdm_b_dout2_pins: tdm-b-dout2 { | ||
1049 | mux { | ||
1050 | groups = "tdm_b_dout2"; | ||
1051 | function = "tdm_b"; | ||
1052 | bias-disable; | ||
1053 | drive-strength-microamp = <3000>; | ||
1054 | }; | ||
1055 | }; | ||
1056 | |||
1057 | tdm_b_dout3_a_pins: tdm-b-dout3-a { | ||
1058 | mux { | ||
1059 | groups = "tdm_b_dout3_a"; | ||
1060 | function = "tdm_b"; | ||
1061 | bias-disable; | ||
1062 | drive-strength-microamp = <3000>; | ||
1063 | }; | ||
1064 | }; | ||
1065 | |||
1066 | tdm_b_dout3_h_pins: tdm-b-dout3-h { | ||
1067 | mux { | ||
1068 | groups = "tdm_b_dout3_h"; | ||
1069 | function = "tdm_b"; | ||
1070 | bias-disable; | ||
1071 | drive-strength-microamp = <3000>; | ||
1072 | }; | ||
1073 | }; | ||
1074 | |||
1075 | tdm_b_fs_pins: tdm-b-fs { | ||
1076 | mux { | ||
1077 | groups = "tdm_b_fs"; | ||
1078 | function = "tdm_b"; | ||
1079 | bias-disable; | ||
1080 | drive-strength-microamp = <3000>; | ||
1081 | }; | ||
1082 | }; | ||
1083 | |||
1084 | tdm_b_sclk_pins: tdm-b-sclk { | ||
1085 | mux { | ||
1086 | groups = "tdm_b_sclk"; | ||
1087 | function = "tdm_b"; | ||
1088 | bias-disable; | ||
1089 | drive-strength-microamp = <3000>; | ||
1090 | }; | ||
1091 | }; | ||
1092 | |||
1093 | tdm_b_slv_fs_pins: tdm-b-slv-fs { | ||
1094 | mux { | ||
1095 | groups = "tdm_b_slv_fs"; | ||
1096 | function = "tdm_b"; | ||
1097 | bias-disable; | ||
1098 | }; | ||
1099 | }; | ||
1100 | |||
1101 | tdm_b_slv_sclk_pins: tdm-b-slv-sclk { | ||
1102 | mux { | ||
1103 | groups = "tdm_b_slv_sclk"; | ||
1104 | function = "tdm_b"; | ||
1105 | bias-disable; | ||
1106 | }; | ||
1107 | }; | ||
1108 | |||
1109 | tdm_c_din0_a_pins: tdm-c-din0-a { | ||
1110 | mux { | ||
1111 | groups = "tdm_c_din0_a"; | ||
1112 | function = "tdm_c"; | ||
1113 | bias-disable; | ||
1114 | }; | ||
1115 | }; | ||
1116 | |||
1117 | tdm_c_din0_z_pins: tdm-c-din0-z { | ||
1118 | mux { | ||
1119 | groups = "tdm_c_din0_z"; | ||
1120 | function = "tdm_c"; | ||
1121 | bias-disable; | ||
1122 | }; | ||
1123 | }; | ||
1124 | |||
1125 | tdm_c_din1_a_pins: tdm-c-din1-a { | ||
1126 | mux { | ||
1127 | groups = "tdm_c_din1_a"; | ||
1128 | function = "tdm_c"; | ||
1129 | bias-disable; | ||
1130 | }; | ||
1131 | }; | ||
1132 | |||
1133 | tdm_c_din1_z_pins: tdm-c-din1-z { | ||
1134 | mux { | ||
1135 | groups = "tdm_c_din1_z"; | ||
1136 | function = "tdm_c"; | ||
1137 | bias-disable; | ||
1138 | }; | ||
1139 | }; | ||
1140 | |||
1141 | tdm_c_din2_a_pins: tdm-c-din2-a { | ||
1142 | mux { | ||
1143 | groups = "tdm_c_din2_a"; | ||
1144 | function = "tdm_c"; | ||
1145 | bias-disable; | ||
1146 | }; | ||
1147 | }; | ||
1148 | |||
1149 | eth_leds_pins: eth-leds { | ||
1150 | mux { | ||
1151 | groups = "eth_link_led", | ||
1152 | "eth_act_led"; | ||
1153 | function = "eth"; | ||
1154 | bias-disable; | ||
1155 | }; | ||
1156 | }; | ||
1157 | |||
1158 | eth_pins: eth { | ||
1159 | mux { | ||
1160 | groups = "eth_mdio", | ||
1161 | "eth_mdc", | ||
1162 | "eth_rgmii_rx_clk", | ||
1163 | "eth_rx_dv", | ||
1164 | "eth_rxd0", | ||
1165 | "eth_rxd1", | ||
1166 | "eth_txen", | ||
1167 | "eth_txd0", | ||
1168 | "eth_txd1"; | ||
1169 | function = "eth"; | ||
1170 | drive-strength-microamp = <4000>; | ||
1171 | bias-disable; | ||
1172 | }; | ||
1173 | }; | ||
1174 | |||
1175 | eth_rgmii_pins: eth-rgmii { | ||
1176 | mux { | ||
1177 | groups = "eth_rxd2_rgmii", | ||
1178 | "eth_rxd3_rgmii", | ||
1179 | "eth_rgmii_tx_clk", | ||
1180 | "eth_txd2_rgmii", | ||
1181 | "eth_txd3_rgmii"; | ||
1182 | function = "eth"; | ||
1183 | drive-strength-microamp = <4000>; | ||
1184 | bias-disable; | ||
1185 | }; | ||
1186 | }; | ||
1187 | |||
1188 | tdm_c_din2_z_pins: tdm-c-din2-z { | ||
1189 | mux { | ||
1190 | groups = "tdm_c_din2_z"; | ||
1191 | function = "tdm_c"; | ||
1192 | bias-disable; | ||
1193 | }; | ||
1194 | }; | ||
1195 | |||
1196 | tdm_c_din3_a_pins: tdm-c-din3-a { | ||
1197 | mux { | ||
1198 | groups = "tdm_c_din3_a"; | ||
1199 | function = "tdm_c"; | ||
1200 | bias-disable; | ||
1201 | }; | ||
1202 | }; | ||
1203 | |||
1204 | tdm_c_din3_z_pins: tdm-c-din3-z { | ||
1205 | mux { | ||
1206 | groups = "tdm_c_din3_z"; | ||
1207 | function = "tdm_c"; | ||
1208 | bias-disable; | ||
1209 | }; | ||
1210 | }; | ||
1211 | |||
1212 | tdm_c_dout0_a_pins: tdm-c-dout0-a { | ||
1213 | mux { | ||
1214 | groups = "tdm_c_dout0_a"; | ||
1215 | function = "tdm_c"; | ||
1216 | bias-disable; | ||
1217 | drive-strength-microamp = <3000>; | ||
1218 | }; | ||
1219 | }; | ||
1220 | |||
1221 | tdm_c_dout0_z_pins: tdm-c-dout0-z { | ||
1222 | mux { | ||
1223 | groups = "tdm_c_dout0_z"; | ||
1224 | function = "tdm_c"; | ||
1225 | bias-disable; | ||
1226 | drive-strength-microamp = <3000>; | ||
1227 | }; | ||
1228 | }; | ||
1229 | |||
1230 | tdm_c_dout1_a_pins: tdm-c-dout1-a { | ||
1231 | mux { | ||
1232 | groups = "tdm_c_dout1_a"; | ||
1233 | function = "tdm_c"; | ||
1234 | bias-disable; | ||
1235 | drive-strength-microamp = <3000>; | ||
1236 | }; | ||
1237 | }; | ||
1238 | |||
1239 | tdm_c_dout1_z_pins: tdm-c-dout1-z { | ||
1240 | mux { | ||
1241 | groups = "tdm_c_dout1_z"; | ||
1242 | function = "tdm_c"; | ||
1243 | bias-disable; | ||
1244 | drive-strength-microamp = <3000>; | ||
1245 | }; | ||
1246 | }; | ||
1247 | |||
1248 | tdm_c_dout2_a_pins: tdm-c-dout2-a { | ||
1249 | mux { | ||
1250 | groups = "tdm_c_dout2_a"; | ||
1251 | function = "tdm_c"; | ||
1252 | bias-disable; | ||
1253 | drive-strength-microamp = <3000>; | ||
1254 | }; | ||
1255 | }; | ||
1256 | |||
1257 | tdm_c_dout2_z_pins: tdm-c-dout2-z { | ||
1258 | mux { | ||
1259 | groups = "tdm_c_dout2_z"; | ||
1260 | function = "tdm_c"; | ||
1261 | bias-disable; | ||
1262 | drive-strength-microamp = <3000>; | ||
1263 | }; | ||
1264 | }; | ||
1265 | |||
1266 | tdm_c_dout3_a_pins: tdm-c-dout3-a { | ||
1267 | mux { | ||
1268 | groups = "tdm_c_dout3_a"; | ||
1269 | function = "tdm_c"; | ||
1270 | bias-disable; | ||
1271 | drive-strength-microamp = <3000>; | ||
1272 | }; | ||
1273 | }; | ||
1274 | |||
1275 | tdm_c_dout3_z_pins: tdm-c-dout3-z { | ||
1276 | mux { | ||
1277 | groups = "tdm_c_dout3_z"; | ||
1278 | function = "tdm_c"; | ||
1279 | bias-disable; | ||
1280 | drive-strength-microamp = <3000>; | ||
1281 | }; | ||
1282 | }; | ||
1283 | |||
1284 | tdm_c_fs_a_pins: tdm-c-fs-a { | ||
1285 | mux { | ||
1286 | groups = "tdm_c_fs_a"; | ||
1287 | function = "tdm_c"; | ||
1288 | bias-disable; | ||
1289 | drive-strength-microamp = <3000>; | ||
1290 | }; | ||
1291 | }; | ||
1292 | |||
1293 | tdm_c_fs_z_pins: tdm-c-fs-z { | ||
1294 | mux { | ||
1295 | groups = "tdm_c_fs_z"; | ||
1296 | function = "tdm_c"; | ||
1297 | bias-disable; | ||
1298 | drive-strength-microamp = <3000>; | ||
1299 | }; | ||
1300 | }; | ||
1301 | |||
1302 | tdm_c_sclk_a_pins: tdm-c-sclk-a { | ||
1303 | mux { | ||
1304 | groups = "tdm_c_sclk_a"; | ||
1305 | function = "tdm_c"; | ||
1306 | bias-disable; | ||
1307 | drive-strength-microamp = <3000>; | ||
1308 | }; | ||
1309 | }; | ||
1310 | |||
1311 | tdm_c_sclk_z_pins: tdm-c-sclk-z { | ||
1312 | mux { | ||
1313 | groups = "tdm_c_sclk_z"; | ||
1314 | function = "tdm_c"; | ||
1315 | bias-disable; | ||
1316 | drive-strength-microamp = <3000>; | ||
1317 | }; | ||
1318 | }; | ||
1319 | |||
1320 | tdm_c_slv_fs_a_pins: tdm-c-slv-fs-a { | ||
1321 | mux { | ||
1322 | groups = "tdm_c_slv_fs_a"; | ||
1323 | function = "tdm_c"; | ||
1324 | bias-disable; | ||
1325 | }; | ||
1326 | }; | ||
1327 | |||
1328 | tdm_c_slv_fs_z_pins: tdm-c-slv-fs-z { | ||
1329 | mux { | ||
1330 | groups = "tdm_c_slv_fs_z"; | ||
1331 | function = "tdm_c"; | ||
1332 | bias-disable; | ||
1333 | }; | ||
1334 | }; | ||
1335 | |||
1336 | tdm_c_slv_sclk_a_pins: tdm-c-slv-sclk-a { | ||
1337 | mux { | ||
1338 | groups = "tdm_c_slv_sclk_a"; | ||
1339 | function = "tdm_c"; | ||
1340 | bias-disable; | ||
1341 | }; | ||
1342 | }; | ||
1343 | |||
1344 | tdm_c_slv_sclk_z_pins: tdm-c-slv-sclk-z { | ||
1345 | mux { | ||
1346 | groups = "tdm_c_slv_sclk_z"; | ||
1347 | function = "tdm_c"; | ||
1348 | bias-disable; | ||
1349 | }; | ||
1350 | }; | ||
1351 | |||
205 | uart_a_pins: uart-a { | 1352 | uart_a_pins: uart-a { |
206 | mux { | 1353 | mux { |
207 | groups = "uart_a_tx", | 1354 | groups = "uart_a_tx", |
@@ -303,6 +1450,282 @@ | |||
303 | }; | 1450 | }; |
304 | }; | 1451 | }; |
305 | 1452 | ||
1453 | pdm: audio-controller@40000 { | ||
1454 | compatible = "amlogic,g12a-pdm", | ||
1455 | "amlogic,axg-pdm"; | ||
1456 | reg = <0x0 0x40000 0x0 0x34>; | ||
1457 | #sound-dai-cells = <0>; | ||
1458 | sound-name-prefix = "PDM"; | ||
1459 | clocks = <&clkc_audio AUD_CLKID_PDM>, | ||
1460 | <&clkc_audio AUD_CLKID_PDM_DCLK>, | ||
1461 | <&clkc_audio AUD_CLKID_PDM_SYSCLK>; | ||
1462 | clock-names = "pclk", "dclk", "sysclk"; | ||
1463 | status = "disabled"; | ||
1464 | }; | ||
1465 | |||
1466 | audio: bus@42000 { | ||
1467 | compatible = "simple-bus"; | ||
1468 | reg = <0x0 0x42000 0x0 0x2000>; | ||
1469 | #address-cells = <2>; | ||
1470 | #size-cells = <2>; | ||
1471 | ranges = <0x0 0x0 0x0 0x42000 0x0 0x2000>; | ||
1472 | |||
1473 | clkc_audio: clock-controller@0 { | ||
1474 | status = "disabled"; | ||
1475 | compatible = "amlogic,g12a-audio-clkc"; | ||
1476 | reg = <0x0 0x0 0x0 0xb4>; | ||
1477 | #clock-cells = <1>; | ||
1478 | |||
1479 | clocks = <&clkc CLKID_AUDIO>, | ||
1480 | <&clkc CLKID_MPLL0>, | ||
1481 | <&clkc CLKID_MPLL1>, | ||
1482 | <&clkc CLKID_MPLL2>, | ||
1483 | <&clkc CLKID_MPLL3>, | ||
1484 | <&clkc CLKID_HIFI_PLL>, | ||
1485 | <&clkc CLKID_FCLK_DIV3>, | ||
1486 | <&clkc CLKID_FCLK_DIV4>, | ||
1487 | <&clkc CLKID_GP0_PLL>; | ||
1488 | clock-names = "pclk", | ||
1489 | "mst_in0", | ||
1490 | "mst_in1", | ||
1491 | "mst_in2", | ||
1492 | "mst_in3", | ||
1493 | "mst_in4", | ||
1494 | "mst_in5", | ||
1495 | "mst_in6", | ||
1496 | "mst_in7"; | ||
1497 | |||
1498 | resets = <&reset RESET_AUDIO>; | ||
1499 | }; | ||
1500 | |||
1501 | toddr_a: audio-controller@100 { | ||
1502 | compatible = "amlogic,g12a-toddr", | ||
1503 | "amlogic,axg-toddr"; | ||
1504 | reg = <0x0 0x100 0x0 0x1c>; | ||
1505 | #sound-dai-cells = <0>; | ||
1506 | sound-name-prefix = "TODDR_A"; | ||
1507 | interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>; | ||
1508 | clocks = <&clkc_audio AUD_CLKID_TODDR_A>; | ||
1509 | resets = <&arb AXG_ARB_TODDR_A>; | ||
1510 | status = "disabled"; | ||
1511 | }; | ||
1512 | |||
1513 | toddr_b: audio-controller@140 { | ||
1514 | compatible = "amlogic,g12a-toddr", | ||
1515 | "amlogic,axg-toddr"; | ||
1516 | reg = <0x0 0x140 0x0 0x1c>; | ||
1517 | #sound-dai-cells = <0>; | ||
1518 | sound-name-prefix = "TODDR_B"; | ||
1519 | interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>; | ||
1520 | clocks = <&clkc_audio AUD_CLKID_TODDR_B>; | ||
1521 | resets = <&arb AXG_ARB_TODDR_B>; | ||
1522 | status = "disabled"; | ||
1523 | }; | ||
1524 | |||
1525 | toddr_c: audio-controller@180 { | ||
1526 | compatible = "amlogic,g12a-toddr", | ||
1527 | "amlogic,axg-toddr"; | ||
1528 | reg = <0x0 0x180 0x0 0x1c>; | ||
1529 | #sound-dai-cells = <0>; | ||
1530 | sound-name-prefix = "TODDR_C"; | ||
1531 | interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>; | ||
1532 | clocks = <&clkc_audio AUD_CLKID_TODDR_C>; | ||
1533 | resets = <&arb AXG_ARB_TODDR_C>; | ||
1534 | status = "disabled"; | ||
1535 | }; | ||
1536 | |||
1537 | frddr_a: audio-controller@1c0 { | ||
1538 | compatible = "amlogic,g12a-frddr", | ||
1539 | "amlogic,axg-frddr"; | ||
1540 | reg = <0x0 0x1c0 0x0 0x1c>; | ||
1541 | #sound-dai-cells = <0>; | ||
1542 | sound-name-prefix = "FRDDR_A"; | ||
1543 | interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>; | ||
1544 | clocks = <&clkc_audio AUD_CLKID_FRDDR_A>; | ||
1545 | resets = <&arb AXG_ARB_FRDDR_A>; | ||
1546 | status = "disabled"; | ||
1547 | }; | ||
1548 | |||
1549 | frddr_b: audio-controller@200 { | ||
1550 | compatible = "amlogic,g12a-frddr", | ||
1551 | "amlogic,axg-frddr"; | ||
1552 | reg = <0x0 0x200 0x0 0x1c>; | ||
1553 | #sound-dai-cells = <0>; | ||
1554 | sound-name-prefix = "FRDDR_B"; | ||
1555 | interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>; | ||
1556 | clocks = <&clkc_audio AUD_CLKID_FRDDR_B>; | ||
1557 | resets = <&arb AXG_ARB_FRDDR_B>; | ||
1558 | status = "disabled"; | ||
1559 | }; | ||
1560 | |||
1561 | frddr_c: audio-controller@240 { | ||
1562 | compatible = "amlogic,g12a-frddr", | ||
1563 | "amlogic,axg-frddr"; | ||
1564 | reg = <0x0 0x240 0x0 0x1c>; | ||
1565 | #sound-dai-cells = <0>; | ||
1566 | sound-name-prefix = "FRDDR_C"; | ||
1567 | interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>; | ||
1568 | clocks = <&clkc_audio AUD_CLKID_FRDDR_C>; | ||
1569 | resets = <&arb AXG_ARB_FRDDR_C>; | ||
1570 | status = "disabled"; | ||
1571 | }; | ||
1572 | |||
1573 | arb: reset-controller@280 { | ||
1574 | status = "disabled"; | ||
1575 | compatible = "amlogic,meson-axg-audio-arb"; | ||
1576 | reg = <0x0 0x280 0x0 0x4>; | ||
1577 | #reset-cells = <1>; | ||
1578 | clocks = <&clkc_audio AUD_CLKID_DDR_ARB>; | ||
1579 | }; | ||
1580 | |||
1581 | tdmin_a: audio-controller@300 { | ||
1582 | compatible = "amlogic,g12a-tdmin", | ||
1583 | "amlogic,axg-tdmin"; | ||
1584 | reg = <0x0 0x300 0x0 0x40>; | ||
1585 | sound-name-prefix = "TDMIN_A"; | ||
1586 | clocks = <&clkc_audio AUD_CLKID_TDMIN_A>, | ||
1587 | <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>, | ||
1588 | <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>, | ||
1589 | <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>, | ||
1590 | <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>; | ||
1591 | clock-names = "pclk", "sclk", "sclk_sel", | ||
1592 | "lrclk", "lrclk_sel"; | ||
1593 | status = "disabled"; | ||
1594 | }; | ||
1595 | |||
1596 | tdmin_b: audio-controller@340 { | ||
1597 | compatible = "amlogic,g12a-tdmin", | ||
1598 | "amlogic,axg-tdmin"; | ||
1599 | reg = <0x0 0x340 0x0 0x40>; | ||
1600 | sound-name-prefix = "TDMIN_B"; | ||
1601 | clocks = <&clkc_audio AUD_CLKID_TDMIN_B>, | ||
1602 | <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>, | ||
1603 | <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>, | ||
1604 | <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>, | ||
1605 | <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>; | ||
1606 | clock-names = "pclk", "sclk", "sclk_sel", | ||
1607 | "lrclk", "lrclk_sel"; | ||
1608 | status = "disabled"; | ||
1609 | }; | ||
1610 | |||
1611 | tdmin_c: audio-controller@380 { | ||
1612 | compatible = "amlogic,g12a-tdmin", | ||
1613 | "amlogic,axg-tdmin"; | ||
1614 | reg = <0x0 0x380 0x0 0x40>; | ||
1615 | sound-name-prefix = "TDMIN_C"; | ||
1616 | clocks = <&clkc_audio AUD_CLKID_TDMIN_C>, | ||
1617 | <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>, | ||
1618 | <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>, | ||
1619 | <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>, | ||
1620 | <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>; | ||
1621 | clock-names = "pclk", "sclk", "sclk_sel", | ||
1622 | "lrclk", "lrclk_sel"; | ||
1623 | status = "disabled"; | ||
1624 | }; | ||
1625 | |||
1626 | tdmin_lb: audio-controller@3c0 { | ||
1627 | compatible = "amlogic,g12a-tdmin", | ||
1628 | "amlogic,axg-tdmin"; | ||
1629 | reg = <0x0 0x3c0 0x0 0x40>; | ||
1630 | sound-name-prefix = "TDMIN_LB"; | ||
1631 | clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>, | ||
1632 | <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>, | ||
1633 | <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>, | ||
1634 | <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>, | ||
1635 | <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>; | ||
1636 | clock-names = "pclk", "sclk", "sclk_sel", | ||
1637 | "lrclk", "lrclk_sel"; | ||
1638 | status = "disabled"; | ||
1639 | }; | ||
1640 | |||
1641 | spdifin: audio-controller@400 { | ||
1642 | compatible = "amlogic,g12a-spdifin", | ||
1643 | "amlogic,axg-spdifin"; | ||
1644 | reg = <0x0 0x400 0x0 0x30>; | ||
1645 | #sound-dai-cells = <0>; | ||
1646 | sound-name-prefix = "SPDIFIN"; | ||
1647 | interrupts = <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>; | ||
1648 | clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, | ||
1649 | <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; | ||
1650 | clock-names = "pclk", "refclk"; | ||
1651 | status = "disabled"; | ||
1652 | }; | ||
1653 | |||
1654 | spdifout: audio-controller@480 { | ||
1655 | compatible = "amlogic,g12a-spdifout", | ||
1656 | "amlogic,axg-spdifout"; | ||
1657 | reg = <0x0 0x480 0x0 0x50>; | ||
1658 | #sound-dai-cells = <0>; | ||
1659 | sound-name-prefix = "SPDIFOUT"; | ||
1660 | clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>, | ||
1661 | <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>; | ||
1662 | clock-names = "pclk", "mclk"; | ||
1663 | status = "disabled"; | ||
1664 | }; | ||
1665 | |||
1666 | tdmout_a: audio-controller@500 { | ||
1667 | compatible = "amlogic,g12a-tdmout"; | ||
1668 | reg = <0x0 0x500 0x0 0x40>; | ||
1669 | sound-name-prefix = "TDMOUT_A"; | ||
1670 | clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>, | ||
1671 | <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>, | ||
1672 | <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>, | ||
1673 | <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>, | ||
1674 | <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>; | ||
1675 | clock-names = "pclk", "sclk", "sclk_sel", | ||
1676 | "lrclk", "lrclk_sel"; | ||
1677 | status = "disabled"; | ||
1678 | }; | ||
1679 | |||
1680 | tdmout_b: audio-controller@540 { | ||
1681 | compatible = "amlogic,g12a-tdmout"; | ||
1682 | reg = <0x0 0x540 0x0 0x40>; | ||
1683 | sound-name-prefix = "TDMOUT_B"; | ||
1684 | clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>, | ||
1685 | <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>, | ||
1686 | <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>, | ||
1687 | <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>, | ||
1688 | <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>; | ||
1689 | clock-names = "pclk", "sclk", "sclk_sel", | ||
1690 | "lrclk", "lrclk_sel"; | ||
1691 | status = "disabled"; | ||
1692 | }; | ||
1693 | |||
1694 | tdmout_c: audio-controller@580 { | ||
1695 | compatible = "amlogic,g12a-tdmout"; | ||
1696 | reg = <0x0 0x580 0x0 0x40>; | ||
1697 | sound-name-prefix = "TDMOUT_C"; | ||
1698 | clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>, | ||
1699 | <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>, | ||
1700 | <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>, | ||
1701 | <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>, | ||
1702 | <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>; | ||
1703 | clock-names = "pclk", "sclk", "sclk_sel", | ||
1704 | "lrclk", "lrclk_sel"; | ||
1705 | status = "disabled"; | ||
1706 | }; | ||
1707 | |||
1708 | spdifout_b: audio-controller@680 { | ||
1709 | compatible = "amlogic,g12a-spdifout", | ||
1710 | "amlogic,axg-spdifout"; | ||
1711 | reg = <0x0 0x680 0x0 0x50>; | ||
1712 | #sound-dai-cells = <0>; | ||
1713 | sound-name-prefix = "SPDIFOUT_B"; | ||
1714 | clocks = <&clkc_audio AUD_CLKID_SPDIFOUT_B>, | ||
1715 | <&clkc_audio AUD_CLKID_SPDIFOUT_B_CLK>; | ||
1716 | clock-names = "pclk", "mclk"; | ||
1717 | status = "disabled"; | ||
1718 | }; | ||
1719 | |||
1720 | tohdmitx: audio-controller@744 { | ||
1721 | compatible = "amlogic,g12a-tohdmitx"; | ||
1722 | reg = <0x0 0x744 0x0 0x4>; | ||
1723 | #sound-dai-cells = <1>; | ||
1724 | sound-name-prefix = "TOHDMITX"; | ||
1725 | status = "disabled"; | ||
1726 | }; | ||
1727 | }; | ||
1728 | |||
306 | usb3_pcie_phy: phy@46000 { | 1729 | usb3_pcie_phy: phy@46000 { |
307 | compatible = "amlogic,g12a-usb3-pcie-phy"; | 1730 | compatible = "amlogic,g12a-usb3-pcie-phy"; |
308 | reg = <0x0 0x46000 0x0 0x2000>; | 1731 | reg = <0x0 0x46000 0x0 0x2000>; |
@@ -314,6 +1737,38 @@ | |||
314 | assigned-clock-rates = <100000000>; | 1737 | assigned-clock-rates = <100000000>; |
315 | #phy-cells = <1>; | 1738 | #phy-cells = <1>; |
316 | }; | 1739 | }; |
1740 | |||
1741 | eth_phy: mdio-multiplexer@4c000 { | ||
1742 | compatible = "amlogic,g12a-mdio-mux"; | ||
1743 | reg = <0x0 0x4c000 0x0 0xa4>; | ||
1744 | clocks = <&clkc CLKID_ETH_PHY>, | ||
1745 | <&xtal>, | ||
1746 | <&clkc CLKID_MPLL_50M>; | ||
1747 | clock-names = "pclk", "clkin0", "clkin1"; | ||
1748 | mdio-parent-bus = <&mdio0>; | ||
1749 | #address-cells = <1>; | ||
1750 | #size-cells = <0>; | ||
1751 | |||
1752 | ext_mdio: mdio@0 { | ||
1753 | reg = <0>; | ||
1754 | #address-cells = <1>; | ||
1755 | #size-cells = <0>; | ||
1756 | }; | ||
1757 | |||
1758 | int_mdio: mdio@1 { | ||
1759 | reg = <1>; | ||
1760 | #address-cells = <1>; | ||
1761 | #size-cells = <0>; | ||
1762 | |||
1763 | internal_ephy: ethernet_phy@8 { | ||
1764 | compatible = "ethernet-phy-id0180.3301", | ||
1765 | "ethernet-phy-ieee802.3-c22"; | ||
1766 | interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; | ||
1767 | reg = <8>; | ||
1768 | max-speed = <100>; | ||
1769 | }; | ||
1770 | }; | ||
1771 | }; | ||
317 | }; | 1772 | }; |
318 | 1773 | ||
319 | aobus: bus@ff800000 { | 1774 | aobus: bus@ff800000 { |
@@ -401,6 +1856,145 @@ | |||
401 | gpio-ranges = <&ao_pinctrl 0 0 15>; | 1856 | gpio-ranges = <&ao_pinctrl 0 0 15>; |
402 | }; | 1857 | }; |
403 | 1858 | ||
1859 | i2c_ao_sck_pins: i2c_ao_sck_pins { | ||
1860 | mux { | ||
1861 | groups = "i2c_ao_sck"; | ||
1862 | function = "i2c_ao"; | ||
1863 | bias-disable; | ||
1864 | drive-strength-microamp = <3000>; | ||
1865 | }; | ||
1866 | }; | ||
1867 | |||
1868 | i2c_ao_sda_pins: i2c_ao_sda { | ||
1869 | mux { | ||
1870 | groups = "i2c_ao_sda"; | ||
1871 | function = "i2c_ao"; | ||
1872 | bias-disable; | ||
1873 | drive-strength-microamp = <3000>; | ||
1874 | }; | ||
1875 | }; | ||
1876 | |||
1877 | i2c_ao_sck_e_pins: i2c_ao_sck_e { | ||
1878 | mux { | ||
1879 | groups = "i2c_ao_sck_e"; | ||
1880 | function = "i2c_ao"; | ||
1881 | bias-disable; | ||
1882 | drive-strength-microamp = <3000>; | ||
1883 | }; | ||
1884 | }; | ||
1885 | |||
1886 | i2c_ao_sda_e_pins: i2c_ao_sda_e { | ||
1887 | mux { | ||
1888 | groups = "i2c_ao_sda_e"; | ||
1889 | function = "i2c_ao"; | ||
1890 | bias-disable; | ||
1891 | drive-strength-microamp = <3000>; | ||
1892 | }; | ||
1893 | }; | ||
1894 | |||
1895 | mclk0_ao_pins: mclk0-ao { | ||
1896 | mux { | ||
1897 | groups = "mclk0_ao"; | ||
1898 | function = "mclk0_ao"; | ||
1899 | bias-disable; | ||
1900 | drive-strength-microamp = <3000>; | ||
1901 | }; | ||
1902 | }; | ||
1903 | |||
1904 | tdm_ao_b_din0_pins: tdm-ao-b-din0 { | ||
1905 | mux { | ||
1906 | groups = "tdm_ao_b_din0"; | ||
1907 | function = "tdm_ao_b"; | ||
1908 | bias-disable; | ||
1909 | }; | ||
1910 | }; | ||
1911 | |||
1912 | spdif_ao_out_pins: spdif-ao-out { | ||
1913 | mux { | ||
1914 | groups = "spdif_ao_out"; | ||
1915 | function = "spdif_ao_out"; | ||
1916 | drive-strength-microamp = <500>; | ||
1917 | bias-disable; | ||
1918 | }; | ||
1919 | }; | ||
1920 | |||
1921 | tdm_ao_b_din1_pins: tdm-ao-b-din1 { | ||
1922 | mux { | ||
1923 | groups = "tdm_ao_b_din1"; | ||
1924 | function = "tdm_ao_b"; | ||
1925 | bias-disable; | ||
1926 | }; | ||
1927 | }; | ||
1928 | |||
1929 | tdm_ao_b_din2_pins: tdm-ao-b-din2 { | ||
1930 | mux { | ||
1931 | groups = "tdm_ao_b_din2"; | ||
1932 | function = "tdm_ao_b"; | ||
1933 | bias-disable; | ||
1934 | }; | ||
1935 | }; | ||
1936 | |||
1937 | tdm_ao_b_dout0_pins: tdm-ao-b-dout0 { | ||
1938 | mux { | ||
1939 | groups = "tdm_ao_b_dout0"; | ||
1940 | function = "tdm_ao_b"; | ||
1941 | bias-disable; | ||
1942 | drive-strength-microamp = <3000>; | ||
1943 | }; | ||
1944 | }; | ||
1945 | |||
1946 | tdm_ao_b_dout1_pins: tdm-ao-b-dout1 { | ||
1947 | mux { | ||
1948 | groups = "tdm_ao_b_dout1"; | ||
1949 | function = "tdm_ao_b"; | ||
1950 | bias-disable; | ||
1951 | drive-strength-microamp = <3000>; | ||
1952 | }; | ||
1953 | }; | ||
1954 | |||
1955 | tdm_ao_b_dout2_pins: tdm-ao-b-dout2 { | ||
1956 | mux { | ||
1957 | groups = "tdm_ao_b_dout2"; | ||
1958 | function = "tdm_ao_b"; | ||
1959 | bias-disable; | ||
1960 | drive-strength-microamp = <3000>; | ||
1961 | }; | ||
1962 | }; | ||
1963 | |||
1964 | tdm_ao_b_fs_pins: tdm-ao-b-fs { | ||
1965 | mux { | ||
1966 | groups = "tdm_ao_b_fs"; | ||
1967 | function = "tdm_ao_b"; | ||
1968 | bias-disable; | ||
1969 | drive-strength-microamp = <3000>; | ||
1970 | }; | ||
1971 | }; | ||
1972 | |||
1973 | tdm_ao_b_sclk_pins: tdm-ao-b-sclk { | ||
1974 | mux { | ||
1975 | groups = "tdm_ao_b_sclk"; | ||
1976 | function = "tdm_ao_b"; | ||
1977 | bias-disable; | ||
1978 | drive-strength-microamp = <3000>; | ||
1979 | }; | ||
1980 | }; | ||
1981 | |||
1982 | tdm_ao_b_slv_fs_pins: tdm-ao-b-slv-fs { | ||
1983 | mux { | ||
1984 | groups = "tdm_ao_b_slv_fs"; | ||
1985 | function = "tdm_ao_b"; | ||
1986 | bias-disable; | ||
1987 | }; | ||
1988 | }; | ||
1989 | |||
1990 | tdm_ao_b_slv_sclk_pins: tdm-ao-b-slv-sclk { | ||
1991 | mux { | ||
1992 | groups = "tdm_ao_b_slv_sclk"; | ||
1993 | function = "tdm_ao_b"; | ||
1994 | bias-disable; | ||
1995 | }; | ||
1996 | }; | ||
1997 | |||
404 | uart_ao_a_pins: uart-a-ao { | 1998 | uart_ao_a_pins: uart-a-ao { |
405 | mux { | 1999 | mux { |
406 | groups = "uart_ao_a_tx", | 2000 | groups = "uart_ao_a_tx", |
@@ -418,6 +2012,69 @@ | |||
418 | bias-disable; | 2012 | bias-disable; |
419 | }; | 2013 | }; |
420 | }; | 2014 | }; |
2015 | |||
2016 | pwm_ao_a_pins: pwm-ao-a { | ||
2017 | mux { | ||
2018 | groups = "pwm_ao_a"; | ||
2019 | function = "pwm_ao_a"; | ||
2020 | bias-disable; | ||
2021 | }; | ||
2022 | }; | ||
2023 | |||
2024 | pwm_ao_b_pins: pwm-ao-b { | ||
2025 | mux { | ||
2026 | groups = "pwm_ao_b"; | ||
2027 | function = "pwm_ao_b"; | ||
2028 | bias-disable; | ||
2029 | }; | ||
2030 | }; | ||
2031 | |||
2032 | pwm_ao_c_4_pins: pwm-ao-c-4 { | ||
2033 | mux { | ||
2034 | groups = "pwm_ao_c_4"; | ||
2035 | function = "pwm_ao_c"; | ||
2036 | bias-disable; | ||
2037 | }; | ||
2038 | }; | ||
2039 | |||
2040 | pwm_ao_c_6_pins: pwm-ao-c-6 { | ||
2041 | mux { | ||
2042 | groups = "pwm_ao_c_6"; | ||
2043 | function = "pwm_ao_c"; | ||
2044 | bias-disable; | ||
2045 | }; | ||
2046 | }; | ||
2047 | |||
2048 | pwm_ao_d_5_pins: pwm-ao-d-5 { | ||
2049 | mux { | ||
2050 | groups = "pwm_ao_d_5"; | ||
2051 | function = "pwm_ao_d"; | ||
2052 | bias-disable; | ||
2053 | }; | ||
2054 | }; | ||
2055 | |||
2056 | pwm_ao_d_10_pins: pwm-ao-d-10 { | ||
2057 | mux { | ||
2058 | groups = "pwm_ao_d_10"; | ||
2059 | function = "pwm_ao_d"; | ||
2060 | bias-disable; | ||
2061 | }; | ||
2062 | }; | ||
2063 | |||
2064 | pwm_ao_d_e_pins: pwm-ao-d-e { | ||
2065 | mux { | ||
2066 | groups = "pwm_ao_d_e"; | ||
2067 | function = "pwm_ao_d"; | ||
2068 | }; | ||
2069 | }; | ||
2070 | |||
2071 | remote_input_ao_pins: remote-input-ao { | ||
2072 | mux { | ||
2073 | groups = "remote_ao_input"; | ||
2074 | function = "remote_ao_input"; | ||
2075 | bias-disable; | ||
2076 | }; | ||
2077 | }; | ||
421 | }; | 2078 | }; |
422 | }; | 2079 | }; |
423 | 2080 | ||
@@ -445,12 +2102,19 @@ | |||
445 | status = "disabled"; | 2102 | status = "disabled"; |
446 | }; | 2103 | }; |
447 | 2104 | ||
2105 | pwm_AO_cd: pwm@2000 { | ||
2106 | compatible = "amlogic,meson-g12a-ao-pwm-cd"; | ||
2107 | reg = <0x0 0x2000 0x0 0x20>; | ||
2108 | #pwm-cells = <3>; | ||
2109 | status = "disabled"; | ||
2110 | }; | ||
2111 | |||
448 | uart_AO: serial@3000 { | 2112 | uart_AO: serial@3000 { |
449 | compatible = "amlogic,meson-gx-uart", | 2113 | compatible = "amlogic,meson-gx-uart", |
450 | "amlogic,meson-ao-uart"; | 2114 | "amlogic,meson-ao-uart"; |
451 | reg = <0x0 0x3000 0x0 0x18>; | 2115 | reg = <0x0 0x3000 0x0 0x18>; |
452 | interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; | 2116 | interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; |
453 | clocks = <&xtal>, <&xtal>, <&xtal>; | 2117 | clocks = <&xtal>, <&clkc_AO CLKID_AO_UART>, <&xtal>; |
454 | clock-names = "xtal", "pclk", "baud"; | 2118 | clock-names = "xtal", "pclk", "baud"; |
455 | status = "disabled"; | 2119 | status = "disabled"; |
456 | }; | 2120 | }; |
@@ -460,11 +2124,35 @@ | |||
460 | "amlogic,meson-ao-uart"; | 2124 | "amlogic,meson-ao-uart"; |
461 | reg = <0x0 0x4000 0x0 0x18>; | 2125 | reg = <0x0 0x4000 0x0 0x18>; |
462 | interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>; | 2126 | interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>; |
463 | clocks = <&xtal>, <&xtal>, <&xtal>; | 2127 | clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>; |
464 | clock-names = "xtal", "pclk", "baud"; | 2128 | clock-names = "xtal", "pclk", "baud"; |
465 | status = "disabled"; | 2129 | status = "disabled"; |
466 | }; | 2130 | }; |
467 | 2131 | ||
2132 | i2c_AO: i2c@5000 { | ||
2133 | compatible = "amlogic,meson-axg-i2c"; | ||
2134 | status = "disabled"; | ||
2135 | reg = <0x0 0x05000 0x0 0x20>; | ||
2136 | interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>; | ||
2137 | #address-cells = <1>; | ||
2138 | #size-cells = <0>; | ||
2139 | clocks = <&clkc CLKID_I2C>; | ||
2140 | }; | ||
2141 | |||
2142 | pwm_AO_ab: pwm@7000 { | ||
2143 | compatible = "amlogic,meson-g12a-ao-pwm-ab"; | ||
2144 | reg = <0x0 0x7000 0x0 0x20>; | ||
2145 | #pwm-cells = <3>; | ||
2146 | status = "disabled"; | ||
2147 | }; | ||
2148 | |||
2149 | ir: ir@8000 { | ||
2150 | compatible = "amlogic,meson-gxbb-ir"; | ||
2151 | reg = <0x0 0x8000 0x0 0x20>; | ||
2152 | interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>; | ||
2153 | status = "disabled"; | ||
2154 | }; | ||
2155 | |||
468 | saradc: adc@9000 { | 2156 | saradc: adc@9000 { |
469 | compatible = "amlogic,meson-g12a-saradc", | 2157 | compatible = "amlogic,meson-g12a-saradc", |
470 | "amlogic,meson-saradc"; | 2158 | "amlogic,meson-saradc"; |
@@ -533,6 +2221,76 @@ | |||
533 | #reset-cells = <1>; | 2221 | #reset-cells = <1>; |
534 | }; | 2222 | }; |
535 | 2223 | ||
2224 | gpio_intc: interrupt-controller@f080 { | ||
2225 | compatible = "amlogic,meson-g12a-gpio-intc", | ||
2226 | "amlogic,meson-gpio-intc"; | ||
2227 | reg = <0x0 0xf080 0x0 0x10>; | ||
2228 | interrupt-controller; | ||
2229 | #interrupt-cells = <2>; | ||
2230 | amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>; | ||
2231 | }; | ||
2232 | |||
2233 | pwm_ef: pwm@19000 { | ||
2234 | compatible = "amlogic,meson-g12a-ee-pwm"; | ||
2235 | reg = <0x0 0x19000 0x0 0x20>; | ||
2236 | #pwm-cells = <3>; | ||
2237 | status = "disabled"; | ||
2238 | }; | ||
2239 | |||
2240 | pwm_cd: pwm@1a000 { | ||
2241 | compatible = "amlogic,meson-g12a-ee-pwm"; | ||
2242 | reg = <0x0 0x1a000 0x0 0x20>; | ||
2243 | #pwm-cells = <3>; | ||
2244 | status = "disabled"; | ||
2245 | }; | ||
2246 | |||
2247 | pwm_ab: pwm@1b000 { | ||
2248 | compatible = "amlogic,meson-g12a-ee-pwm"; | ||
2249 | reg = <0x0 0x1b000 0x0 0x20>; | ||
2250 | #pwm-cells = <3>; | ||
2251 | status = "disabled"; | ||
2252 | }; | ||
2253 | |||
2254 | i2c3: i2c@1c000 { | ||
2255 | compatible = "amlogic,meson-axg-i2c"; | ||
2256 | status = "disabled"; | ||
2257 | reg = <0x0 0x1c000 0x0 0x20>; | ||
2258 | interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>; | ||
2259 | #address-cells = <1>; | ||
2260 | #size-cells = <0>; | ||
2261 | clocks = <&clkc CLKID_I2C>; | ||
2262 | }; | ||
2263 | |||
2264 | i2c2: i2c@1d000 { | ||
2265 | compatible = "amlogic,meson-axg-i2c"; | ||
2266 | status = "disabled"; | ||
2267 | reg = <0x0 0x1d000 0x0 0x20>; | ||
2268 | interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>; | ||
2269 | #address-cells = <1>; | ||
2270 | #size-cells = <0>; | ||
2271 | clocks = <&clkc CLKID_I2C>; | ||
2272 | }; | ||
2273 | |||
2274 | i2c1: i2c@1e000 { | ||
2275 | compatible = "amlogic,meson-axg-i2c"; | ||
2276 | status = "disabled"; | ||
2277 | reg = <0x0 0x1e000 0x0 0x20>; | ||
2278 | interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>; | ||
2279 | #address-cells = <1>; | ||
2280 | #size-cells = <0>; | ||
2281 | clocks = <&clkc CLKID_I2C>; | ||
2282 | }; | ||
2283 | |||
2284 | i2c0: i2c@1f000 { | ||
2285 | compatible = "amlogic,meson-axg-i2c"; | ||
2286 | status = "disabled"; | ||
2287 | reg = <0x0 0x1f000 0x0 0x20>; | ||
2288 | interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>; | ||
2289 | #address-cells = <1>; | ||
2290 | #size-cells = <0>; | ||
2291 | clocks = <&clkc CLKID_I2C>; | ||
2292 | }; | ||
2293 | |||
536 | clk_msr: clock-measure@18000 { | 2294 | clk_msr: clock-measure@18000 { |
537 | compatible = "amlogic,meson-g12a-clk-measure"; | 2295 | compatible = "amlogic,meson-g12a-clk-measure"; |
538 | reg = <0x0 0x18000 0x0 0x10>; | 2296 | reg = <0x0 0x18000 0x0 0x10>; |
@@ -566,6 +2324,43 @@ | |||
566 | }; | 2324 | }; |
567 | }; | 2325 | }; |
568 | 2326 | ||
2327 | sd_emmc_a: sd@ffe03000 { | ||
2328 | compatible = "amlogic,meson-axg-mmc"; | ||
2329 | reg = <0x0 0xffe03000 0x0 0x800>; | ||
2330 | interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>; | ||
2331 | status = "disabled"; | ||
2332 | clocks = <&clkc CLKID_SD_EMMC_A>, | ||
2333 | <&clkc CLKID_SD_EMMC_A_CLK0>, | ||
2334 | <&clkc CLKID_FCLK_DIV2>; | ||
2335 | clock-names = "core", "clkin0", "clkin1"; | ||
2336 | resets = <&reset RESET_SD_EMMC_A>; | ||
2337 | amlogic,dram-access-quirk; | ||
2338 | }; | ||
2339 | |||
2340 | sd_emmc_b: sd@ffe05000 { | ||
2341 | compatible = "amlogic,meson-axg-mmc"; | ||
2342 | reg = <0x0 0xffe05000 0x0 0x800>; | ||
2343 | interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>; | ||
2344 | status = "disabled"; | ||
2345 | clocks = <&clkc CLKID_SD_EMMC_B>, | ||
2346 | <&clkc CLKID_SD_EMMC_B_CLK0>, | ||
2347 | <&clkc CLKID_FCLK_DIV2>; | ||
2348 | clock-names = "core", "clkin0", "clkin1"; | ||
2349 | resets = <&reset RESET_SD_EMMC_B>; | ||
2350 | }; | ||
2351 | |||
2352 | sd_emmc_c: mmc@ffe07000 { | ||
2353 | compatible = "amlogic,meson-axg-mmc"; | ||
2354 | reg = <0x0 0xffe07000 0x0 0x800>; | ||
2355 | interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>; | ||
2356 | status = "disabled"; | ||
2357 | clocks = <&clkc CLKID_SD_EMMC_C>, | ||
2358 | <&clkc CLKID_SD_EMMC_C_CLK0>, | ||
2359 | <&clkc CLKID_FCLK_DIV2>; | ||
2360 | clock-names = "core", "clkin0", "clkin1"; | ||
2361 | resets = <&reset RESET_SD_EMMC_C>; | ||
2362 | }; | ||
2363 | |||
569 | usb: usb@ffe09000 { | 2364 | usb: usb@ffe09000 { |
570 | status = "disabled"; | 2365 | status = "disabled"; |
571 | compatible = "amlogic,meson-g12a-usb-ctrl"; | 2366 | compatible = "amlogic,meson-g12a-usb-ctrl"; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts new file mode 100644 index 000000000000..81780ffcc7f0 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dts | |||
@@ -0,0 +1,386 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
2 | /* | ||
3 | * Copyright (c) 2019 BayLibre, SAS | ||
4 | * Author: Neil Armstrong <narmstrong@baylibre.com> | ||
5 | */ | ||
6 | |||
7 | /dts-v1/; | ||
8 | |||
9 | #include "meson-g12b.dtsi" | ||
10 | #include <dt-bindings/input/input.h> | ||
11 | #include <dt-bindings/gpio/meson-g12a-gpio.h> | ||
12 | #include <dt-bindings/sound/meson-g12a-tohdmitx.h> | ||
13 | |||
14 | / { | ||
15 | compatible = "hardkernel,odroid-n2", "amlogic,g12b"; | ||
16 | model = "Hardkernel ODROID-N2"; | ||
17 | |||
18 | aliases { | ||
19 | serial0 = &uart_AO; | ||
20 | ethernet0 = ðmac; | ||
21 | }; | ||
22 | |||
23 | chosen { | ||
24 | stdout-path = "serial0:115200n8"; | ||
25 | }; | ||
26 | |||
27 | memory@0 { | ||
28 | device_type = "memory"; | ||
29 | reg = <0x0 0x0 0x0 0x40000000>; | ||
30 | }; | ||
31 | |||
32 | emmc_pwrseq: emmc-pwrseq { | ||
33 | compatible = "mmc-pwrseq-emmc"; | ||
34 | reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; | ||
35 | }; | ||
36 | |||
37 | leds { | ||
38 | compatible = "gpio-leds"; | ||
39 | |||
40 | blue { | ||
41 | label = "n2:blue"; | ||
42 | gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>; | ||
43 | linux,default-trigger = "heartbeat"; | ||
44 | }; | ||
45 | }; | ||
46 | |||
47 | tflash_vdd: regulator-tflash_vdd { | ||
48 | compatible = "regulator-fixed"; | ||
49 | |||
50 | regulator-name = "TFLASH_VDD"; | ||
51 | regulator-min-microvolt = <3300000>; | ||
52 | regulator-max-microvolt = <3300000>; | ||
53 | |||
54 | gpio = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>; | ||
55 | enable-active-high; | ||
56 | }; | ||
57 | |||
58 | tf_io: gpio-regulator-tf_io { | ||
59 | compatible = "regulator-gpio"; | ||
60 | |||
61 | regulator-name = "TF_IO"; | ||
62 | regulator-min-microvolt = <1800000>; | ||
63 | regulator-max-microvolt = <3300000>; | ||
64 | |||
65 | gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; | ||
66 | gpios-states = <0>; | ||
67 | |||
68 | states = <3300000 0 | ||
69 | 1800000 1>; | ||
70 | }; | ||
71 | |||
72 | flash_1v8: regulator-flash_1v8 { | ||
73 | compatible = "regulator-fixed"; | ||
74 | regulator-name = "FLASH_1V8"; | ||
75 | regulator-min-microvolt = <1800000>; | ||
76 | regulator-max-microvolt = <1800000>; | ||
77 | vin-supply = <&vcc_3v3>; | ||
78 | regulator-always-on; | ||
79 | }; | ||
80 | |||
81 | main_12v: regulator-main_12v { | ||
82 | compatible = "regulator-fixed"; | ||
83 | regulator-name = "12V"; | ||
84 | regulator-min-microvolt = <12000000>; | ||
85 | regulator-max-microvolt = <12000000>; | ||
86 | regulator-always-on; | ||
87 | }; | ||
88 | |||
89 | vcc_5v: regulator-vcc_5v { | ||
90 | compatible = "regulator-fixed"; | ||
91 | regulator-name = "5V"; | ||
92 | regulator-min-microvolt = <5000000>; | ||
93 | regulator-max-microvolt = <5000000>; | ||
94 | regulator-always-on; | ||
95 | vin-supply = <&main_12v>; | ||
96 | }; | ||
97 | |||
98 | vcc_1v8: regulator-vcc_1v8 { | ||
99 | compatible = "regulator-fixed"; | ||
100 | regulator-name = "VCC_1V8"; | ||
101 | regulator-min-microvolt = <1800000>; | ||
102 | regulator-max-microvolt = <1800000>; | ||
103 | vin-supply = <&vcc_3v3>; | ||
104 | regulator-always-on; | ||
105 | }; | ||
106 | |||
107 | vcc_3v3: regulator-vcc_3v3 { | ||
108 | compatible = "regulator-fixed"; | ||
109 | regulator-name = "VCC_3V3"; | ||
110 | regulator-min-microvolt = <3300000>; | ||
111 | regulator-max-microvolt = <3300000>; | ||
112 | vin-supply = <&vddao_3v3>; | ||
113 | regulator-always-on; | ||
114 | /* FIXME: actually controlled by VDDCPU_B_EN */ | ||
115 | }; | ||
116 | |||
117 | hub_5v: regulator-hub_5v { | ||
118 | compatible = "regulator-fixed"; | ||
119 | regulator-name = "HUB_5V"; | ||
120 | regulator-min-microvolt = <5000000>; | ||
121 | regulator-max-microvolt = <5000000>; | ||
122 | vin-supply = <&vcc_5v>; | ||
123 | |||
124 | /* Connected to the Hub CHIPENABLE, LOW sets low power state */ | ||
125 | gpio = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; | ||
126 | enable-active-high; | ||
127 | }; | ||
128 | |||
129 | usb_pwr_en: regulator-usb_pwr_en { | ||
130 | compatible = "regulator-fixed"; | ||
131 | regulator-name = "USB_PWR_EN"; | ||
132 | regulator-min-microvolt = <5000000>; | ||
133 | regulator-max-microvolt = <5000000>; | ||
134 | vin-supply = <&vcc_5v>; | ||
135 | |||
136 | /* Connected to the microUSB port power enable */ | ||
137 | gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>; | ||
138 | enable-active-high; | ||
139 | }; | ||
140 | |||
141 | vddao_1v8: regulator-vddao_1v8 { | ||
142 | compatible = "regulator-fixed"; | ||
143 | regulator-name = "VDDAO_1V8"; | ||
144 | regulator-min-microvolt = <1800000>; | ||
145 | regulator-max-microvolt = <1800000>; | ||
146 | vin-supply = <&vddao_3v3>; | ||
147 | regulator-always-on; | ||
148 | }; | ||
149 | |||
150 | vddao_3v3: regulator-vddao_3v3 { | ||
151 | compatible = "regulator-fixed"; | ||
152 | regulator-name = "VDDAO_3V3"; | ||
153 | regulator-min-microvolt = <3300000>; | ||
154 | regulator-max-microvolt = <3300000>; | ||
155 | vin-supply = <&main_12v>; | ||
156 | regulator-always-on; | ||
157 | }; | ||
158 | |||
159 | hdmi-connector { | ||
160 | compatible = "hdmi-connector"; | ||
161 | type = "a"; | ||
162 | |||
163 | port { | ||
164 | hdmi_connector_in: endpoint { | ||
165 | remote-endpoint = <&hdmi_tx_tmds_out>; | ||
166 | }; | ||
167 | }; | ||
168 | }; | ||
169 | |||
170 | sound { | ||
171 | compatible = "amlogic,axg-sound-card"; | ||
172 | model = "G12A-ODROIDN2"; | ||
173 | audio-aux-devs = <&tdmout_b>; | ||
174 | audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", | ||
175 | "TDMOUT_B IN 1", "FRDDR_B OUT 1", | ||
176 | "TDMOUT_B IN 2", "FRDDR_C OUT 1", | ||
177 | "TDM_B Playback", "TDMOUT_B OUT"; | ||
178 | |||
179 | assigned-clocks = <&clkc CLKID_MPLL2>, | ||
180 | <&clkc CLKID_MPLL0>, | ||
181 | <&clkc CLKID_MPLL1>; | ||
182 | assigned-clock-parents = <0>, <0>, <0>; | ||
183 | assigned-clock-rates = <294912000>, | ||
184 | <270950400>, | ||
185 | <393216000>; | ||
186 | status = "okay"; | ||
187 | |||
188 | dai-link-0 { | ||
189 | sound-dai = <&frddr_a>; | ||
190 | }; | ||
191 | |||
192 | dai-link-1 { | ||
193 | sound-dai = <&frddr_b>; | ||
194 | }; | ||
195 | |||
196 | dai-link-2 { | ||
197 | sound-dai = <&frddr_c>; | ||
198 | }; | ||
199 | |||
200 | /* 8ch hdmi interface */ | ||
201 | dai-link-3 { | ||
202 | sound-dai = <&tdmif_b>; | ||
203 | dai-format = "i2s"; | ||
204 | dai-tdm-slot-tx-mask-0 = <1 1>; | ||
205 | dai-tdm-slot-tx-mask-1 = <1 1>; | ||
206 | dai-tdm-slot-tx-mask-2 = <1 1>; | ||
207 | dai-tdm-slot-tx-mask-3 = <1 1>; | ||
208 | mclk-fs = <256>; | ||
209 | |||
210 | codec { | ||
211 | sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; | ||
212 | }; | ||
213 | }; | ||
214 | |||
215 | /* hdmi glue */ | ||
216 | dai-link-4 { | ||
217 | sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; | ||
218 | |||
219 | codec { | ||
220 | sound-dai = <&hdmi_tx>; | ||
221 | }; | ||
222 | }; | ||
223 | }; | ||
224 | }; | ||
225 | |||
226 | &arb { | ||
227 | status = "okay"; | ||
228 | }; | ||
229 | |||
230 | &cec_AO { | ||
231 | pinctrl-0 = <&cec_ao_a_h_pins>; | ||
232 | pinctrl-names = "default"; | ||
233 | status = "disabled"; | ||
234 | hdmi-phandle = <&hdmi_tx>; | ||
235 | }; | ||
236 | |||
237 | &cecb_AO { | ||
238 | pinctrl-0 = <&cec_ao_b_h_pins>; | ||
239 | pinctrl-names = "default"; | ||
240 | status = "okay"; | ||
241 | hdmi-phandle = <&hdmi_tx>; | ||
242 | }; | ||
243 | |||
244 | &clkc_audio { | ||
245 | status = "okay"; | ||
246 | }; | ||
247 | |||
248 | &ext_mdio { | ||
249 | external_phy: ethernet-phy@0 { | ||
250 | /* Realtek RTL8211F (0x001cc916) */ | ||
251 | reg = <0>; | ||
252 | max-speed = <1000>; | ||
253 | |||
254 | reset-assert-us = <10000>; | ||
255 | reset-deassert-us = <30000>; | ||
256 | reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; | ||
257 | |||
258 | interrupt-parent = <&gpio_intc>; | ||
259 | /* MAC_INTR on GPIOZ_14 */ | ||
260 | interrupts = <26 IRQ_TYPE_LEVEL_LOW>; | ||
261 | }; | ||
262 | }; | ||
263 | |||
264 | ðmac { | ||
265 | pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; | ||
266 | pinctrl-names = "default"; | ||
267 | status = "okay"; | ||
268 | phy-mode = "rgmii"; | ||
269 | phy-handle = <&external_phy>; | ||
270 | amlogic,tx-delay-ns = <2>; | ||
271 | }; | ||
272 | |||
273 | &frddr_a { | ||
274 | status = "okay"; | ||
275 | }; | ||
276 | |||
277 | &frddr_b { | ||
278 | status = "okay"; | ||
279 | }; | ||
280 | |||
281 | &frddr_c { | ||
282 | status = "okay"; | ||
283 | }; | ||
284 | |||
285 | &gpio { | ||
286 | /* | ||
287 | * WARNING: The USB Hub on the Odroid-N2 needs a reset signal | ||
288 | * to be turned high in order to be detected by the USB Controller | ||
289 | * This signal should be handled by a USB specific power sequence | ||
290 | * in order to reset the Hub when USB bus is powered down. | ||
291 | */ | ||
292 | usb-hub { | ||
293 | gpio-hog; | ||
294 | gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; | ||
295 | output-high; | ||
296 | line-name = "usb-hub-reset"; | ||
297 | }; | ||
298 | }; | ||
299 | |||
300 | &hdmi_tx { | ||
301 | status = "okay"; | ||
302 | pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; | ||
303 | pinctrl-names = "default"; | ||
304 | hdmi-supply = <&vcc_5v>; | ||
305 | }; | ||
306 | |||
307 | &hdmi_tx_tmds_port { | ||
308 | hdmi_tx_tmds_out: endpoint { | ||
309 | remote-endpoint = <&hdmi_connector_in>; | ||
310 | }; | ||
311 | }; | ||
312 | |||
313 | &ir { | ||
314 | status = "okay"; | ||
315 | pinctrl-0 = <&remote_input_ao_pins>; | ||
316 | pinctrl-names = "default"; | ||
317 | }; | ||
318 | |||
319 | /* SD card */ | ||
320 | &sd_emmc_b { | ||
321 | status = "okay"; | ||
322 | pinctrl-0 = <&sdcard_c_pins>; | ||
323 | pinctrl-1 = <&sdcard_clk_gate_c_pins>; | ||
324 | pinctrl-names = "default", "clk-gate"; | ||
325 | |||
326 | bus-width = <4>; | ||
327 | cap-sd-highspeed; | ||
328 | max-frequency = <50000000>; | ||
329 | disable-wp; | ||
330 | |||
331 | cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; | ||
332 | vmmc-supply = <&tflash_vdd>; | ||
333 | vqmmc-supply = <&tf_io>; | ||
334 | |||
335 | }; | ||
336 | |||
337 | /* eMMC */ | ||
338 | &sd_emmc_c { | ||
339 | status = "okay"; | ||
340 | pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; | ||
341 | pinctrl-1 = <&emmc_clk_gate_pins>; | ||
342 | pinctrl-names = "default", "clk-gate"; | ||
343 | |||
344 | bus-width = <8>; | ||
345 | cap-mmc-highspeed; | ||
346 | mmc-ddr-1_8v; | ||
347 | mmc-hs200-1_8v; | ||
348 | max-frequency = <200000000>; | ||
349 | disable-wp; | ||
350 | |||
351 | mmc-pwrseq = <&emmc_pwrseq>; | ||
352 | vmmc-supply = <&vcc_3v3>; | ||
353 | vqmmc-supply = <&flash_1v8>; | ||
354 | }; | ||
355 | |||
356 | &tdmif_b { | ||
357 | status = "okay"; | ||
358 | }; | ||
359 | |||
360 | &tdmout_b { | ||
361 | status = "okay"; | ||
362 | }; | ||
363 | |||
364 | &tohdmitx { | ||
365 | status = "okay"; | ||
366 | }; | ||
367 | |||
368 | &uart_AO { | ||
369 | status = "okay"; | ||
370 | pinctrl-0 = <&uart_ao_a_pins>; | ||
371 | pinctrl-names = "default"; | ||
372 | }; | ||
373 | |||
374 | &usb { | ||
375 | status = "okay"; | ||
376 | vbus-supply = <&usb_pwr_en>; | ||
377 | }; | ||
378 | |||
379 | &usb2_phy0 { | ||
380 | phy-supply = <&vcc_5v>; | ||
381 | }; | ||
382 | |||
383 | &usb2_phy1 { | ||
384 | /* Enable the hub which is connected to this port */ | ||
385 | phy-supply = <&hub_5v>; | ||
386 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi new file mode 100644 index 000000000000..9e88e513b22d --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | |||
@@ -0,0 +1,82 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
2 | /* | ||
3 | * Copyright (c) 2019 BayLibre, SAS | ||
4 | * Author: Neil Armstrong <narmstrong@baylibre.com> | ||
5 | */ | ||
6 | |||
7 | #include "meson-g12a.dtsi" | ||
8 | |||
9 | / { | ||
10 | compatible = "amlogic,g12b"; | ||
11 | |||
12 | cpus { | ||
13 | cpu-map { | ||
14 | cluster0 { | ||
15 | core0 { | ||
16 | cpu = <&cpu0>; | ||
17 | }; | ||
18 | |||
19 | core1 { | ||
20 | cpu = <&cpu1>; | ||
21 | }; | ||
22 | }; | ||
23 | |||
24 | cluster1 { | ||
25 | core0 { | ||
26 | cpu = <&cpu100>; | ||
27 | }; | ||
28 | |||
29 | core1 { | ||
30 | cpu = <&cpu101>; | ||
31 | }; | ||
32 | |||
33 | core2 { | ||
34 | cpu = <&cpu102>; | ||
35 | }; | ||
36 | |||
37 | core3 { | ||
38 | cpu = <&cpu103>; | ||
39 | }; | ||
40 | }; | ||
41 | }; | ||
42 | |||
43 | /delete-node/ cpu@2; | ||
44 | /delete-node/ cpu@3; | ||
45 | |||
46 | cpu100: cpu@100 { | ||
47 | device_type = "cpu"; | ||
48 | compatible = "arm,cortex-a73"; | ||
49 | reg = <0x0 0x100>; | ||
50 | enable-method = "psci"; | ||
51 | next-level-cache = <&l2>; | ||
52 | }; | ||
53 | |||
54 | cpu101: cpu@101 { | ||
55 | device_type = "cpu"; | ||
56 | compatible = "arm,cortex-a73"; | ||
57 | reg = <0x0 0x101>; | ||
58 | enable-method = "psci"; | ||
59 | next-level-cache = <&l2>; | ||
60 | }; | ||
61 | |||
62 | cpu102: cpu@102 { | ||
63 | device_type = "cpu"; | ||
64 | compatible = "arm,cortex-a73"; | ||
65 | reg = <0x0 0x102>; | ||
66 | enable-method = "psci"; | ||
67 | next-level-cache = <&l2>; | ||
68 | }; | ||
69 | |||
70 | cpu103: cpu@103 { | ||
71 | device_type = "cpu"; | ||
72 | compatible = "arm,cortex-a73"; | ||
73 | reg = <0x0 0x103>; | ||
74 | enable-method = "psci"; | ||
75 | next-level-cache = <&l2>; | ||
76 | }; | ||
77 | }; | ||
78 | }; | ||
79 | |||
80 | &clkc { | ||
81 | compatible = "amlogic,g12b-clkc"; | ||
82 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi index 016641a41694..a9b778571cf5 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi | |||
@@ -164,7 +164,7 @@ | |||
164 | 164 | ||
165 | bus-width = <4>; | 165 | bus-width = <4>; |
166 | cap-sd-highspeed; | 166 | cap-sd-highspeed; |
167 | max-frequency = <100000000>; | 167 | max-frequency = <50000000>; |
168 | 168 | ||
169 | non-removable; | 169 | non-removable; |
170 | disable-wp; | 170 | disable-wp; |
@@ -184,7 +184,7 @@ | |||
184 | 184 | ||
185 | bus-width = <4>; | 185 | bus-width = <4>; |
186 | cap-sd-highspeed; | 186 | cap-sd-highspeed; |
187 | max-frequency = <100000000>; | 187 | max-frequency = <50000000>; |
188 | disable-wp; | 188 | disable-wp; |
189 | 189 | ||
190 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 190 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi index 6772709b9e19..74d03fc706be 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi | |||
@@ -486,7 +486,9 @@ | |||
486 | }; | 486 | }; |
487 | 487 | ||
488 | ethmac: ethernet@c9410000 { | 488 | ethmac: ethernet@c9410000 { |
489 | compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac"; | 489 | compatible = "amlogic,meson-gxbb-dwmac", |
490 | "snps,dwmac-3.70a", | ||
491 | "snps,dwmac"; | ||
490 | reg = <0x0 0xc9410000 0x0 0x10000 | 492 | reg = <0x0 0xc9410000 0x0 0x10000 |
491 | 0x0 0xc8834540 0x0 0x4>; | 493 | 0x0 0xc8834540 0x0 0x4>; |
492 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | 494 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts index ade2ee09ae96..c34c1c90ccb6 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts | |||
@@ -154,10 +154,6 @@ | |||
154 | 154 | ||
155 | amlogic,tx-delay-ns = <2>; | 155 | amlogic,tx-delay-ns = <2>; |
156 | 156 | ||
157 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
158 | snps,reset-delays-us = <0 10000 1000000>; | ||
159 | snps,reset-active-low; | ||
160 | |||
161 | mdio { | 157 | mdio { |
162 | compatible = "snps,dwmac-mdio"; | 158 | compatible = "snps,dwmac-mdio"; |
163 | #address-cells = <1>; | 159 | #address-cells = <1>; |
@@ -166,6 +162,11 @@ | |||
166 | eth_phy0: ethernet-phy@0 { | 162 | eth_phy0: ethernet-phy@0 { |
167 | /* Realtek RTL8211F (0x001cc916) */ | 163 | /* Realtek RTL8211F (0x001cc916) */ |
168 | reg = <0>; | 164 | reg = <0>; |
165 | |||
166 | reset-assert-us = <10000>; | ||
167 | reset-deassert-us = <30000>; | ||
168 | reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||
169 | |||
169 | interrupt-parent = <&gpio_intc>; | 170 | interrupt-parent = <&gpio_intc>; |
170 | /* MAC_INTR on GPIOZ_15 */ | 171 | /* MAC_INTR on GPIOZ_15 */ |
171 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | 172 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; |
@@ -273,7 +274,7 @@ | |||
273 | 274 | ||
274 | bus-width = <4>; | 275 | bus-width = <4>; |
275 | cap-sd-highspeed; | 276 | cap-sd-highspeed; |
276 | max-frequency = <200000000>; | 277 | max-frequency = <50000000>; |
277 | 278 | ||
278 | non-removable; | 279 | non-removable; |
279 | disable-wp; | 280 | disable-wp; |
@@ -301,8 +302,8 @@ | |||
301 | sd-uhs-sdr12; | 302 | sd-uhs-sdr12; |
302 | sd-uhs-sdr25; | 303 | sd-uhs-sdr25; |
303 | sd-uhs-sdr50; | 304 | sd-uhs-sdr50; |
304 | sd-uhs-sdr104; | 305 | sd-uhs-ddr50; |
305 | max-frequency = <200000000>; | 306 | max-frequency = <100000000>; |
306 | disable-wp; | 307 | disable-wp; |
307 | 308 | ||
308 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 309 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts index 25105ac96d55..b636912a2715 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts | |||
@@ -162,10 +162,6 @@ | |||
162 | phy-handle = <ð_phy0>; | 162 | phy-handle = <ð_phy0>; |
163 | phy-mode = "rmii"; | 163 | phy-mode = "rmii"; |
164 | 164 | ||
165 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
166 | snps,reset-delays-us = <0 10000 1000000>; | ||
167 | snps,reset-active-low; | ||
168 | |||
169 | mdio { | 165 | mdio { |
170 | compatible = "snps,dwmac-mdio"; | 166 | compatible = "snps,dwmac-mdio"; |
171 | #address-cells = <1>; | 167 | #address-cells = <1>; |
@@ -174,6 +170,10 @@ | |||
174 | eth_phy0: ethernet-phy@0 { | 170 | eth_phy0: ethernet-phy@0 { |
175 | /* IC Plus IP101GR (0x02430c54) */ | 171 | /* IC Plus IP101GR (0x02430c54) */ |
176 | reg = <0>; | 172 | reg = <0>; |
173 | |||
174 | reset-assert-us = <10000>; | ||
175 | reset-deassert-us = <10000>; | ||
176 | reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||
177 | }; | 177 | }; |
178 | }; | 178 | }; |
179 | }; | 179 | }; |
@@ -235,7 +235,7 @@ | |||
235 | 235 | ||
236 | bus-width = <4>; | 236 | bus-width = <4>; |
237 | cap-sd-highspeed; | 237 | cap-sd-highspeed; |
238 | max-frequency = <100000000>; | 238 | max-frequency = <50000000>; |
239 | disable-wp; | 239 | disable-wp; |
240 | 240 | ||
241 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 241 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts index 1cc9dc68ef00..9972b1515da6 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | |||
@@ -126,10 +126,6 @@ | |||
126 | phy-handle = <ð_phy0>; | 126 | phy-handle = <ð_phy0>; |
127 | phy-mode = "rgmii"; | 127 | phy-mode = "rgmii"; |
128 | 128 | ||
129 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
130 | snps,reset-delays-us = <0 10000 1000000>; | ||
131 | snps,reset-active-low; | ||
132 | |||
133 | amlogic,tx-delay-ns = <2>; | 129 | amlogic,tx-delay-ns = <2>; |
134 | 130 | ||
135 | mdio { | 131 | mdio { |
@@ -140,6 +136,11 @@ | |||
140 | eth_phy0: ethernet-phy@0 { | 136 | eth_phy0: ethernet-phy@0 { |
141 | /* Realtek RTL8211F (0x001cc916) */ | 137 | /* Realtek RTL8211F (0x001cc916) */ |
142 | reg = <0>; | 138 | reg = <0>; |
139 | |||
140 | reset-assert-us = <10000>; | ||
141 | reset-deassert-us = <30000>; | ||
142 | reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||
143 | |||
143 | interrupt-parent = <&gpio_intc>; | 144 | interrupt-parent = <&gpio_intc>; |
144 | /* MAC_INTR on GPIOZ_15 */ | 145 | /* MAC_INTR on GPIOZ_15 */ |
145 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | 146 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; |
@@ -255,6 +256,10 @@ | |||
255 | 256 | ||
256 | bus-width = <4>; | 257 | bus-width = <4>; |
257 | cap-sd-highspeed; | 258 | cap-sd-highspeed; |
259 | sd-uhs-sdr12; | ||
260 | sd-uhs-sdr25; | ||
261 | sd-uhs-sdr50; | ||
262 | sd-uhs-ddr50; | ||
258 | max-frequency = <100000000>; | 263 | max-frequency = <100000000>; |
259 | disable-wp; | 264 | disable-wp; |
260 | 265 | ||
@@ -272,7 +277,7 @@ | |||
272 | pinctrl-names = "default", "clk-gate"; | 277 | pinctrl-names = "default", "clk-gate"; |
273 | 278 | ||
274 | bus-width = <8>; | 279 | bus-width = <8>; |
275 | max-frequency = <100000000>; | 280 | max-frequency = <200000000>; |
276 | non-removable; | 281 | non-removable; |
277 | disable-wp; | 282 | disable-wp; |
278 | cap-mmc-highspeed; | 283 | cap-mmc-highspeed; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts index 9d2406a7c4fa..3c93d1898b40 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts | |||
@@ -68,10 +68,6 @@ | |||
68 | 68 | ||
69 | amlogic,tx-delay-ns = <2>; | 69 | amlogic,tx-delay-ns = <2>; |
70 | 70 | ||
71 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
72 | snps,reset-delays-us = <0 10000 1000000>; | ||
73 | snps,reset-active-low; | ||
74 | |||
75 | mdio { | 71 | mdio { |
76 | compatible = "snps,dwmac-mdio"; | 72 | compatible = "snps,dwmac-mdio"; |
77 | #address-cells = <1>; | 73 | #address-cells = <1>; |
@@ -80,6 +76,11 @@ | |||
80 | eth_phy0: ethernet-phy@3 { | 76 | eth_phy0: ethernet-phy@3 { |
81 | /* Micrel KSZ9031 (0x00221620) */ | 77 | /* Micrel KSZ9031 (0x00221620) */ |
82 | reg = <3>; | 78 | reg = <3>; |
79 | |||
80 | reset-assert-us = <10000>; | ||
81 | reset-deassert-us = <30000>; | ||
82 | reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||
83 | |||
83 | interrupt-parent = <&gpio_intc>; | 84 | interrupt-parent = <&gpio_intc>; |
84 | /* MAC_INTR on GPIOZ_15 */ | 85 | /* MAC_INTR on GPIOZ_15 */ |
85 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | 86 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi index 0be0f2a5d2fe..e8f925871edf 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi | |||
@@ -165,7 +165,7 @@ | |||
165 | 165 | ||
166 | bus-width = <4>; | 166 | bus-width = <4>; |
167 | cap-sd-highspeed; | 167 | cap-sd-highspeed; |
168 | max-frequency = <100000000>; | 168 | max-frequency = <50000000>; |
169 | 169 | ||
170 | non-removable; | 170 | non-removable; |
171 | disable-wp; | 171 | disable-wp; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi index ad4d50bd9d77..43b11e3dfe11 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi | |||
@@ -28,10 +28,10 @@ | |||
28 | }; | 28 | }; |
29 | }; | 29 | }; |
30 | 30 | ||
31 | usb_vbus: regulator-usb0-vbus { | 31 | usb_pwr: regulator-usb-pwrs { |
32 | compatible = "regulator-fixed"; | 32 | compatible = "regulator-fixed"; |
33 | 33 | ||
34 | regulator-name = "USB0_VBUS"; | 34 | regulator-name = "USB_PWR"; |
35 | 35 | ||
36 | regulator-min-microvolt = <5000000>; | 36 | regulator-min-microvolt = <5000000>; |
37 | regulator-max-microvolt = <5000000>; | 37 | regulator-max-microvolt = <5000000>; |
@@ -40,20 +40,34 @@ | |||
40 | enable-active-high; | 40 | enable-active-high; |
41 | }; | 41 | }; |
42 | 42 | ||
43 | vcc_3v3: regulator-vcc_3v3 { | 43 | vddio_boot: regulator-vddio_boot { |
44 | compatible = "regulator-fixed"; | 44 | compatible = "regulator-fixed"; |
45 | regulator-name = "VCC_3V3"; | 45 | regulator-name = "VDDIO_BOOT"; |
46 | regulator-min-microvolt = <1800000>; | ||
47 | regulator-max-microvolt = <1800000>; | ||
48 | }; | ||
49 | |||
50 | vddao_3v3: regulator-vddao_3v3 { | ||
51 | compatible = "regulator-fixed"; | ||
52 | regulator-name = "VDDAO_3V3"; | ||
46 | regulator-min-microvolt = <3300000>; | 53 | regulator-min-microvolt = <3300000>; |
47 | regulator-max-microvolt = <3300000>; | 54 | regulator-max-microvolt = <3300000>; |
48 | }; | 55 | }; |
49 | 56 | ||
50 | vcc_1v8: regulator-vcc_1v8 { | 57 | vddio_ao18: regulator-vddio_ao18 { |
51 | compatible = "regulator-fixed"; | 58 | compatible = "regulator-fixed"; |
52 | regulator-name = "VCC_1V8"; | 59 | regulator-name = "VDDIO_AO18"; |
53 | regulator-min-microvolt = <1800000>; | 60 | regulator-min-microvolt = <1800000>; |
54 | regulator-max-microvolt = <1800000>; | 61 | regulator-max-microvolt = <1800000>; |
55 | }; | 62 | }; |
56 | 63 | ||
64 | vcc_3v3: regulator-vcc_3v3 { | ||
65 | compatible = "regulator-fixed"; | ||
66 | regulator-name = "VCC_3V3"; | ||
67 | regulator-min-microvolt = <3300000>; | ||
68 | regulator-max-microvolt = <3300000>; | ||
69 | }; | ||
70 | |||
57 | emmc_pwrseq: emmc-pwrseq { | 71 | emmc_pwrseq: emmc-pwrseq { |
58 | compatible = "mmc-pwrseq-emmc"; | 72 | compatible = "mmc-pwrseq-emmc"; |
59 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | 73 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; |
@@ -66,15 +80,32 @@ | |||
66 | pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ | 80 | pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ |
67 | }; | 81 | }; |
68 | 82 | ||
83 | hdmi-connector { | ||
84 | compatible = "hdmi-connector"; | ||
85 | type = "a"; | ||
86 | |||
87 | port { | ||
88 | hdmi_connector_in: endpoint { | ||
89 | remote-endpoint = <&hdmi_tx_tmds_out>; | ||
90 | }; | ||
91 | }; | ||
92 | }; | ||
93 | |||
69 | sdio_pwrseq: sdio-pwrseq { | 94 | sdio_pwrseq: sdio-pwrseq { |
70 | compatible = "mmc-pwrseq-simple"; | 95 | compatible = "mmc-pwrseq-simple"; |
71 | reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>, | 96 | reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; |
72 | <&gpio GPIOX_20 GPIO_ACTIVE_LOW>; | ||
73 | clocks = <&wifi32k>; | 97 | clocks = <&wifi32k>; |
74 | clock-names = "ext_clock"; | 98 | clock-names = "ext_clock"; |
75 | }; | 99 | }; |
76 | }; | 100 | }; |
77 | 101 | ||
102 | &cec_AO { | ||
103 | status = "okay"; | ||
104 | pinctrl-0 = <&ao_cec_pins>; | ||
105 | pinctrl-names = "default"; | ||
106 | hdmi-phandle = <&hdmi_tx>; | ||
107 | }; | ||
108 | |||
78 | ðmac { | 109 | ðmac { |
79 | status = "okay"; | 110 | status = "okay"; |
80 | pinctrl-0 = <ð_rgmii_pins>; | 111 | pinctrl-0 = <ð_rgmii_pins>; |
@@ -85,10 +116,6 @@ | |||
85 | 116 | ||
86 | amlogic,tx-delay-ns = <2>; | 117 | amlogic,tx-delay-ns = <2>; |
87 | 118 | ||
88 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
89 | snps,reset-delays-us = <0 10000 1000000>; | ||
90 | snps,reset-active-low; | ||
91 | |||
92 | mdio { | 119 | mdio { |
93 | compatible = "snps,dwmac-mdio"; | 120 | compatible = "snps,dwmac-mdio"; |
94 | #address-cells = <1>; | 121 | #address-cells = <1>; |
@@ -97,10 +124,30 @@ | |||
97 | eth_phy0: ethernet-phy@0 { | 124 | eth_phy0: ethernet-phy@0 { |
98 | /* Realtek RTL8211F (0x001cc916) */ | 125 | /* Realtek RTL8211F (0x001cc916) */ |
99 | reg = <0>; | 126 | reg = <0>; |
127 | |||
128 | reset-assert-us = <10000>; | ||
129 | reset-deassert-us = <30000>; | ||
130 | reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||
131 | |||
132 | interrupt-parent = <&gpio_intc>; | ||
133 | /* MAC_INTR on GPIOZ_15 */ | ||
134 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | ||
100 | }; | 135 | }; |
101 | }; | 136 | }; |
102 | }; | 137 | }; |
103 | 138 | ||
139 | &hdmi_tx { | ||
140 | status = "okay"; | ||
141 | pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; | ||
142 | pinctrl-names = "default"; | ||
143 | }; | ||
144 | |||
145 | &hdmi_tx_tmds_port { | ||
146 | hdmi_tx_tmds_out: endpoint { | ||
147 | remote-endpoint = <&hdmi_connector_in>; | ||
148 | }; | ||
149 | }; | ||
150 | |||
104 | &ir { | 151 | &ir { |
105 | status = "okay"; | 152 | status = "okay"; |
106 | pinctrl-0 = <&remote_input_ao_pins>; | 153 | pinctrl-0 = <&remote_input_ao_pins>; |
@@ -115,10 +162,15 @@ | |||
115 | clock-names = "clkin0"; | 162 | clock-names = "clkin0"; |
116 | }; | 163 | }; |
117 | 164 | ||
165 | &saradc { | ||
166 | status = "okay"; | ||
167 | vref-supply = <&vddio_ao18>; | ||
168 | }; | ||
169 | |||
118 | /* Wireless SDIO Module */ | 170 | /* Wireless SDIO Module */ |
119 | &sd_emmc_a { | 171 | &sd_emmc_a { |
120 | status = "okay"; | 172 | status = "okay"; |
121 | pinctrl-0 = <&sdio_pins &sdio_irq_pins>; | 173 | pinctrl-0 = <&sdio_pins>; |
122 | pinctrl-1 = <&sdio_clk_gate_pins>; | 174 | pinctrl-1 = <&sdio_clk_gate_pins>; |
123 | pinctrl-names = "default", "clk-gate"; | 175 | pinctrl-names = "default", "clk-gate"; |
124 | #address-cells = <1>; | 176 | #address-cells = <1>; |
@@ -126,15 +178,15 @@ | |||
126 | 178 | ||
127 | bus-width = <4>; | 179 | bus-width = <4>; |
128 | cap-sd-highspeed; | 180 | cap-sd-highspeed; |
129 | max-frequency = <100000000>; | 181 | max-frequency = <50000000>; |
130 | 182 | ||
131 | non-removable; | 183 | non-removable; |
132 | disable-wp; | 184 | disable-wp; |
133 | 185 | ||
134 | mmc-pwrseq = <&sdio_pwrseq>; | 186 | mmc-pwrseq = <&sdio_pwrseq>; |
135 | 187 | ||
136 | vmmc-supply = <&vcc_3v3>; | 188 | vmmc-supply = <&vddao_3v3>; |
137 | vqmmc-supply = <&vcc_1v8>; | 189 | vqmmc-supply = <&vddio_boot>; |
138 | 190 | ||
139 | brcmf: wifi@1 { | 191 | brcmf: wifi@1 { |
140 | reg = <1>; | 192 | reg = <1>; |
@@ -151,12 +203,13 @@ | |||
151 | 203 | ||
152 | bus-width = <4>; | 204 | bus-width = <4>; |
153 | cap-sd-highspeed; | 205 | cap-sd-highspeed; |
154 | max-frequency = <100000000>; | 206 | max-frequency = <50000000>; |
155 | disable-wp; | 207 | disable-wp; |
156 | 208 | ||
157 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 209 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
158 | 210 | ||
159 | vmmc-supply = <&vcc_3v3>; | 211 | vmmc-supply = <&vddao_3v3>; |
212 | vqmmc-supply = <&vcc_3v3>; | ||
160 | }; | 213 | }; |
161 | 214 | ||
162 | /* eMMC */ | 215 | /* eMMC */ |
@@ -176,9 +229,22 @@ | |||
176 | 229 | ||
177 | mmc-pwrseq = <&emmc_pwrseq>; | 230 | mmc-pwrseq = <&emmc_pwrseq>; |
178 | vmmc-supply = <&vcc_3v3>; | 231 | vmmc-supply = <&vcc_3v3>; |
179 | vmmcq-sumpply = <&vcc_1v8>; | 232 | vqmmc-supply = <&vddio_boot>; |
233 | }; | ||
234 | |||
235 | /* This is connected to the Bluetooth module: */ | ||
236 | &uart_A { | ||
237 | status = "okay"; | ||
238 | pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; | ||
239 | pinctrl-names = "default"; | ||
240 | |||
241 | bluetooth { | ||
242 | compatible = "brcm,bcm43438-bt"; | ||
243 | shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>; | ||
244 | }; | ||
180 | }; | 245 | }; |
181 | 246 | ||
247 | /* This UART is brought out to the DB9 connector */ | ||
182 | &uart_AO { | 248 | &uart_AO { |
183 | status = "okay"; | 249 | status = "okay"; |
184 | pinctrl-0 = <&uart_ao_a_pins>; | 250 | pinctrl-0 = <&uart_ao_a_pins>; |
@@ -187,7 +253,7 @@ | |||
187 | 253 | ||
188 | &usb0_phy { | 254 | &usb0_phy { |
189 | status = "okay"; | 255 | status = "okay"; |
190 | phy-supply = <&usb_vbus>; | 256 | phy-supply = <&usb_pwr>; |
191 | }; | 257 | }; |
192 | 258 | ||
193 | &usb1_phy { | 259 | &usb1_phy { |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi index 2d2db783c44c..4c539881fbb7 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | |||
@@ -59,6 +59,13 @@ | |||
59 | regulator-max-microvolt = <3300000>; | 59 | regulator-max-microvolt = <3300000>; |
60 | }; | 60 | }; |
61 | 61 | ||
62 | vddio_ao18: regulator-vddio_ao18 { | ||
63 | compatible = "regulator-fixed"; | ||
64 | regulator-name = "VDDIO_AO18"; | ||
65 | regulator-min-microvolt = <1800000>; | ||
66 | regulator-max-microvolt = <1800000>; | ||
67 | }; | ||
68 | |||
62 | vcc_3v3: regulator-vcc_3v3 { | 69 | vcc_3v3: regulator-vcc_3v3 { |
63 | compatible = "regulator-fixed"; | 70 | compatible = "regulator-fixed"; |
64 | regulator-name = "VCC_3V3"; | 71 | regulator-name = "VCC_3V3"; |
@@ -130,10 +137,6 @@ | |||
130 | 137 | ||
131 | amlogic,tx-delay-ns = <2>; | 138 | amlogic,tx-delay-ns = <2>; |
132 | 139 | ||
133 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
134 | snps,reset-delays-us = <0 10000 1000000>; | ||
135 | snps,reset-active-low; | ||
136 | |||
137 | mdio { | 140 | mdio { |
138 | compatible = "snps,dwmac-mdio"; | 141 | compatible = "snps,dwmac-mdio"; |
139 | #address-cells = <1>; | 142 | #address-cells = <1>; |
@@ -142,6 +145,10 @@ | |||
142 | eth_phy0: ethernet-phy@0 { | 145 | eth_phy0: ethernet-phy@0 { |
143 | /* Realtek RTL8211F (0x001cc916) */ | 146 | /* Realtek RTL8211F (0x001cc916) */ |
144 | reg = <0>; | 147 | reg = <0>; |
148 | |||
149 | reset-assert-us = <10000>; | ||
150 | reset-deassert-us = <30000>; | ||
151 | reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||
145 | }; | 152 | }; |
146 | }; | 153 | }; |
147 | }; | 154 | }; |
@@ -172,6 +179,11 @@ | |||
172 | clock-names = "clkin0"; | 179 | clock-names = "clkin0"; |
173 | }; | 180 | }; |
174 | 181 | ||
182 | &saradc { | ||
183 | status = "okay"; | ||
184 | vref-supply = <&vddio_ao18>; | ||
185 | }; | ||
186 | |||
175 | /* Wireless SDIO Module */ | 187 | /* Wireless SDIO Module */ |
176 | &sd_emmc_a { | 188 | &sd_emmc_a { |
177 | status = "okay"; | 189 | status = "okay"; |
@@ -183,7 +195,7 @@ | |||
183 | 195 | ||
184 | bus-width = <4>; | 196 | bus-width = <4>; |
185 | cap-sd-highspeed; | 197 | cap-sd-highspeed; |
186 | max-frequency = <100000000>; | 198 | max-frequency = <50000000>; |
187 | 199 | ||
188 | non-removable; | 200 | non-removable; |
189 | disable-wp; | 201 | disable-wp; |
@@ -208,7 +220,7 @@ | |||
208 | 220 | ||
209 | bus-width = <4>; | 221 | bus-width = <4>; |
210 | cap-sd-highspeed; | 222 | cap-sd-highspeed; |
211 | max-frequency = <100000000>; | 223 | max-frequency = <50000000>; |
212 | disable-wp; | 224 | disable-wp; |
213 | 225 | ||
214 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 226 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
@@ -237,6 +249,19 @@ | |||
237 | vqmmc-supply = <&vddio_boot>; | 249 | vqmmc-supply = <&vddio_boot>; |
238 | }; | 250 | }; |
239 | 251 | ||
252 | /* This is connected to the Bluetooth module: */ | ||
253 | &uart_A { | ||
254 | status = "okay"; | ||
255 | pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; | ||
256 | pinctrl-names = "default"; | ||
257 | uart-has-rtscts; | ||
258 | |||
259 | bluetooth { | ||
260 | compatible = "brcm,bcm43438-bt"; | ||
261 | shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>; | ||
262 | }; | ||
263 | }; | ||
264 | |||
240 | /* This UART is brought out to the DB9 connector */ | 265 | /* This UART is brought out to the DB9 connector */ |
241 | &uart_AO { | 266 | &uart_AO { |
242 | status = "okay"; | 267 | status = "okay"; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi index a60d3652beee..f734faaf7b78 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | |||
@@ -381,10 +381,15 @@ | |||
381 | }; | 381 | }; |
382 | 382 | ||
383 | emmc_pins: emmc { | 383 | emmc_pins: emmc { |
384 | mux { | 384 | mux-0 { |
385 | groups = "emmc_nand_d07", | 385 | groups = "emmc_nand_d07", |
386 | "emmc_cmd", | 386 | "emmc_cmd"; |
387 | "emmc_clk"; | 387 | function = "emmc"; |
388 | bias-pull-up; | ||
389 | }; | ||
390 | |||
391 | mux-1 { | ||
392 | groups = "emmc_clk"; | ||
388 | function = "emmc"; | 393 | function = "emmc"; |
389 | bias-disable; | 394 | bias-disable; |
390 | }; | 395 | }; |
@@ -394,7 +399,7 @@ | |||
394 | mux { | 399 | mux { |
395 | groups = "emmc_ds"; | 400 | groups = "emmc_ds"; |
396 | function = "emmc"; | 401 | function = "emmc"; |
397 | bias-disable; | 402 | bias-pull-down; |
398 | }; | 403 | }; |
399 | }; | 404 | }; |
400 | 405 | ||
@@ -436,13 +441,18 @@ | |||
436 | }; | 441 | }; |
437 | 442 | ||
438 | sdcard_pins: sdcard { | 443 | sdcard_pins: sdcard { |
439 | mux { | 444 | mux-0 { |
440 | groups = "sdcard_d0", | 445 | groups = "sdcard_d0", |
441 | "sdcard_d1", | 446 | "sdcard_d1", |
442 | "sdcard_d2", | 447 | "sdcard_d2", |
443 | "sdcard_d3", | 448 | "sdcard_d3", |
444 | "sdcard_cmd", | 449 | "sdcard_cmd"; |
445 | "sdcard_clk"; | 450 | function = "sdcard"; |
451 | bias-pull-up; | ||
452 | }; | ||
453 | |||
454 | mux-1 { | ||
455 | groups = "sdcard_clk"; | ||
446 | function = "sdcard"; | 456 | function = "sdcard"; |
447 | bias-disable; | 457 | bias-disable; |
448 | }; | 458 | }; |
@@ -457,13 +467,18 @@ | |||
457 | }; | 467 | }; |
458 | 468 | ||
459 | sdio_pins: sdio { | 469 | sdio_pins: sdio { |
460 | mux { | 470 | mux-0 { |
461 | groups = "sdio_d0", | 471 | groups = "sdio_d0", |
462 | "sdio_d1", | 472 | "sdio_d1", |
463 | "sdio_d2", | 473 | "sdio_d2", |
464 | "sdio_d3", | 474 | "sdio_d3", |
465 | "sdio_cmd", | 475 | "sdio_cmd"; |
466 | "sdio_clk"; | 476 | function = "sdio"; |
477 | bias-pull-up; | ||
478 | }; | ||
479 | |||
480 | mux-1 { | ||
481 | groups = "sdio_clk"; | ||
467 | function = "sdio"; | 482 | function = "sdio"; |
468 | bias-disable; | 483 | bias-disable; |
469 | }; | 484 | }; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts index 70433e023fda..3a1484e5b8e1 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts | |||
@@ -160,7 +160,7 @@ | |||
160 | 160 | ||
161 | bus-width = <4>; | 161 | bus-width = <4>; |
162 | cap-sd-highspeed; | 162 | cap-sd-highspeed; |
163 | max-frequency = <100000000>; | 163 | max-frequency = <50000000>; |
164 | 164 | ||
165 | non-removable; | 165 | non-removable; |
166 | disable-wp; | 166 | disable-wp; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts index 0c8e8305b1f3..b08c4537f260 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts | |||
@@ -70,20 +70,21 @@ | |||
70 | 70 | ||
71 | amlogic,tx-delay-ns = <2>; | 71 | amlogic,tx-delay-ns = <2>; |
72 | 72 | ||
73 | /* External PHY reset is shared with internal PHY Led signals */ | ||
74 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
75 | snps,reset-delays-us = <0 10000 1000000>; | ||
76 | snps,reset-active-low; | ||
77 | |||
78 | /* External PHY is in RGMII */ | 73 | /* External PHY is in RGMII */ |
79 | phy-mode = "rgmii"; | 74 | phy-mode = "rgmii"; |
80 | }; | 75 | }; |
81 | 76 | ||
82 | &external_mdio { | 77 | &external_mdio { |
83 | external_phy: ethernet-phy@0 { | 78 | external_phy: ethernet-phy@0 { |
84 | compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; | 79 | /* Realtek RTL8211F (0x001cc916) */ |
85 | reg = <0>; | 80 | reg = <0>; |
86 | max-speed = <1000>; | 81 | max-speed = <1000>; |
82 | |||
83 | /* External PHY reset is shared with internal PHY Led signal */ | ||
84 | reset-assert-us = <10000>; | ||
85 | reset-deassert-us = <30000>; | ||
86 | reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||
87 | |||
87 | interrupt-parent = <&gpio_intc>; | 88 | interrupt-parent = <&gpio_intc>; |
88 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | 89 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; |
89 | eee-broken-1000t; | 90 | eee-broken-1000t; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts index 255cede7b447..4b8ce738e213 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts | |||
@@ -115,11 +115,13 @@ | |||
115 | regulator-max-microvolt = <1800000>; | 115 | regulator-max-microvolt = <1800000>; |
116 | }; | 116 | }; |
117 | 117 | ||
118 | /* This is provided by LDOs on the eMMC daugther card */ | ||
118 | vddio_boot: regulator-vddio_boot { | 119 | vddio_boot: regulator-vddio_boot { |
119 | compatible = "regulator-fixed"; | 120 | compatible = "regulator-fixed"; |
120 | regulator-name = "VDDIO_BOOT"; | 121 | regulator-name = "VDDIO_BOOT"; |
121 | regulator-min-microvolt = <3300000>; | 122 | regulator-min-microvolt = <1800000>; |
122 | regulator-max-microvolt = <3300000>; | 123 | regulator-max-microvolt = <1800000>; |
124 | vin-supply = <&vcc_3v3>; | ||
123 | }; | 125 | }; |
124 | }; | 126 | }; |
125 | 127 | ||
@@ -235,7 +237,7 @@ | |||
235 | 237 | ||
236 | bus-width = <4>; | 238 | bus-width = <4>; |
237 | cap-sd-highspeed; | 239 | cap-sd-highspeed; |
238 | max-frequency = <100000000>; | 240 | max-frequency = <50000000>; |
239 | disable-wp; | 241 | disable-wp; |
240 | 242 | ||
241 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 243 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
@@ -253,9 +255,9 @@ | |||
253 | 255 | ||
254 | bus-width = <8>; | 256 | bus-width = <8>; |
255 | cap-mmc-highspeed; | 257 | cap-mmc-highspeed; |
256 | mmc-ddr-3_3v; | 258 | mmc-ddr-1_8v; |
257 | max-frequency = <50000000>; | 259 | mmc-hs200-1_8v; |
258 | non-removable; | 260 | max-frequency = <200000000>; |
259 | disable-wp; | 261 | disable-wp; |
260 | 262 | ||
261 | mmc-pwrseq = <&emmc_pwrseq>; | 263 | mmc-pwrseq = <&emmc_pwrseq>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts index 9cbdb85fb591..26907ac82930 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts | |||
@@ -180,7 +180,7 @@ | |||
180 | 180 | ||
181 | bus-width = <4>; | 181 | bus-width = <4>; |
182 | cap-sd-highspeed; | 182 | cap-sd-highspeed; |
183 | max-frequency = <100000000>; | 183 | max-frequency = <50000000>; |
184 | disable-wp; | 184 | disable-wp; |
185 | 185 | ||
186 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 186 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi index bc811a2faf42..e3c16f50814b 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi | |||
@@ -114,7 +114,7 @@ | |||
114 | 114 | ||
115 | bus-width = <4>; | 115 | bus-width = <4>; |
116 | cap-sd-highspeed; | 116 | cap-sd-highspeed; |
117 | max-frequency = <100000000>; | 117 | max-frequency = <50000000>; |
118 | 118 | ||
119 | non-removable; | 119 | non-removable; |
120 | disable-wp; | 120 | disable-wp; |
@@ -134,7 +134,7 @@ | |||
134 | 134 | ||
135 | bus-width = <4>; | 135 | bus-width = <4>; |
136 | cap-sd-highspeed; | 136 | cap-sd-highspeed; |
137 | max-frequency = <100000000>; | 137 | max-frequency = <50000000>; |
138 | disable-wp; | 138 | disable-wp; |
139 | 139 | ||
140 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 140 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi index 3093ae421b17..c959456bacc6 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | |||
@@ -326,10 +326,15 @@ | |||
326 | }; | 326 | }; |
327 | 327 | ||
328 | emmc_pins: emmc { | 328 | emmc_pins: emmc { |
329 | mux { | 329 | mux-0 { |
330 | groups = "emmc_nand_d07", | 330 | groups = "emmc_nand_d07", |
331 | "emmc_cmd", | 331 | "emmc_cmd"; |
332 | "emmc_clk"; | 332 | function = "emmc"; |
333 | bias-pull-up; | ||
334 | }; | ||
335 | |||
336 | mux-1 { | ||
337 | groups = "emmc_clk"; | ||
333 | function = "emmc"; | 338 | function = "emmc"; |
334 | bias-disable; | 339 | bias-disable; |
335 | }; | 340 | }; |
@@ -339,7 +344,7 @@ | |||
339 | mux { | 344 | mux { |
340 | groups = "emmc_ds"; | 345 | groups = "emmc_ds"; |
341 | function = "emmc"; | 346 | function = "emmc"; |
342 | bias-disable; | 347 | bias-pull-down; |
343 | }; | 348 | }; |
344 | }; | 349 | }; |
345 | 350 | ||
@@ -381,13 +386,18 @@ | |||
381 | }; | 386 | }; |
382 | 387 | ||
383 | sdcard_pins: sdcard { | 388 | sdcard_pins: sdcard { |
384 | mux { | 389 | mux-0 { |
385 | groups = "sdcard_d0", | 390 | groups = "sdcard_d0", |
386 | "sdcard_d1", | 391 | "sdcard_d1", |
387 | "sdcard_d2", | 392 | "sdcard_d2", |
388 | "sdcard_d3", | 393 | "sdcard_d3", |
389 | "sdcard_cmd", | 394 | "sdcard_cmd"; |
390 | "sdcard_clk"; | 395 | function = "sdcard"; |
396 | bias-pull-up; | ||
397 | }; | ||
398 | |||
399 | mux-1 { | ||
400 | groups = "sdcard_clk"; | ||
391 | function = "sdcard"; | 401 | function = "sdcard"; |
392 | bias-disable; | 402 | bias-disable; |
393 | }; | 403 | }; |
@@ -402,13 +412,18 @@ | |||
402 | }; | 412 | }; |
403 | 413 | ||
404 | sdio_pins: sdio { | 414 | sdio_pins: sdio { |
405 | mux { | 415 | mux-0 { |
406 | groups = "sdio_d0", | 416 | groups = "sdio_d0", |
407 | "sdio_d1", | 417 | "sdio_d1", |
408 | "sdio_d2", | 418 | "sdio_d2", |
409 | "sdio_d3", | 419 | "sdio_d3", |
410 | "sdio_cmd", | 420 | "sdio_cmd"; |
411 | "sdio_clk"; | 421 | function = "sdio"; |
422 | bias-pull-up; | ||
423 | }; | ||
424 | |||
425 | mux-1 { | ||
426 | groups = "sdio_clk"; | ||
412 | function = "sdio"; | 427 | function = "sdio"; |
413 | bias-disable; | 428 | bias-disable; |
414 | }; | 429 | }; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts index 3f086ed7de05..989d33ac6eae 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts | |||
@@ -18,7 +18,6 @@ | |||
18 | 18 | ||
19 | aliases { | 19 | aliases { |
20 | serial0 = &uart_AO; | 20 | serial0 = &uart_AO; |
21 | serial1 = &uart_A; | ||
22 | serial2 = &uart_AO_B; | 21 | serial2 = &uart_AO_B; |
23 | }; | 22 | }; |
24 | 23 | ||
@@ -63,11 +62,9 @@ | |||
63 | 62 | ||
64 | gpio-keys-polled { | 63 | gpio-keys-polled { |
65 | compatible = "gpio-keys-polled"; | 64 | compatible = "gpio-keys-polled"; |
66 | #address-cells = <1>; | ||
67 | #size-cells = <0>; | ||
68 | poll-interval = <100>; | 65 | poll-interval = <100>; |
69 | 66 | ||
70 | button@0 { | 67 | power-button { |
71 | label = "power"; | 68 | label = "power"; |
72 | linux,code = <KEY_POWER>; | 69 | linux,code = <KEY_POWER>; |
73 | gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; | 70 | gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; |
@@ -242,11 +239,6 @@ | |||
242 | 239 | ||
243 | amlogic,tx-delay-ns = <2>; | 240 | amlogic,tx-delay-ns = <2>; |
244 | 241 | ||
245 | /* External PHY reset is shared with internal PHY Led signals */ | ||
246 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
247 | snps,reset-delays-us = <0 10000 1000000>; | ||
248 | snps,reset-active-low; | ||
249 | |||
250 | /* External PHY is in RGMII */ | 242 | /* External PHY is in RGMII */ |
251 | phy-mode = "rgmii"; | 243 | phy-mode = "rgmii"; |
252 | 244 | ||
@@ -257,6 +249,11 @@ | |||
257 | external_phy: ethernet-phy@0 { | 249 | external_phy: ethernet-phy@0 { |
258 | /* Realtek RTL8211F (0x001cc916) */ | 250 | /* Realtek RTL8211F (0x001cc916) */ |
259 | reg = <0>; | 251 | reg = <0>; |
252 | |||
253 | reset-assert-us = <10000>; | ||
254 | reset-deassert-us = <30000>; | ||
255 | reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||
256 | |||
260 | interrupt-parent = <&gpio_intc>; | 257 | interrupt-parent = <&gpio_intc>; |
261 | /* MAC_INTR on GPIOZ_15 */ | 258 | /* MAC_INTR on GPIOZ_15 */ |
262 | interrupts = <25 IRQ_TYPE_LEVEL_LOW>; | 259 | interrupts = <25 IRQ_TYPE_LEVEL_LOW>; |
@@ -324,12 +321,13 @@ | |||
324 | &sd_emmc_a { | 321 | &sd_emmc_a { |
325 | status = "okay"; | 322 | status = "okay"; |
326 | pinctrl-0 = <&sdio_pins>; | 323 | pinctrl-0 = <&sdio_pins>; |
327 | pinctrl-names = "default"; | 324 | pinctrl-1 = <&sdio_clk_gate_pins>; |
325 | pinctrl-names = "default", "clk-gate"; | ||
328 | #address-cells = <1>; | 326 | #address-cells = <1>; |
329 | #size-cells = <0>; | 327 | #size-cells = <0>; |
330 | 328 | ||
331 | bus-width = <4>; | 329 | bus-width = <4>; |
332 | max-frequency = <100000000>; | 330 | max-frequency = <50000000>; |
333 | 331 | ||
334 | non-removable; | 332 | non-removable; |
335 | disable-wp; | 333 | disable-wp; |
@@ -349,11 +347,12 @@ | |||
349 | &sd_emmc_b { | 347 | &sd_emmc_b { |
350 | status = "okay"; | 348 | status = "okay"; |
351 | pinctrl-0 = <&sdcard_pins>; | 349 | pinctrl-0 = <&sdcard_pins>; |
352 | pinctrl-names = "default"; | 350 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
351 | pinctrl-names = "default", "clk-gate"; | ||
353 | 352 | ||
354 | bus-width = <4>; | 353 | bus-width = <4>; |
355 | cap-sd-highspeed; | 354 | cap-sd-highspeed; |
356 | max-frequency = <100000000>; | 355 | max-frequency = <50000000>; |
357 | disable-wp; | 356 | disable-wp; |
358 | 357 | ||
359 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 358 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
@@ -366,17 +365,16 @@ | |||
366 | &sd_emmc_c { | 365 | &sd_emmc_c { |
367 | status = "okay"; | 366 | status = "okay"; |
368 | pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; | 367 | pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; |
369 | pinctrl-names = "default"; | 368 | pinctrl-1 = <&emmc_clk_gate_pins>; |
369 | pinctrl-names = "default", "clk-gate"; | ||
370 | 370 | ||
371 | bus-width = <8>; | 371 | bus-width = <8>; |
372 | cap-sd-highspeed; | ||
373 | cap-mmc-highspeed; | 372 | cap-mmc-highspeed; |
374 | max-frequency = <200000000>; | 373 | max-frequency = <200000000>; |
375 | non-removable; | 374 | non-removable; |
376 | disable-wp; | 375 | disable-wp; |
377 | mmc-ddr-1_8v; | 376 | mmc-ddr-1_8v; |
378 | mmc-hs200-1_8v; | 377 | mmc-hs200-1_8v; |
379 | mmc-hs400-1_8v; | ||
380 | 378 | ||
381 | mmc-pwrseq = <&emmc_pwrseq>; | 379 | mmc-pwrseq = <&emmc_pwrseq>; |
382 | vmmc-supply = <&vcc_3v3>; | 380 | vmmc-supply = <&vcc_3v3>; |
@@ -404,8 +402,14 @@ | |||
404 | /* This one is connected to the Bluetooth module */ | 402 | /* This one is connected to the Bluetooth module */ |
405 | &uart_A { | 403 | &uart_A { |
406 | status = "okay"; | 404 | status = "okay"; |
407 | pinctrl-0 = <&uart_a_pins>; | 405 | pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; |
408 | pinctrl-names = "default"; | 406 | pinctrl-names = "default"; |
407 | uart-has-rtscts; | ||
408 | |||
409 | bluetooth { | ||
410 | compatible = "brcm,bcm43438-bt"; | ||
411 | shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; | ||
412 | }; | ||
409 | }; | 413 | }; |
410 | 414 | ||
411 | /* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ | 415 | /* This is brought out on the Linux_RX (18) and Linux_TX (19) pins: */ |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts index 25f3b6b14043..c2bd4dbbf38c 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts | |||
@@ -101,19 +101,19 @@ | |||
101 | 101 | ||
102 | amlogic,tx-delay-ns = <2>; | 102 | amlogic,tx-delay-ns = <2>; |
103 | 103 | ||
104 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
105 | snps,reset-delays-us = <0 10000 1000000>; | ||
106 | snps,reset-active-low; | ||
107 | |||
108 | /* External PHY is in RGMII */ | 104 | /* External PHY is in RGMII */ |
109 | phy-mode = "rgmii"; | 105 | phy-mode = "rgmii"; |
110 | }; | 106 | }; |
111 | 107 | ||
112 | &external_mdio { | 108 | &external_mdio { |
113 | external_phy: ethernet-phy@0 { | 109 | external_phy: ethernet-phy@0 { |
114 | compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; | 110 | /* Realtek RTL8211F (0x001cc916) */ |
115 | reg = <0>; | 111 | reg = <0>; |
116 | max-speed = <1000>; | 112 | max-speed = <1000>; |
113 | |||
114 | reset-assert-us = <10000>; | ||
115 | reset-deassert-us = <30000>; | ||
116 | reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||
117 | }; | 117 | }; |
118 | }; | 118 | }; |
119 | 119 | ||
@@ -144,7 +144,7 @@ | |||
144 | 144 | ||
145 | bus-width = <4>; | 145 | bus-width = <4>; |
146 | cap-sd-highspeed; | 146 | cap-sd-highspeed; |
147 | max-frequency = <100000000>; | 147 | max-frequency = <50000000>; |
148 | disable-wp; | 148 | disable-wp; |
149 | 149 | ||
150 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 150 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts index 73d656e4aade..ea45ae0c71b7 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts | |||
@@ -52,20 +52,21 @@ | |||
52 | 52 | ||
53 | amlogic,tx-delay-ns = <2>; | 53 | amlogic,tx-delay-ns = <2>; |
54 | 54 | ||
55 | /* External PHY reset is shared with internal PHY Led signals */ | ||
56 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
57 | snps,reset-delays-us = <0 10000 1000000>; | ||
58 | snps,reset-active-low; | ||
59 | |||
60 | /* External PHY is in RGMII */ | 55 | /* External PHY is in RGMII */ |
61 | phy-mode = "rgmii"; | 56 | phy-mode = "rgmii"; |
62 | }; | 57 | }; |
63 | 58 | ||
64 | &external_mdio { | 59 | &external_mdio { |
65 | external_phy: ethernet-phy@0 { | 60 | external_phy: ethernet-phy@0 { |
66 | compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; | 61 | /* Realtek RTL8211F (0x001cc916) */ |
67 | reg = <0>; | 62 | reg = <0>; |
68 | max-speed = <1000>; | 63 | max-speed = <1000>; |
64 | |||
65 | /* External PHY reset is shared with internal PHY Led signal */ | ||
66 | reset-assert-us = <10000>; | ||
67 | reset-deassert-us = <30000>; | ||
68 | reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||
69 | |||
69 | interrupt-parent = <&gpio_intc>; | 70 | interrupt-parent = <&gpio_intc>; |
70 | /* MAC_INTR on GPIOZ_15 */ | 71 | /* MAC_INTR on GPIOZ_15 */ |
71 | interrupts = <25 IRQ_TYPE_LEVEL_LOW>; | 72 | interrupts = <25 IRQ_TYPE_LEVEL_LOW>; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts index 7fa20a8ede17..5cd4d35006d0 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts | |||
@@ -101,10 +101,6 @@ | |||
101 | /* Select external PHY by default */ | 101 | /* Select external PHY by default */ |
102 | phy-handle = <&external_phy>; | 102 | phy-handle = <&external_phy>; |
103 | 103 | ||
104 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
105 | snps,reset-delays-us = <0 10000 1000000>; | ||
106 | snps,reset-active-low; | ||
107 | |||
108 | amlogic,tx-delay-ns = <2>; | 104 | amlogic,tx-delay-ns = <2>; |
109 | 105 | ||
110 | /* External PHY is in RGMII */ | 106 | /* External PHY is in RGMII */ |
@@ -113,9 +109,13 @@ | |||
113 | 109 | ||
114 | &external_mdio { | 110 | &external_mdio { |
115 | external_phy: ethernet-phy@0 { | 111 | external_phy: ethernet-phy@0 { |
116 | compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; | 112 | /* Realtek RTL8211F (0x001cc916) */ |
117 | reg = <0>; | 113 | reg = <0>; |
118 | max-speed = <1000>; | 114 | max-speed = <1000>; |
115 | |||
116 | reset-assert-us = <10000>; | ||
117 | reset-deassert-us = <30000>; | ||
118 | reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; | ||
119 | }; | 119 | }; |
120 | }; | 120 | }; |
121 | 121 | ||
@@ -143,7 +143,7 @@ | |||
143 | 143 | ||
144 | bus-width = <4>; | 144 | bus-width = <4>; |
145 | cap-sd-highspeed; | 145 | cap-sd-highspeed; |
146 | max-frequency = <100000000>; | 146 | max-frequency = <50000000>; |
147 | 147 | ||
148 | non-removable; | 148 | non-removable; |
149 | disable-wp; | 149 | disable-wp; |
@@ -167,7 +167,7 @@ | |||
167 | 167 | ||
168 | bus-width = <4>; | 168 | bus-width = <4>; |
169 | cap-sd-highspeed; | 169 | cap-sd-highspeed; |
170 | max-frequency = <100000000>; | 170 | max-frequency = <50000000>; |
171 | disable-wp; | 171 | disable-wp; |
172 | 172 | ||
173 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; | 173 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
diff --git a/drivers/clk/meson/g12a.c b/drivers/clk/meson/g12a.c index 739f64fdf1e3..206fafd299ea 100644 --- a/drivers/clk/meson/g12a.c +++ b/drivers/clk/meson/g12a.c | |||
@@ -2734,8 +2734,8 @@ static struct clk_hw_onecell_data g12a_hw_onecell_data = { | |||
2734 | [CLKID_MALI_1_DIV] = &g12a_mali_1_div.hw, | 2734 | [CLKID_MALI_1_DIV] = &g12a_mali_1_div.hw, |
2735 | [CLKID_MALI_1] = &g12a_mali_1.hw, | 2735 | [CLKID_MALI_1] = &g12a_mali_1.hw, |
2736 | [CLKID_MALI] = &g12a_mali.hw, | 2736 | [CLKID_MALI] = &g12a_mali.hw, |
2737 | [CLKID_MPLL_5OM_DIV] = &g12a_mpll_50m_div.hw, | 2737 | [CLKID_MPLL_50M_DIV] = &g12a_mpll_50m_div.hw, |
2738 | [CLKID_MPLL_5OM] = &g12a_mpll_50m.hw, | 2738 | [CLKID_MPLL_50M] = &g12a_mpll_50m.hw, |
2739 | [CLKID_SYS_PLL_DIV16_EN] = &g12a_sys_pll_div16_en.hw, | 2739 | [CLKID_SYS_PLL_DIV16_EN] = &g12a_sys_pll_div16_en.hw, |
2740 | [CLKID_SYS_PLL_DIV16] = &g12a_sys_pll_div16.hw, | 2740 | [CLKID_SYS_PLL_DIV16] = &g12a_sys_pll_div16.hw, |
2741 | [CLKID_CPU_CLK_DYN0_SEL] = &g12a_cpu_clk_premux0.hw, | 2741 | [CLKID_CPU_CLK_DYN0_SEL] = &g12a_cpu_clk_premux0.hw, |
diff --git a/drivers/clk/meson/g12a.h b/drivers/clk/meson/g12a.h index 39c41af70804..bcc05cd9882f 100644 --- a/drivers/clk/meson/g12a.h +++ b/drivers/clk/meson/g12a.h | |||
@@ -166,7 +166,7 @@ | |||
166 | #define CLKID_HDMI_DIV 167 | 166 | #define CLKID_HDMI_DIV 167 |
167 | #define CLKID_MALI_0_DIV 170 | 167 | #define CLKID_MALI_0_DIV 170 |
168 | #define CLKID_MALI_1_DIV 173 | 168 | #define CLKID_MALI_1_DIV 173 |
169 | #define CLKID_MPLL_5OM_DIV 176 | 169 | #define CLKID_MPLL_50M_DIV 176 |
170 | #define CLKID_SYS_PLL_DIV16_EN 178 | 170 | #define CLKID_SYS_PLL_DIV16_EN 178 |
171 | #define CLKID_SYS_PLL_DIV16 179 | 171 | #define CLKID_SYS_PLL_DIV16 179 |
172 | #define CLKID_CPU_CLK_DYN0_SEL 180 | 172 | #define CLKID_CPU_CLK_DYN0_SEL 180 |
diff --git a/drivers/clk/meson/meson8b.c b/drivers/clk/meson/meson8b.c index 37cf0f01bb5d..62cd3a7f1f65 100644 --- a/drivers/clk/meson/meson8b.c +++ b/drivers/clk/meson/meson8b.c | |||
@@ -1761,7 +1761,7 @@ static struct clk_regmap meson8m2_gp_pll = { | |||
1761 | }, | 1761 | }, |
1762 | }; | 1762 | }; |
1763 | 1763 | ||
1764 | static const char * const mmeson8b_vpu_0_1_parent_names[] = { | 1764 | static const char * const meson8b_vpu_0_1_parent_names[] = { |
1765 | "fclk_div4", "fclk_div3", "fclk_div5", "fclk_div7" | 1765 | "fclk_div4", "fclk_div3", "fclk_div5", "fclk_div7" |
1766 | }; | 1766 | }; |
1767 | 1767 | ||
@@ -1778,8 +1778,8 @@ static struct clk_regmap meson8b_vpu_0_sel = { | |||
1778 | .hw.init = &(struct clk_init_data){ | 1778 | .hw.init = &(struct clk_init_data){ |
1779 | .name = "vpu_0_sel", | 1779 | .name = "vpu_0_sel", |
1780 | .ops = &clk_regmap_mux_ops, | 1780 | .ops = &clk_regmap_mux_ops, |
1781 | .parent_names = mmeson8b_vpu_0_1_parent_names, | 1781 | .parent_names = meson8b_vpu_0_1_parent_names, |
1782 | .num_parents = ARRAY_SIZE(mmeson8b_vpu_0_1_parent_names), | 1782 | .num_parents = ARRAY_SIZE(meson8b_vpu_0_1_parent_names), |
1783 | .flags = CLK_SET_RATE_PARENT, | 1783 | .flags = CLK_SET_RATE_PARENT, |
1784 | }, | 1784 | }, |
1785 | }; | 1785 | }; |
@@ -1837,8 +1837,8 @@ static struct clk_regmap meson8b_vpu_1_sel = { | |||
1837 | .hw.init = &(struct clk_init_data){ | 1837 | .hw.init = &(struct clk_init_data){ |
1838 | .name = "vpu_1_sel", | 1838 | .name = "vpu_1_sel", |
1839 | .ops = &clk_regmap_mux_ops, | 1839 | .ops = &clk_regmap_mux_ops, |
1840 | .parent_names = mmeson8b_vpu_0_1_parent_names, | 1840 | .parent_names = meson8b_vpu_0_1_parent_names, |
1841 | .num_parents = ARRAY_SIZE(mmeson8b_vpu_0_1_parent_names), | 1841 | .num_parents = ARRAY_SIZE(meson8b_vpu_0_1_parent_names), |
1842 | .flags = CLK_SET_RATE_PARENT, | 1842 | .flags = CLK_SET_RATE_PARENT, |
1843 | }, | 1843 | }, |
1844 | }; | 1844 | }; |
diff --git a/include/dt-bindings/clock/g12a-clkc.h b/include/dt-bindings/clock/g12a-clkc.h index 82c9e0c020b2..e10470ed7c4f 100644 --- a/include/dt-bindings/clock/g12a-clkc.h +++ b/include/dt-bindings/clock/g12a-clkc.h | |||
@@ -130,7 +130,7 @@ | |||
130 | #define CLKID_MALI_1_SEL 172 | 130 | #define CLKID_MALI_1_SEL 172 |
131 | #define CLKID_MALI_1 174 | 131 | #define CLKID_MALI_1 174 |
132 | #define CLKID_MALI 175 | 132 | #define CLKID_MALI 175 |
133 | #define CLKID_MPLL_5OM 177 | 133 | #define CLKID_MPLL_50M 177 |
134 | #define CLKID_CPU_CLK 187 | 134 | #define CLKID_CPU_CLK 187 |
135 | #define CLKID_PCIE_PLL 201 | 135 | #define CLKID_PCIE_PLL 201 |
136 | #define CLKID_VDEC_1 204 | 136 | #define CLKID_VDEC_1 204 |
diff --git a/include/dt-bindings/sound/meson-g12a-tohdmitx.h b/include/dt-bindings/sound/meson-g12a-tohdmitx.h new file mode 100644 index 000000000000..c5e1f48d30d0 --- /dev/null +++ b/include/dt-bindings/sound/meson-g12a-tohdmitx.h | |||
@@ -0,0 +1,13 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | #ifndef __DT_MESON_G12A_TOHDMITX_H | ||
3 | #define __DT_MESON_G12A_TOHDMITX_H | ||
4 | |||
5 | #define TOHDMITX_I2S_IN_A 0 | ||
6 | #define TOHDMITX_I2S_IN_B 1 | ||
7 | #define TOHDMITX_I2S_IN_C 2 | ||
8 | #define TOHDMITX_I2S_OUT 3 | ||
9 | #define TOHDMITX_SPDIF_IN_A 4 | ||
10 | #define TOHDMITX_SPDIF_IN_B 5 | ||
11 | #define TOHDMITX_SPDIF_OUT 6 | ||
12 | |||
13 | #endif /* __DT_MESON_G12A_TOHDMITX_H */ | ||