Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'amlogic-arm64-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt

Amlogic ARM64 DT changes for v6.11:
- New Boards:
- OSMC Vero 4K
- Dreambox One & Two
- GXLX/S905L p271 Reference Boards
- Amlogic A4 Power Domain
- A bunch of DT fixes to allmost solve all remaining check errors
- Amlogic S4 PWM
- Fixes for:
- SM1 SPDIF compatibles
- Bump G12 SPDIF driver strength
- Add power domain to HDMI TX
- Correct HDMI TX clocks

* tag 'amlogic-arm64-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux: (32 commits)
arm64: dts: amlogic: setup hdmi system clock
arm64: dts: amlogic: gx: correct hdmi clocks
arm64: dts: amlogic: Add Amlogic S4 PWM
arm64: dts: amlogic: add power domain to hdmitx
arm64: dts: amlogic: g12: bump spdif output drive strength
arm64: dts: amlogic: sm1: fix spdif compatibles
arm64: dts: amlogic: ad402: fix thermal zone node name
arm64: dts: meson: add initial support for Dreambox One/Two
dt-bindings: arm: amlogic: add support for Dreambox One/Two
dt-bindings: add dream vendor prefix
arm64: dts: meson: add support for OSMC Vero 4K
dt-bindings: arm: amlogic: add OSMC Vero 4K
arm64: dts: amlogic: gxbb-odroidc2: fix invalid reset-gpio property
arm64: dts: amlogic: a1: drop the invalid reset-name for usb@fe004400
arm64: dts: amlogic: a1: use correct node name for mmc controller
arm64: dts: amlogic: c3: use correct compatible for gpio_intc node
arm64: dts: amlogic: axg: fix tdm audio-controller clock order
arm64: dts: amlogic: g12a-u200: add missing AVDD-supply to acodec
arm64: dts: amlogic: g12a-u200: drop invalid sound-dai-cells
arm64: dts: amlogic: sm1: fix tdm controllers compatible
...

Link: https://lore.kernel.org/r/7f71e76c-c793-429a-b0ed-7296553a3eff@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+1048 -276
+10
Documentation/devicetree/bindings/arm/amlogic.yaml
··· 91 91 - libretech,aml-s905x-cc 92 92 - libretech,aml-s905x-cc-v2 93 93 - nexbox,a95x 94 + - osmc,vero4k 94 95 - const: amlogic,s905x 95 96 - const: amlogic,meson-gxl 96 97 ··· 107 106 - videostrong,gxl-kii-pro 108 107 - const: amlogic,s905d 109 108 - const: amlogic,meson-gxl 109 + 110 + - description: Boards with the Amlogic Meson GXLX S905L SoC 111 + items: 112 + - enum: 113 + - amlogic,p271 114 + - const: amlogic,s905l 115 + - const: amlogic,meson-gxlx 110 116 111 117 - description: Boards with the Amlogic Meson GXM S912 SoC 112 118 items: ··· 177 169 - azw,gtking 178 170 - azw,gtking-pro 179 171 - bananapi,bpi-m2s 172 + - dream,dreambox-one 173 + - dream,dreambox-two 180 174 - hardkernel,odroid-go-ultra 181 175 - hardkernel,odroid-n2 182 176 - hardkernel,odroid-n2l
+1
Documentation/devicetree/bindings/power/amlogic,meson-sec-pwrc.yaml
··· 20 20 enum: 21 21 - amlogic,meson-a1-pwrc 22 22 - amlogic,meson-s4-pwrc 23 + - amlogic,a4-pwrc 23 24 - amlogic,c3-pwrc 24 25 - amlogic,t7-pwrc 25 26
+2
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 396 396 description: DPTechnics 397 397 "^dragino,.*": 398 398 description: Dragino Technology Co., Limited 399 + "^dream,.*": 400 + description: Dream Property GmbH 399 401 "^ds,.*": 400 402 description: DaSheng, Inc. 401 403 "^dserve,.*":
+4
arch/arm64/boot/dts/amlogic/Makefile
··· 21 21 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3-ts050.dtb 22 22 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-bananapi-cm4-cm4io.dtb 23 23 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-bananapi-cm4-mnt-reform2.dtb 24 + dtb-$(CONFIG_ARCH_MESON) += meson-g12b-dreambox-one.dtb 25 + dtb-$(CONFIG_ARCH_MESON) += meson-g12b-dreambox-two.dtb 24 26 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb 25 27 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb 26 28 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb ··· 64 62 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb 65 63 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb 66 64 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb 65 + dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-vero4k.dtb 66 + dtb-$(CONFIG_ARCH_MESON) += meson-gxlx-s905l-p271.dtb 67 67 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-gt1-ultimate.dtb 68 68 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb 69 69 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb
+10
arch/arm64/boot/dts/amlogic/amlogic-a4.dtsi
··· 4 4 */ 5 5 6 6 #include "amlogic-a4-common.dtsi" 7 + #include <dt-bindings/power/amlogic,a4-pwrc.h> 7 8 / { 8 9 cpus { 9 10 #address-cells = <2>; ··· 36 35 compatible = "arm,cortex-a53"; 37 36 reg = <0x0 0x3>; 38 37 enable-method = "psci"; 38 + }; 39 + }; 40 + 41 + sm: secure-monitor { 42 + compatible = "amlogic,meson-gxbb-sm"; 43 + 44 + pwrc: power-controller { 45 + compatible = "amlogic,a4-pwrc"; 46 + #power-domain-cells = <1>; 39 47 }; 40 48 }; 41 49 };
+1 -2
arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
··· 111 111 }; 112 112 113 113 gpio_intc: interrupt-controller@4080 { 114 - compatible = "amlogic,meson-gpio-intc", 115 - "amlogic,c3-gpio-intc"; 114 + compatible = "amlogic,c3-gpio-intc", "amlogic,meson-gpio-intc"; 116 115 reg = <0x0 0x4080 0x0 0x0020>; 117 116 interrupt-controller; 118 117 #interrupt-cells = <2>;
+45
arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts
··· 7 7 /dts-v1/; 8 8 9 9 #include "meson-a1.dtsi" 10 + #include <dt-bindings/thermal/thermal.h> 10 11 11 12 / { 12 13 compatible = "amlogic,ad402", "amlogic,a1"; ··· 83 82 regulator-max-microvolt = <1800000>; 84 83 vin-supply = <&vddao_3v3>; 85 84 regulator-always-on; 85 + }; 86 + 87 + thermal-zones { 88 + soc_thermal: soc-thermal { 89 + polling-delay = <1000>; 90 + polling-delay-passive = <100>; 91 + sustainable-power = <130>; 92 + 93 + thermal-sensors = <&cpu_temp>; 94 + 95 + trips { 96 + soc_passive: soc-passive { 97 + temperature = <70000>; 98 + hysteresis = <2000>; 99 + type = "passive"; 100 + }; 101 + 102 + soc_hot: soc-hot { 103 + temperature = <85000>; 104 + hysteresis = <5000>; 105 + type = "hot"; 106 + }; 107 + 108 + soc_critical: soc-critical { 109 + temperature = <110000>; 110 + hysteresis = <1000>; 111 + type = "critical"; 112 + }; 113 + }; 114 + 115 + soc_cooling_maps: cooling-maps { 116 + map0 { 117 + trip = <&soc_passive>; 118 + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 119 + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 120 + }; 121 + 122 + map1 { 123 + trip = <&soc_hot>; 124 + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 125 + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 126 + }; 127 + }; 128 + }; 86 129 }; 87 130 }; 88 131
+14 -2
arch/arm64/boot/dts/amlogic/meson-a1.dtsi
··· 28 28 reg = <0x0 0x0>; 29 29 enable-method = "psci"; 30 30 next-level-cache = <&l2>; 31 + #cooling-cells = <2>; 31 32 }; 32 33 33 34 cpu1: cpu@1 { ··· 37 36 reg = <0x0 0x1>; 38 37 enable-method = "psci"; 39 38 next-level-cache = <&l2>; 39 + #cooling-cells = <2>; 40 40 }; 41 41 42 42 l2: l2-cache0 { ··· 400 398 power-domains = <&pwrc PWRC_USB_ID>; 401 399 }; 402 400 401 + cpu_temp: temperature-sensor@4c00 { 402 + compatible = "amlogic,a1-cpu-thermal"; 403 + reg = <0x0 0x4c00 0x0 0x50>; 404 + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 405 + clocks = <&clkc_periphs CLKID_TS>; 406 + assigned-clocks = <&clkc_periphs CLKID_TS>; 407 + assigned-clock-rates = <500000>; 408 + #thermal-sensor-cells = <0>; 409 + amlogic,ao-secure = <&sec_AO>; 410 + }; 411 + 403 412 hwrng: rng@5118 { 404 413 compatible = "amlogic,meson-rng"; 405 414 reg = <0x0 0x5118 0x0 0x4>; ··· 432 419 clock-names = "fixpll_in", "hifipll_in"; 433 420 }; 434 421 435 - sd_emmc: sd@10000 { 422 + sd_emmc: mmc@10000 { 436 423 compatible = "amlogic,meson-axg-mmc"; 437 424 reg = <0x0 0x10000 0x0 0x800>; 438 425 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; ··· 466 453 assigned-clocks = <&clkc_periphs CLKID_USB_BUS>; 467 454 assigned-clock-rates = <64000000>; 468 455 resets = <&reset RESET_USBCTRL>; 469 - reset-name = "usb_ctrl"; 470 456 471 457 dr_mode = "otg"; 472 458
+12 -12
arch/arm64/boot/dts/amlogic/meson-axg.dtsi
··· 25 25 compatible = "amlogic,axg-tdm-iface"; 26 26 #sound-dai-cells = <0>; 27 27 sound-name-prefix = "TDM_A"; 28 - clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>, 29 - <&clkc_audio AUD_CLKID_MST_A_SCLK>, 30 - <&clkc_audio AUD_CLKID_MST_A_LRCLK>; 31 - clock-names = "mclk", "sclk", "lrclk"; 28 + clocks = <&clkc_audio AUD_CLKID_MST_A_SCLK>, 29 + <&clkc_audio AUD_CLKID_MST_A_LRCLK>, 30 + <&clkc_audio AUD_CLKID_MST_A_MCLK>; 31 + clock-names = "sclk", "lrclk", "mclk"; 32 32 status = "disabled"; 33 33 }; 34 34 ··· 36 36 compatible = "amlogic,axg-tdm-iface"; 37 37 #sound-dai-cells = <0>; 38 38 sound-name-prefix = "TDM_B"; 39 - clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>, 40 - <&clkc_audio AUD_CLKID_MST_B_SCLK>, 41 - <&clkc_audio AUD_CLKID_MST_B_LRCLK>; 42 - clock-names = "mclk", "sclk", "lrclk"; 39 + clocks = <&clkc_audio AUD_CLKID_MST_B_SCLK>, 40 + <&clkc_audio AUD_CLKID_MST_B_LRCLK>, 41 + <&clkc_audio AUD_CLKID_MST_B_MCLK>; 42 + clock-names = "sclk", "lrclk", "mclk"; 43 43 status = "disabled"; 44 44 }; 45 45 ··· 47 47 compatible = "amlogic,axg-tdm-iface"; 48 48 #sound-dai-cells = <0>; 49 49 sound-name-prefix = "TDM_C"; 50 - clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>, 51 - <&clkc_audio AUD_CLKID_MST_C_SCLK>, 52 - <&clkc_audio AUD_CLKID_MST_C_LRCLK>; 53 - clock-names = "mclk", "sclk", "lrclk"; 50 + clocks = <&clkc_audio AUD_CLKID_MST_C_SCLK>, 51 + <&clkc_audio AUD_CLKID_MST_C_LRCLK>, 52 + <&clkc_audio AUD_CLKID_MST_C_MCLK>; 53 + clock-names = "sclk", "lrclk", "mclk"; 54 54 status = "disabled"; 55 55 }; 56 56
+220 -218
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
··· 215 215 #sound-dai-cells = <0>; 216 216 status = "disabled"; 217 217 218 + assigned-clocks = <&clkc CLKID_HDMI_SEL>, 219 + <&clkc CLKID_HDMI>; 220 + assigned-clock-parents = <&xtal>, <0>; 221 + assigned-clock-rates = <0>, <24000000>; 222 + 218 223 /* VPU VENC Input */ 219 224 hdmi_tx_venc_port: port@0 { 220 225 reg = <0>; ··· 992 987 mux { 993 988 groups = "spdif_out_h"; 994 989 function = "spdif_out"; 995 - drive-strength-microamp = <500>; 990 + drive-strength-microamp = <3000>; 996 991 bias-disable; 997 992 }; 998 993 }; ··· 1001 996 mux { 1002 997 groups = "spdif_out_a11"; 1003 998 function = "spdif_out"; 1004 - drive-strength-microamp = <500>; 999 + drive-strength-microamp = <3000>; 1005 1000 bias-disable; 1006 1001 }; 1007 1002 }; ··· 1010 1005 mux { 1011 1006 groups = "spdif_out_a13"; 1012 1007 function = "spdif_out"; 1013 - drive-strength-microamp = <500>; 1008 + drive-strength-microamp = <3000>; 1014 1009 bias-disable; 1015 1010 }; 1016 1011 }; ··· 1746 1741 compatible = "amlogic,meson-gx-ao-sysctrl", 1747 1742 "simple-mfd", "syscon"; 1748 1743 reg = <0x0 0x0 0x0 0x100>; 1749 - #address-cells = <2>; 1750 - #size-cells = <2>; 1751 - ranges = <0x0 0x0 0x0 0x0 0x0 0x100>; 1752 1744 1753 1745 clkc_AO: clock-controller { 1754 1746 compatible = "amlogic,meson-g12a-aoclkc"; ··· 1754 1752 clocks = <&xtal>, <&clkc CLKID_CLK81>; 1755 1753 clock-names = "xtal", "mpeg-clk"; 1756 1754 }; 1755 + }; 1757 1756 1758 - ao_pinctrl: pinctrl { 1759 - compatible = "amlogic,meson-g12a-aobus-pinctrl"; 1760 - #address-cells = <2>; 1761 - #size-cells = <2>; 1762 - ranges; 1757 + ao_pinctrl: pinctrl@14 { 1758 + compatible = "amlogic,meson-g12a-aobus-pinctrl"; 1759 + #address-cells = <2>; 1760 + #size-cells = <2>; 1761 + ranges; 1763 1762 1764 - gpio_ao: bank@14 { 1765 - reg = <0x0 0x14 0x0 0x8>, 1766 - <0x0 0x1c 0x0 0x8>, 1767 - <0x0 0x24 0x0 0x14>; 1768 - reg-names = "mux", 1769 - "ds", 1770 - "gpio"; 1771 - gpio-controller; 1772 - #gpio-cells = <2>; 1773 - gpio-ranges = <&ao_pinctrl 0 0 15>; 1763 + gpio_ao: bank@14 { 1764 + reg = <0x0 0x14 0x0 0x8>, 1765 + <0x0 0x1c 0x0 0x8>, 1766 + <0x0 0x24 0x0 0x14>; 1767 + reg-names = "mux", 1768 + "ds", 1769 + "gpio"; 1770 + gpio-controller; 1771 + #gpio-cells = <2>; 1772 + gpio-ranges = <&ao_pinctrl 0 0 15>; 1773 + }; 1774 + 1775 + i2c_ao_sck_pins: i2c_ao_sck_pins { 1776 + mux { 1777 + groups = "i2c_ao_sck"; 1778 + function = "i2c_ao"; 1779 + bias-disable; 1780 + drive-strength-microamp = <3000>; 1774 1781 }; 1782 + }; 1775 1783 1776 - i2c_ao_sck_pins: i2c_ao_sck_pins { 1777 - mux { 1778 - groups = "i2c_ao_sck"; 1779 - function = "i2c_ao"; 1780 - bias-disable; 1781 - drive-strength-microamp = <3000>; 1782 - }; 1784 + i2c_ao_sda_pins: i2c_ao_sda { 1785 + mux { 1786 + groups = "i2c_ao_sda"; 1787 + function = "i2c_ao"; 1788 + bias-disable; 1789 + drive-strength-microamp = <3000>; 1783 1790 }; 1791 + }; 1784 1792 1785 - i2c_ao_sda_pins: i2c_ao_sda { 1786 - mux { 1787 - groups = "i2c_ao_sda"; 1788 - function = "i2c_ao"; 1789 - bias-disable; 1790 - drive-strength-microamp = <3000>; 1791 - }; 1793 + i2c_ao_sck_e_pins: i2c_ao_sck_e { 1794 + mux { 1795 + groups = "i2c_ao_sck_e"; 1796 + function = "i2c_ao"; 1797 + bias-disable; 1798 + drive-strength-microamp = <3000>; 1792 1799 }; 1800 + }; 1793 1801 1794 - i2c_ao_sck_e_pins: i2c_ao_sck_e { 1795 - mux { 1796 - groups = "i2c_ao_sck_e"; 1797 - function = "i2c_ao"; 1798 - bias-disable; 1799 - drive-strength-microamp = <3000>; 1800 - }; 1802 + i2c_ao_sda_e_pins: i2c_ao_sda_e { 1803 + mux { 1804 + groups = "i2c_ao_sda_e"; 1805 + function = "i2c_ao"; 1806 + bias-disable; 1807 + drive-strength-microamp = <3000>; 1801 1808 }; 1809 + }; 1802 1810 1803 - i2c_ao_sda_e_pins: i2c_ao_sda_e { 1804 - mux { 1805 - groups = "i2c_ao_sda_e"; 1806 - function = "i2c_ao"; 1807 - bias-disable; 1808 - drive-strength-microamp = <3000>; 1809 - }; 1811 + mclk0_ao_pins: mclk0-ao { 1812 + mux { 1813 + groups = "mclk0_ao"; 1814 + function = "mclk0_ao"; 1815 + bias-disable; 1816 + drive-strength-microamp = <3000>; 1810 1817 }; 1818 + }; 1811 1819 1812 - mclk0_ao_pins: mclk0-ao { 1813 - mux { 1814 - groups = "mclk0_ao"; 1815 - function = "mclk0_ao"; 1816 - bias-disable; 1817 - drive-strength-microamp = <3000>; 1818 - }; 1820 + tdm_ao_b_din0_pins: tdm-ao-b-din0 { 1821 + mux { 1822 + groups = "tdm_ao_b_din0"; 1823 + function = "tdm_ao_b"; 1824 + bias-disable; 1819 1825 }; 1826 + }; 1820 1827 1821 - tdm_ao_b_din0_pins: tdm-ao-b-din0 { 1822 - mux { 1823 - groups = "tdm_ao_b_din0"; 1824 - function = "tdm_ao_b"; 1825 - bias-disable; 1826 - }; 1828 + spdif_ao_out_pins: spdif-ao-out { 1829 + mux { 1830 + groups = "spdif_ao_out"; 1831 + function = "spdif_ao_out"; 1832 + drive-strength-microamp = <3000>; 1833 + bias-disable; 1827 1834 }; 1835 + }; 1828 1836 1829 - spdif_ao_out_pins: spdif-ao-out { 1830 - mux { 1831 - groups = "spdif_ao_out"; 1832 - function = "spdif_ao_out"; 1833 - drive-strength-microamp = <500>; 1834 - bias-disable; 1835 - }; 1837 + tdm_ao_b_din1_pins: tdm-ao-b-din1 { 1838 + mux { 1839 + groups = "tdm_ao_b_din1"; 1840 + function = "tdm_ao_b"; 1841 + bias-disable; 1836 1842 }; 1843 + }; 1837 1844 1838 - tdm_ao_b_din1_pins: tdm-ao-b-din1 { 1839 - mux { 1840 - groups = "tdm_ao_b_din1"; 1841 - function = "tdm_ao_b"; 1842 - bias-disable; 1843 - }; 1845 + tdm_ao_b_din2_pins: tdm-ao-b-din2 { 1846 + mux { 1847 + groups = "tdm_ao_b_din2"; 1848 + function = "tdm_ao_b"; 1849 + bias-disable; 1844 1850 }; 1851 + }; 1845 1852 1846 - tdm_ao_b_din2_pins: tdm-ao-b-din2 { 1847 - mux { 1848 - groups = "tdm_ao_b_din2"; 1849 - function = "tdm_ao_b"; 1850 - bias-disable; 1851 - }; 1853 + tdm_ao_b_dout0_pins: tdm-ao-b-dout0 { 1854 + mux { 1855 + groups = "tdm_ao_b_dout0"; 1856 + function = "tdm_ao_b"; 1857 + bias-disable; 1858 + drive-strength-microamp = <3000>; 1852 1859 }; 1860 + }; 1853 1861 1854 - tdm_ao_b_dout0_pins: tdm-ao-b-dout0 { 1855 - mux { 1856 - groups = "tdm_ao_b_dout0"; 1857 - function = "tdm_ao_b"; 1858 - bias-disable; 1859 - drive-strength-microamp = <3000>; 1860 - }; 1862 + tdm_ao_b_dout1_pins: tdm-ao-b-dout1 { 1863 + mux { 1864 + groups = "tdm_ao_b_dout1"; 1865 + function = "tdm_ao_b"; 1866 + bias-disable; 1867 + drive-strength-microamp = <3000>; 1861 1868 }; 1869 + }; 1862 1870 1863 - tdm_ao_b_dout1_pins: tdm-ao-b-dout1 { 1864 - mux { 1865 - groups = "tdm_ao_b_dout1"; 1866 - function = "tdm_ao_b"; 1867 - bias-disable; 1868 - drive-strength-microamp = <3000>; 1869 - }; 1871 + tdm_ao_b_dout2_pins: tdm-ao-b-dout2 { 1872 + mux { 1873 + groups = "tdm_ao_b_dout2"; 1874 + function = "tdm_ao_b"; 1875 + bias-disable; 1876 + drive-strength-microamp = <3000>; 1870 1877 }; 1878 + }; 1871 1879 1872 - tdm_ao_b_dout2_pins: tdm-ao-b-dout2 { 1873 - mux { 1874 - groups = "tdm_ao_b_dout2"; 1875 - function = "tdm_ao_b"; 1876 - bias-disable; 1877 - drive-strength-microamp = <3000>; 1878 - }; 1880 + tdm_ao_b_fs_pins: tdm-ao-b-fs { 1881 + mux { 1882 + groups = "tdm_ao_b_fs"; 1883 + function = "tdm_ao_b"; 1884 + bias-disable; 1885 + drive-strength-microamp = <3000>; 1879 1886 }; 1887 + }; 1880 1888 1881 - tdm_ao_b_fs_pins: tdm-ao-b-fs { 1882 - mux { 1883 - groups = "tdm_ao_b_fs"; 1884 - function = "tdm_ao_b"; 1885 - bias-disable; 1886 - drive-strength-microamp = <3000>; 1887 - }; 1889 + tdm_ao_b_sclk_pins: tdm-ao-b-sclk { 1890 + mux { 1891 + groups = "tdm_ao_b_sclk"; 1892 + function = "tdm_ao_b"; 1893 + bias-disable; 1894 + drive-strength-microamp = <3000>; 1888 1895 }; 1896 + }; 1889 1897 1890 - tdm_ao_b_sclk_pins: tdm-ao-b-sclk { 1891 - mux { 1892 - groups = "tdm_ao_b_sclk"; 1893 - function = "tdm_ao_b"; 1894 - bias-disable; 1895 - drive-strength-microamp = <3000>; 1896 - }; 1898 + tdm_ao_b_slv_fs_pins: tdm-ao-b-slv-fs { 1899 + mux { 1900 + groups = "tdm_ao_b_slv_fs"; 1901 + function = "tdm_ao_b"; 1902 + bias-disable; 1897 1903 }; 1904 + }; 1898 1905 1899 - tdm_ao_b_slv_fs_pins: tdm-ao-b-slv-fs { 1900 - mux { 1901 - groups = "tdm_ao_b_slv_fs"; 1902 - function = "tdm_ao_b"; 1903 - bias-disable; 1904 - }; 1906 + tdm_ao_b_slv_sclk_pins: tdm-ao-b-slv-sclk { 1907 + mux { 1908 + groups = "tdm_ao_b_slv_sclk"; 1909 + function = "tdm_ao_b"; 1910 + bias-disable; 1905 1911 }; 1912 + }; 1906 1913 1907 - tdm_ao_b_slv_sclk_pins: tdm-ao-b-slv-sclk { 1908 - mux { 1909 - groups = "tdm_ao_b_slv_sclk"; 1910 - function = "tdm_ao_b"; 1911 - bias-disable; 1912 - }; 1914 + uart_ao_a_pins: uart-a-ao { 1915 + mux { 1916 + groups = "uart_ao_a_tx", 1917 + "uart_ao_a_rx"; 1918 + function = "uart_ao_a"; 1919 + bias-disable; 1913 1920 }; 1921 + }; 1914 1922 1915 - uart_ao_a_pins: uart-a-ao { 1916 - mux { 1917 - groups = "uart_ao_a_tx", 1918 - "uart_ao_a_rx"; 1919 - function = "uart_ao_a"; 1920 - bias-disable; 1921 - }; 1923 + uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts { 1924 + mux { 1925 + groups = "uart_ao_a_cts", 1926 + "uart_ao_a_rts"; 1927 + function = "uart_ao_a"; 1928 + bias-disable; 1922 1929 }; 1930 + }; 1923 1931 1924 - uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts { 1925 - mux { 1926 - groups = "uart_ao_a_cts", 1927 - "uart_ao_a_rts"; 1928 - function = "uart_ao_a"; 1929 - bias-disable; 1930 - }; 1932 + uart_ao_b_2_3_pins: uart-ao-b-2-3 { 1933 + mux { 1934 + groups = "uart_ao_b_tx_2", 1935 + "uart_ao_b_rx_3"; 1936 + function = "uart_ao_b"; 1937 + bias-disable; 1931 1938 }; 1939 + }; 1932 1940 1933 - uart_ao_b_2_3_pins: uart-ao-b-2-3 { 1934 - mux { 1935 - groups = "uart_ao_b_tx_2", 1936 - "uart_ao_b_rx_3"; 1937 - function = "uart_ao_b"; 1938 - bias-disable; 1939 - }; 1941 + uart_ao_b_8_9_pins: uart-ao-b-8-9 { 1942 + mux { 1943 + groups = "uart_ao_b_tx_8", 1944 + "uart_ao_b_rx_9"; 1945 + function = "uart_ao_b"; 1946 + bias-disable; 1940 1947 }; 1948 + }; 1941 1949 1942 - uart_ao_b_8_9_pins: uart-ao-b-8-9 { 1943 - mux { 1944 - groups = "uart_ao_b_tx_8", 1945 - "uart_ao_b_rx_9"; 1946 - function = "uart_ao_b"; 1947 - bias-disable; 1948 - }; 1950 + uart_ao_b_cts_rts_pins: uart-ao-b-cts-rts { 1951 + mux { 1952 + groups = "uart_ao_b_cts", 1953 + "uart_ao_b_rts"; 1954 + function = "uart_ao_b"; 1955 + bias-disable; 1949 1956 }; 1957 + }; 1950 1958 1951 - uart_ao_b_cts_rts_pins: uart-ao-b-cts-rts { 1952 - mux { 1953 - groups = "uart_ao_b_cts", 1954 - "uart_ao_b_rts"; 1955 - function = "uart_ao_b"; 1956 - bias-disable; 1957 - }; 1959 + pwm_a_e_pins: pwm-a-e { 1960 + mux { 1961 + groups = "pwm_a_e"; 1962 + function = "pwm_a_e"; 1963 + bias-disable; 1958 1964 }; 1965 + }; 1959 1966 1960 - pwm_a_e_pins: pwm-a-e { 1961 - mux { 1962 - groups = "pwm_a_e"; 1963 - function = "pwm_a_e"; 1964 - bias-disable; 1965 - }; 1967 + pwm_ao_a_pins: pwm-ao-a { 1968 + mux { 1969 + groups = "pwm_ao_a"; 1970 + function = "pwm_ao_a"; 1971 + bias-disable; 1966 1972 }; 1973 + }; 1967 1974 1968 - pwm_ao_a_pins: pwm-ao-a { 1969 - mux { 1970 - groups = "pwm_ao_a"; 1971 - function = "pwm_ao_a"; 1972 - bias-disable; 1973 - }; 1975 + pwm_ao_b_pins: pwm-ao-b { 1976 + mux { 1977 + groups = "pwm_ao_b"; 1978 + function = "pwm_ao_b"; 1979 + bias-disable; 1974 1980 }; 1981 + }; 1975 1982 1976 - pwm_ao_b_pins: pwm-ao-b { 1977 - mux { 1978 - groups = "pwm_ao_b"; 1979 - function = "pwm_ao_b"; 1980 - bias-disable; 1981 - }; 1983 + pwm_ao_c_4_pins: pwm-ao-c-4 { 1984 + mux { 1985 + groups = "pwm_ao_c_4"; 1986 + function = "pwm_ao_c"; 1987 + bias-disable; 1982 1988 }; 1989 + }; 1983 1990 1984 - pwm_ao_c_4_pins: pwm-ao-c-4 { 1985 - mux { 1986 - groups = "pwm_ao_c_4"; 1987 - function = "pwm_ao_c"; 1988 - bias-disable; 1989 - }; 1991 + pwm_ao_c_6_pins: pwm-ao-c-6 { 1992 + mux { 1993 + groups = "pwm_ao_c_6"; 1994 + function = "pwm_ao_c"; 1995 + bias-disable; 1990 1996 }; 1997 + }; 1991 1998 1992 - pwm_ao_c_6_pins: pwm-ao-c-6 { 1993 - mux { 1994 - groups = "pwm_ao_c_6"; 1995 - function = "pwm_ao_c"; 1996 - bias-disable; 1997 - }; 1999 + pwm_ao_d_5_pins: pwm-ao-d-5 { 2000 + mux { 2001 + groups = "pwm_ao_d_5"; 2002 + function = "pwm_ao_d"; 2003 + bias-disable; 1998 2004 }; 2005 + }; 1999 2006 2000 - pwm_ao_d_5_pins: pwm-ao-d-5 { 2001 - mux { 2002 - groups = "pwm_ao_d_5"; 2003 - function = "pwm_ao_d"; 2004 - bias-disable; 2005 - }; 2007 + pwm_ao_d_10_pins: pwm-ao-d-10 { 2008 + mux { 2009 + groups = "pwm_ao_d_10"; 2010 + function = "pwm_ao_d"; 2011 + bias-disable; 2006 2012 }; 2013 + }; 2007 2014 2008 - pwm_ao_d_10_pins: pwm-ao-d-10 { 2009 - mux { 2010 - groups = "pwm_ao_d_10"; 2011 - function = "pwm_ao_d"; 2012 - bias-disable; 2013 - }; 2015 + pwm_ao_d_e_pins: pwm-ao-d-e { 2016 + mux { 2017 + groups = "pwm_ao_d_e"; 2018 + function = "pwm_ao_d"; 2014 2019 }; 2020 + }; 2015 2021 2016 - pwm_ao_d_e_pins: pwm-ao-d-e { 2017 - mux { 2018 - groups = "pwm_ao_d_e"; 2019 - function = "pwm_ao_d"; 2020 - }; 2021 - }; 2022 - 2023 - remote_input_ao_pins: remote-input-ao { 2024 - mux { 2025 - groups = "remote_ao_input"; 2026 - function = "remote_ao_input"; 2027 - bias-disable; 2028 - }; 2022 + remote_input_ao_pins: remote-input-ao { 2023 + mux { 2024 + groups = "remote_ao_input"; 2025 + function = "remote_ao_input"; 2026 + bias-disable; 2029 2027 }; 2030 2028 }; 2031 2029 };
+4
arch/arm64/boot/dts/amlogic/meson-g12.dtsi
··· 363 363 power-domains = <&pwrc PWRC_G12A_ETH_ID>; 364 364 }; 365 365 366 + &hdmi_tx { 367 + power-domains = <&pwrc PWRC_G12A_VPU_ID>; 368 + }; 369 + 366 370 &vpu { 367 371 power-domains = <&pwrc PWRC_G12A_VPU_ID>; 368 372 };
+1 -1
arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts
··· 24 24 compatible = "simple-audio-amplifier"; 25 25 enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 26 26 VCC-supply = <&vcc_5v>; 27 - #sound-dai-cells = <0>; 28 27 sound-name-prefix = "10U2"; 29 28 }; 30 29 ··· 373 374 }; 374 375 375 376 &acodec { 377 + AVDD-supply = <&vddao_1v8>; 376 378 status = "okay"; 377 379 }; 378 380
-14
arch/arm64/boot/dts/amlogic/meson-g12b-bananapi.dtsi
··· 44 44 reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 45 45 }; 46 46 47 - fan0: pwm-fan { 48 - compatible = "pwm-fan"; 49 - #cooling-cells = <2>; 50 - cooling-levels = <0 120 170 220>; 51 - pwms = <&pwm_cd 1 40000 0>; 52 - }; 53 - 54 47 hdmi-connector { 55 48 compatible = "hdmi-connector"; 56 49 type = "a"; ··· 365 372 pinctrl-names = "default"; 366 373 clocks = <&xtal>; 367 374 clock-names = "clkin0"; 368 - }; 369 - 370 - &pwm_cd { 371 - status = "okay"; 372 - pinctrl-0 = <&pwm_d_x6_pins>; 373 - pinctrl-names = "default"; 374 - pwm-gpios = <&gpio GPIOAO_10 GPIO_ACTIVE_HIGH>; 375 375 }; 376 376 377 377 &pwm_ef {
+17
arch/arm64/boot/dts/amlogic/meson-g12b-dreambox-one.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com> 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "meson-g12b-dreambox.dtsi" 9 + 10 + / { 11 + compatible = "dream,dreambox-one", "amlogic,s922x", "amlogic,g12b"; 12 + model = "Dreambox One"; 13 + }; 14 + 15 + &sd_emmc_a { 16 + sd-uhs-sdr12; 17 + };
+20
arch/arm64/boot/dts/amlogic/meson-g12b-dreambox-two.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com> 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "meson-g12b-dreambox.dtsi" 9 + 10 + / { 11 + compatible = "dream,dreambox-two", "amlogic,s922x", "amlogic,g12b"; 12 + model = "Dreambox Two"; 13 + }; 14 + 15 + &sd_emmc_a { 16 + sd-uhs-sdr12; 17 + sd-uhs-sdr25; 18 + sd-uhs-sdr50; 19 + sd-uhs-sdr104; 20 + };
+154
arch/arm64/boot/dts/amlogic/meson-g12b-dreambox.dtsi
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2021 Christian Hewitt <christianshewitt@gmail.com> 4 + */ 5 + 6 + #include "meson-g12b-w400.dtsi" 7 + #include <dt-bindings/gpio/gpio.h> 8 + #include <dt-bindings/leds/common.h> 9 + #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 10 + 11 + / { 12 + cvbs-connector { 13 + status = "disabled"; 14 + }; 15 + 16 + sdio_pwrseq: sdio-pwrseq { 17 + compatible = "mmc-pwrseq-simple"; 18 + reset-gpios = <&gpio GPIOA_11 GPIO_ACTIVE_LOW>; 19 + clocks = <&wifi32k>; 20 + clock-names = "ext_clock"; 21 + }; 22 + 23 + spdif_dit: audio-codec-1 { 24 + #sound-dai-cells = <0>; 25 + compatible = "linux,spdif-dit"; 26 + status = "okay"; 27 + sound-name-prefix = "DIT"; 28 + }; 29 + 30 + sound { 31 + compatible = "amlogic,axg-sound-card"; 32 + model = "DREAMBOX"; 33 + audio-aux-devs = <&tdmout_b>; 34 + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 35 + "TDMOUT_B IN 1", "FRDDR_B OUT 1", 36 + "TDMOUT_B IN 2", "FRDDR_C OUT 1", 37 + "TDM_B Playback", "TDMOUT_B OUT", 38 + "SPDIFOUT_A IN 0", "FRDDR_A OUT 3", 39 + "SPDIFOUT_A IN 1", "FRDDR_B OUT 3", 40 + "SPDIFOUT_A IN 2", "FRDDR_C OUT 3"; 41 + assigned-clocks = <&clkc CLKID_MPLL2>, 42 + <&clkc CLKID_MPLL0>, 43 + <&clkc CLKID_MPLL1>; 44 + assigned-clock-parents = <0>, <0>, <0>; 45 + assigned-clock-rates = <294912000>, 46 + <270950400>, 47 + <393216000>; 48 + 49 + dai-link-0 { 50 + sound-dai = <&frddr_a>; 51 + }; 52 + 53 + dai-link-1 { 54 + sound-dai = <&frddr_b>; 55 + }; 56 + 57 + dai-link-2 { 58 + sound-dai = <&frddr_c>; 59 + }; 60 + 61 + /* 8ch hdmi interface */ 62 + dai-link-3 { 63 + sound-dai = <&tdmif_b>; 64 + dai-format = "i2s"; 65 + dai-tdm-slot-tx-mask-0 = <1 1>; 66 + dai-tdm-slot-tx-mask-1 = <1 1>; 67 + dai-tdm-slot-tx-mask-2 = <1 1>; 68 + dai-tdm-slot-tx-mask-3 = <1 1>; 69 + mclk-fs = <256>; 70 + 71 + codec { 72 + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 73 + }; 74 + }; 75 + 76 + /* spdif hdmi or toslink interface */ 77 + dai-link-4 { 78 + sound-dai = <&spdifout_a>; 79 + 80 + codec-0 { 81 + sound-dai = <&spdif_dit>; 82 + }; 83 + 84 + codec-1 { 85 + sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>; 86 + }; 87 + }; 88 + 89 + /* spdif hdmi interface */ 90 + dai-link-5 { 91 + sound-dai = <&spdifout_b>; 92 + 93 + codec { 94 + sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>; 95 + }; 96 + }; 97 + 98 + /* hdmi glue */ 99 + dai-link-6 { 100 + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 101 + 102 + codec { 103 + sound-dai = <&hdmi_tx>; 104 + }; 105 + }; 106 + }; 107 + }; 108 + 109 + &arb { 110 + status = "okay"; 111 + }; 112 + 113 + &frddr_a { 114 + status = "okay"; 115 + }; 116 + 117 + &frddr_b { 118 + status = "okay"; 119 + }; 120 + 121 + &frddr_c { 122 + status = "okay"; 123 + }; 124 + 125 + &ir { 126 + linux,rc-map-name = "rc-dreambox"; 127 + }; 128 + 129 + &saradc { 130 + status = "okay"; 131 + vref-supply = <&vddao_1v8>; 132 + }; 133 + 134 + &spdifout_a { 135 + pinctrl-0 = <&spdif_out_h_pins>; 136 + pinctrl-names = "default"; 137 + status = "okay"; 138 + }; 139 + 140 + &spdifout_b { 141 + status = "okay"; 142 + }; 143 + 144 + &tdmif_b { 145 + status = "okay"; 146 + }; 147 + 148 + &tdmout_b { 149 + status = "okay"; 150 + }; 151 + 152 + &tohdmitx { 153 + status = "okay"; 154 + };
+24
arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
··· 33 33 reg = <0x0 0x0 0x0 0x80000000>; 34 34 }; 35 35 36 + fan0: pwm-fan { 37 + compatible = "pwm-fan"; 38 + #cooling-cells = <2>; 39 + cooling-levels = <0 64 128 192 255>; 40 + pwms = <&pwm_AO_ab 0 40000 0>; 41 + }; 42 + 36 43 gpio-keys-polled { 37 44 compatible = "gpio-keys-polled"; 38 45 poll-interval = <100>; ··· 291 284 operating-points-v2 = <&cpub_opp_table_1>; 292 285 clocks = <&clkc CLKID_CPUB_CLK>; 293 286 clock-latency = <50000>; 287 + }; 288 + 289 + &cpu_thermal { 290 + trips { 291 + cpu_active: cpu-active { 292 + temperature = <70000>; /* millicelsius */ 293 + hysteresis = <2000>; /* millicelsius */ 294 + type = "active"; 295 + }; 296 + }; 297 + 298 + cooling-maps { 299 + map2 { 300 + trip = <&cpu_active>; 301 + cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 302 + }; 303 + }; 294 304 }; 295 305 296 306 &frddr_a {
+1 -1
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
··· 408 408 compatible = "usb5e3,610"; 409 409 reg = <1>; 410 410 vdd-supply = <&p5v0>; 411 - reset-gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; 411 + reset-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; 412 412 }; 413 413 };
+8 -2
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
··· 311 311 <&reset RESET_HDMI_SYSTEM_RESET>, 312 312 <&reset RESET_HDMI_TX>; 313 313 reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; 314 - clocks = <&clkc CLKID_HDMI_PCLK>, 315 - <&clkc CLKID_CLK81>, 314 + clocks = <&clkc CLKID_HDMI>, 315 + <&clkc CLKID_HDMI_PCLK>, 316 316 <&clkc CLKID_GCLK_VENCI_INT0>; 317 317 clock-names = "isfr", "iahb", "venci"; 318 + power-domains = <&pwrc PWRC_GXBB_VPU_ID>; 319 + 320 + assigned-clocks = <&clkc CLKID_HDMI_SEL>, 321 + <&clkc CLKID_HDMI>; 322 + assigned-clock-parents = <&xtal>, <0>; 323 + assigned-clock-rates = <0>, <24000000>; 318 324 }; 319 325 320 326 &sysctrl {
+199
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-vero4k.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2024 Christian Hewitt <christianshewitt@gmail.com> 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "meson-gxl-s905x-p212.dtsi" 9 + #include <dt-bindings/input/input.h> 10 + #include <dt-bindings/leds/common.h> 11 + #include <dt-bindings/sound/meson-aiu.h> 12 + 13 + / { 14 + compatible = "osmc,vero4k", "amlogic,s905x", "amlogic,meson-gxl"; 15 + model = "OSMC Vero 4K"; 16 + 17 + reserved-memory { 18 + /* 32 MiB reserved for ARM Trusted Firmware (BL32) */ 19 + secmon_reserved_bl32: secmon@5300000 { 20 + reg = <0x0 0x05300000 0x0 0x2000000>; 21 + no-map; 22 + }; 23 + }; 24 + 25 + gpio-keys-polled { 26 + compatible = "gpio-keys-polled"; 27 + poll-interval = <20>; 28 + 29 + button { 30 + label = "power"; 31 + linux,code = <KEY_POWER>; 32 + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 33 + }; 34 + }; 35 + 36 + leds { 37 + compatible = "gpio-leds"; 38 + 39 + led-standby { 40 + color = <LED_COLOR_ID_RED>; 41 + function = LED_FUNCTION_POWER; 42 + gpios = <&gpio GPIODV_24 GPIO_ACTIVE_LOW>; 43 + default-state = "off"; 44 + panic-indicator; 45 + }; 46 + }; 47 + 48 + dio2133: analog-amplifier { 49 + compatible = "simple-audio-amplifier"; 50 + sound-name-prefix = "AU2"; 51 + VCC-supply = <&hdmi_5v>; 52 + enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; 53 + }; 54 + 55 + spdif_dit: audio-codec-0 { 56 + #sound-dai-cells = <0>; 57 + compatible = "linux,spdif-dit"; 58 + sound-name-prefix = "DIT"; 59 + }; 60 + 61 + cvbs-connector { 62 + compatible = "composite-video-connector"; 63 + 64 + port { 65 + cvbs_connector_in: endpoint { 66 + remote-endpoint = <&cvbs_vdac_out>; 67 + }; 68 + }; 69 + }; 70 + 71 + hdmi-connector { 72 + compatible = "hdmi-connector"; 73 + type = "a"; 74 + 75 + port { 76 + hdmi_connector_in: endpoint { 77 + remote-endpoint = <&hdmi_tx_tmds_out>; 78 + }; 79 + }; 80 + }; 81 + 82 + sound { 83 + compatible = "amlogic,gx-sound-card"; 84 + model = "VERO4K"; 85 + audio-aux-devs = <&dio2133>; 86 + audio-widgets = "Line", "Lineout"; 87 + audio-routing = "AU2 INL", "ACODEC LOLP", 88 + "AU2 INR", "ACODEC LORP", 89 + "AU2 INL", "ACODEC LOLN", 90 + "AU2 INR", "ACODEC LORN", 91 + "Lineout", "AU2 OUTL", 92 + "Lineout", "AU2 OUTR"; 93 + assigned-clocks = <&clkc CLKID_MPLL0>, 94 + <&clkc CLKID_MPLL1>, 95 + <&clkc CLKID_MPLL2>; 96 + assigned-clock-parents = <0>, <0>, <0>; 97 + assigned-clock-rates = <294912000>, 98 + <270950400>, 99 + <393216000>; 100 + 101 + dai-link-0 { 102 + sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; 103 + }; 104 + 105 + dai-link-1 { 106 + sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>; 107 + }; 108 + 109 + dai-link-2 { 110 + sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; 111 + dai-format = "i2s"; 112 + mclk-fs = <256>; 113 + 114 + codec-0 { 115 + sound-dai = <&aiu AIU_HDMI CTRL_I2S>; 116 + }; 117 + 118 + codec-1 { 119 + sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; 120 + }; 121 + }; 122 + 123 + dai-link-3 { 124 + sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>; 125 + 126 + codec-0 { 127 + sound-dai = <&spdif_dit>; 128 + }; 129 + }; 130 + 131 + dai-link-4 { 132 + sound-dai = <&aiu AIU_HDMI CTRL_OUT>; 133 + 134 + codec-0 { 135 + sound-dai = <&hdmi_tx>; 136 + }; 137 + }; 138 + 139 + dai-link-5 { 140 + sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; 141 + 142 + codec-0 { 143 + sound-dai = <&acodec>; 144 + }; 145 + }; 146 + }; 147 + }; 148 + 149 + &acodec { 150 + AVDD-supply = <&vddio_ao18>; 151 + status = "okay"; 152 + }; 153 + 154 + &aiu { 155 + status = "okay"; 156 + pinctrl-0 = <&spdif_out_h_pins>; 157 + pinctrl-names = "default"; 158 + }; 159 + 160 + &cec_AO { 161 + status = "okay"; 162 + pinctrl-0 = <&ao_cec_pins>; 163 + pinctrl-names = "default"; 164 + hdmi-phandle = <&hdmi_tx>; 165 + }; 166 + 167 + &cvbs_vdac_port { 168 + cvbs_vdac_out: endpoint { 169 + remote-endpoint = <&cvbs_connector_in>; 170 + }; 171 + }; 172 + 173 + &ethmac { 174 + phy-mode = "rmii"; 175 + phy-handle = <&internal_phy>; 176 + }; 177 + 178 + &hdmi_tx { 179 + status = "okay"; 180 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 181 + pinctrl-names = "default"; 182 + hdmi-supply = <&hdmi_5v>; 183 + }; 184 + 185 + &hdmi_tx_tmds_port { 186 + hdmi_tx_tmds_out: endpoint { 187 + remote-endpoint = <&hdmi_connector_in>; 188 + }; 189 + }; 190 + 191 + &internal_phy { 192 + pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>; 193 + pinctrl-names = "default"; 194 + }; 195 + 196 + /* This UART is brought out to the DB9 connector */ 197 + &uart_AO { 198 + status = "okay"; 199 + };
+8 -2
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
··· 323 323 <&reset RESET_HDMI_SYSTEM_RESET>, 324 324 <&reset RESET_HDMI_TX>; 325 325 reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; 326 - clocks = <&clkc CLKID_HDMI_PCLK>, 327 - <&clkc CLKID_CLK81>, 326 + clocks = <&clkc CLKID_HDMI>, 327 + <&clkc CLKID_HDMI_PCLK>, 328 328 <&clkc CLKID_GCLK_VENCI_INT0>; 329 329 clock-names = "isfr", "iahb", "venci"; 330 + power-domains = <&pwrc PWRC_GXBB_VPU_ID>; 331 + 332 + assigned-clocks = <&clkc CLKID_HDMI_SEL>, 333 + <&clkc CLKID_HDMI>; 334 + assigned-clock-parents = <&xtal>, <0>; 335 + assigned-clock-rates = <0>, <24000000>; 330 336 }; 331 337 332 338 &sysctrl {
+51
arch/arm64/boot/dts/amlogic/meson-gxlx-s905l-p271.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (c) 2024 Christian Hewitt <christianshewitt@gmail.com> 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "meson-gxl-s905x.dtsi" 9 + #include "meson-gx-p23x-q20x.dtsi" 10 + 11 + / { 12 + compatible = "amlogic,p271", "amlogic,s905l", "amlogic,meson-gxlx"; 13 + model = "Amlogic Meson GXLX (S905L) P271 Development Board"; 14 + 15 + memory@0 { 16 + device_type = "memory"; 17 + reg = <0x0 0x0 0x0 0x40000000>; 18 + }; 19 + 20 + sound { 21 + model = "P271"; 22 + }; 23 + }; 24 + 25 + &apb { 26 + mali: gpu@c0000 { 27 + /* Mali 450-MP2 */ 28 + interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 29 + <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 30 + <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 31 + <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 32 + <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 33 + <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 34 + <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, 35 + <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 36 + interrupt-names = "gp", "gpmmu", "pp", "pmu", 37 + "pp0", "ppmmu0", "pp1", "ppmmu1"; 38 + }; 39 + }; 40 + 41 + &saradc { 42 + compatible = "amlogic,meson-gxlx-saradc", "amlogic,meson-saradc"; 43 + }; 44 + 45 + &usb { 46 + dr_mode = "host"; 47 + }; 48 + 49 + &vdec { 50 + compatible = "amlogic,gxlx-vdec", "amlogic,gx-vdec"; 51 + };
+199
arch/arm64/boot/dts/amlogic/meson-s4.dtsi
··· 312 312 }; 313 313 }; 314 314 315 + pwm_a_pins1: pwm-a-pins1 { 316 + mux { 317 + groups = "pwm_a_d"; 318 + function = "pwm_a"; 319 + }; 320 + }; 321 + 322 + pwm_a_pins2: pwm-a-pins2 { 323 + mux { 324 + groups = "pwm_a_x"; 325 + function = "pwm_a"; 326 + }; 327 + }; 328 + 329 + pwm_b_pins1: pwm-b-pins1 { 330 + mux { 331 + groups = "pwm_b_d"; 332 + function = "pwm_b"; 333 + }; 334 + }; 335 + 336 + pwm_b_pins2: pwm-b-pins2 { 337 + mux { 338 + groups = "pwm_b_x"; 339 + function = "pwm_b"; 340 + }; 341 + }; 342 + 343 + pwm_c_pins1: pwm-c-pins1 { 344 + mux { 345 + groups = "pwm_c_d"; 346 + function = "pwm_c"; 347 + }; 348 + }; 349 + 350 + pwm_c_pins2: pwm-c-pins2 { 351 + mux { 352 + groups = "pwm_c_x"; 353 + function = "pwm_c"; 354 + }; 355 + }; 356 + 357 + pwm_d_pins1: pwm-d-pins1 { 358 + mux { 359 + groups = "pwm_d_d"; 360 + function = "pwm_d"; 361 + }; 362 + }; 363 + 364 + pwm_d_pins2: pwm-d-pins2 { 365 + mux { 366 + groups = "pwm_d_h"; 367 + function = "pwm_d"; 368 + }; 369 + }; 370 + 371 + pwm_e_pins1: pwm-e-pins1 { 372 + mux { 373 + groups = "pwm_e_x"; 374 + function = "pwm_e"; 375 + }; 376 + }; 377 + 378 + pwm_e_pins2: pwm-e-pins2 { 379 + mux { 380 + groups = "pwm_e_z"; 381 + function = "pwm_e"; 382 + }; 383 + }; 384 + 385 + pwm_f_pins1: pwm-f-pins1 { 386 + mux { 387 + groups = "pwm_f_x"; 388 + function = "pwm_f"; 389 + }; 390 + }; 391 + 392 + pwm_f_pins2: pwm-f-pins2 { 393 + mux { 394 + groups = "pwm_f_z"; 395 + function = "pwm_f"; 396 + }; 397 + }; 398 + 399 + pwm_g_pins1: pwm-g-pins1 { 400 + mux { 401 + groups = "pwm_g_d"; 402 + function = "pwm_g"; 403 + }; 404 + }; 405 + 406 + pwm_g_pins2: pwm-g-pins2 { 407 + mux { 408 + groups = "pwm_g_z"; 409 + function = "pwm_g"; 410 + }; 411 + }; 412 + 413 + pwm_h_pins: pwm-h-pins { 414 + mux { 415 + groups = "pwm_h"; 416 + function = "pwm_h"; 417 + }; 418 + }; 419 + 420 + pwm_i_pins1: pwm-i-pins1 { 421 + mux { 422 + groups = "pwm_i_d"; 423 + function = "pwm_i"; 424 + }; 425 + }; 426 + 427 + pwm_i_pins2: pwm-i-pins2 { 428 + mux { 429 + groups = "pwm_i_h"; 430 + function = "pwm_i"; 431 + }; 432 + }; 433 + 434 + pwm_j_pins: pwm-j-pins { 435 + mux { 436 + groups = "pwm_j"; 437 + function = "pwm_j"; 438 + }; 439 + }; 440 + 441 + pwm_a_hiz_pins: pwm-a-hiz-pins { 442 + mux { 443 + groups = "pwm_a_hiz"; 444 + function = "pwm_a_hiz"; 445 + }; 446 + }; 447 + 448 + pwm_b_hiz_pins: pwm-b-hiz-pins { 449 + mux { 450 + groups = "pwm_b_hiz"; 451 + function = "pwm_b_hiz"; 452 + }; 453 + }; 454 + 455 + pwm_c_hiz_pins: pwm-c-hiz-pins { 456 + mux { 457 + groups = "pwm_c_hiz"; 458 + function = "pwm_c_hiz"; 459 + }; 460 + }; 461 + 462 + pwm_g_hiz_pins: pwm-g-hiz-pins { 463 + mux { 464 + groups = "pwm_g_hiz"; 465 + function = "pwm_g_hiz"; 466 + }; 467 + }; 468 + 315 469 spicc0_pins_x: spicc0-pins_x { 316 470 mux { 317 471 groups = "spi_a_mosi_x", ··· 550 396 clock-names = "core", "pclk"; 551 397 #address-cells = <1>; 552 398 #size-cells = <0>; 399 + status = "disabled"; 400 + }; 401 + 402 + pwm_ab: pwm@58000 { 403 + compatible = "amlogic,meson-s4-pwm"; 404 + reg = <0x0 0x58000 0x0 0x24>; 405 + clocks = <&clkc_periphs CLKID_PWM_A>, 406 + <&clkc_periphs CLKID_PWM_B>; 407 + #pwm-cells = <3>; 408 + status = "disabled"; 409 + }; 410 + 411 + pwm_cd: pwm@5a000 { 412 + compatible = "amlogic,meson-s4-pwm"; 413 + reg = <0x0 0x5a000 0x0 0x24>; 414 + clocks = <&clkc_periphs CLKID_PWM_C>, 415 + <&clkc_periphs CLKID_PWM_D>; 416 + #pwm-cells = <3>; 417 + status = "disabled"; 418 + }; 419 + 420 + pwm_ef: pwm@5c000 { 421 + compatible = "amlogic,meson-s4-pwm"; 422 + reg = <0x0 0x5c000 0x0 0x24>; 423 + clocks = <&clkc_periphs CLKID_PWM_E>, 424 + <&clkc_periphs CLKID_PWM_F>; 425 + #pwm-cells = <3>; 426 + status = "disabled"; 427 + }; 428 + 429 + pwm_gh: pwm@5e000 { 430 + compatible = "amlogic,meson-s4-pwm"; 431 + reg = <0x0 0x5e000 0x0 0x24>; 432 + clocks = <&clkc_periphs CLKID_PWM_G>, 433 + <&clkc_periphs CLKID_PWM_H>; 434 + #pwm-cells = <3>; 435 + status = "disabled"; 436 + }; 437 + 438 + pwm_ij: pwm@60000 { 439 + compatible = "amlogic,meson-s4-pwm"; 440 + reg = <0x0 0x60000 0x0 0x24>; 441 + clocks = <&clkc_periphs CLKID_PWM_I>, 442 + <&clkc_periphs CLKID_PWM_J>; 443 + #pwm-cells = <3>; 553 444 status = "disabled"; 554 445 }; 555 446
+22 -22
arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
··· 17 17 compatible = "amlogic,axg-tdm-iface"; 18 18 #sound-dai-cells = <0>; 19 19 sound-name-prefix = "TDM_A"; 20 - clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>, 21 - <&clkc_audio AUD_CLKID_MST_A_SCLK>, 22 - <&clkc_audio AUD_CLKID_MST_A_LRCLK>; 23 - clock-names = "mclk", "sclk", "lrclk"; 20 + clocks = <&clkc_audio AUD_CLKID_MST_A_SCLK>, 21 + <&clkc_audio AUD_CLKID_MST_A_LRCLK>, 22 + <&clkc_audio AUD_CLKID_MST_A_MCLK>; 23 + clock-names = "sclk", "lrclk", "mclk"; 24 24 status = "disabled"; 25 25 }; 26 26 ··· 28 28 compatible = "amlogic,axg-tdm-iface"; 29 29 #sound-dai-cells = <0>; 30 30 sound-name-prefix = "TDM_B"; 31 - clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>, 32 - <&clkc_audio AUD_CLKID_MST_B_SCLK>, 33 - <&clkc_audio AUD_CLKID_MST_B_LRCLK>; 34 - clock-names = "mclk", "sclk", "lrclk"; 31 + clocks = <&clkc_audio AUD_CLKID_MST_B_SCLK>, 32 + <&clkc_audio AUD_CLKID_MST_B_LRCLK>, 33 + <&clkc_audio AUD_CLKID_MST_B_MCLK>; 34 + clock-names = "sclk", "lrclk", "mclk"; 35 35 status = "disabled"; 36 36 }; 37 37 ··· 39 39 compatible = "amlogic,axg-tdm-iface"; 40 40 #sound-dai-cells = <0>; 41 41 sound-name-prefix = "TDM_C"; 42 - clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>, 43 - <&clkc_audio AUD_CLKID_MST_C_SCLK>, 44 - <&clkc_audio AUD_CLKID_MST_C_LRCLK>; 45 - clock-names = "mclk", "sclk", "lrclk"; 42 + clocks = <&clkc_audio AUD_CLKID_MST_C_SCLK>, 43 + <&clkc_audio AUD_CLKID_MST_C_LRCLK>, 44 + <&clkc_audio AUD_CLKID_MST_C_MCLK>; 45 + clock-names = "sclk", "lrclk", "mclk"; 46 46 status = "disabled"; 47 47 }; 48 48 ··· 275 275 }; 276 276 277 277 tdmin_a: audio-controller@300 { 278 - compatible = "amlogic,sm1-tdmin", 279 - "amlogic,axg-tdmin"; 278 + compatible = "amlogic,sm1-tdmin"; 280 279 reg = <0x0 0x300 0x0 0x40>; 281 280 sound-name-prefix = "TDMIN_A"; 282 281 resets = <&clkc_audio AUD_RESET_TDMIN_A>; ··· 290 291 }; 291 292 292 293 tdmin_b: audio-controller@340 { 293 - compatible = "amlogic,sm1-tdmin", 294 - "amlogic,axg-tdmin"; 294 + compatible = "amlogic,sm1-tdmin"; 295 295 reg = <0x0 0x340 0x0 0x40>; 296 296 sound-name-prefix = "TDMIN_B"; 297 297 resets = <&clkc_audio AUD_RESET_TDMIN_B>; ··· 305 307 }; 306 308 307 309 tdmin_c: audio-controller@380 { 308 - compatible = "amlogic,sm1-tdmin", 309 - "amlogic,axg-tdmin"; 310 + compatible = "amlogic,sm1-tdmin"; 310 311 reg = <0x0 0x380 0x0 0x40>; 311 312 sound-name-prefix = "TDMIN_C"; 312 313 resets = <&clkc_audio AUD_RESET_TDMIN_C>; ··· 320 323 }; 321 324 322 325 tdmin_lb: audio-controller@3c0 { 323 - compatible = "amlogic,sm1-tdmin", 324 - "amlogic,axg-tdmin"; 326 + compatible = "amlogic,sm1-tdmin"; 325 327 reg = <0x0 0x3c0 0x0 0x40>; 326 328 sound-name-prefix = "TDMIN_LB"; 327 329 resets = <&clkc_audio AUD_RESET_TDMIN_LB>; ··· 335 339 }; 336 340 337 341 spdifin: audio-controller@400 { 338 - compatible = "amlogic,g12a-spdifin", 342 + compatible = "amlogic,sm1-spdifin", 339 343 "amlogic,axg-spdifin"; 340 344 reg = <0x0 0x400 0x0 0x30>; 341 345 #sound-dai-cells = <0>; ··· 349 353 }; 350 354 351 355 spdifout_a: audio-controller@480 { 352 - compatible = "amlogic,g12a-spdifout", 356 + compatible = "amlogic,sm1-spdifout", 353 357 "amlogic,axg-spdifout"; 354 358 reg = <0x0 0x480 0x0 0x50>; 355 359 #sound-dai-cells = <0>; ··· 512 516 &gpio_intc { 513 517 compatible = "amlogic,meson-sm1-gpio-intc", 514 518 "amlogic,meson-gpio-intc"; 519 + }; 520 + 521 + &hdmi_tx { 522 + power-domains = <&pwrc PWRC_SM1_VPU_ID>; 515 523 }; 516 524 517 525 &pcie {
+21
include/dt-bindings/power/amlogic,a4-pwrc.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */ 2 + /* 3 + * Copyright (C) 2024 Amlogic, Inc. All rights reserved 4 + */ 5 + #ifndef _DT_BINDINGS_AMLOGIC_A4_POWER_H 6 + #define _DT_BINDINGS_AMLOGIC_A4_POWER_H 7 + 8 + #define PWRC_A4_AUDIO_ID 0 9 + #define PWRC_A4_SDIOA_ID 1 10 + #define PWRC_A4_EMMC_ID 2 11 + #define PWRC_A4_USB_COMB_ID 3 12 + #define PWRC_A4_ETH_ID 4 13 + #define PWRC_A4_VOUT_ID 5 14 + #define PWRC_A4_AUDIO_PDM_ID 6 15 + #define PWRC_A4_DMC_ID 7 16 + #define PWRC_A4_SYS_WRAP_ID 8 17 + #define PWRC_A4_AO_I2C_S_ID 9 18 + #define PWRC_A4_AO_UART_ID 10 19 + #define PWRC_A4_AO_IR_ID 11 20 + 21 + #endif