From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E67A0C433EF for ; Tue, 21 Sep 2021 07:27:55 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 21CE461242 for ; Tue, 21 Sep 2021 07:27:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 21CE461242 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EA26583296; Tue, 21 Sep 2021 09:27:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=baylibre-com.20210112.gappssmtp.com header.i=@baylibre-com.20210112.gappssmtp.com header.b="n14EYJFW"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 749BB8325E; Tue, 21 Sep 2021 09:27:34 +0200 (CEST) Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 7CAEE82DF0 for ; Tue, 21 Sep 2021 09:27:21 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=narmstrong@baylibre.com Received: by mail-wr1-x430.google.com with SMTP id t8so29308230wri.1 for ; Tue, 21 Sep 2021 00:27:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=subject:to:cc:references:from:organization:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=7Rr4NuEXzJAUFYRf6qi3iDsQTMGovmndz296imRVJ34=; b=n14EYJFWoVIG5Cs4ioiC48UXkbDIPPyaksXHYgMeWYq7ULVzelE8bphOrydxrZx76O 5rXotmyp2o1wd7q83GiLxbBP+Nq3sIwnwM00L0Kq5bDngWEaSITqRYGclvSmMYAK2E15 kOlbS3DnpZ5+Owp4UiuxMW1i1QB/nr8FauAHLQuhx8onO3UmcyytAeaZSp2ZvwQy2lwE QWUgtyHYLeZdGNjVcEKV6p+NkNdZG04TFofmmOo9sc6s3oSsURc413InwRmK5Y5nTT9W 0b7h2qnwaHeha1EqKb64R9ubaCnmpNN2hD4ZspBWmG+JhgcyVGQX/PQDEspOh8gNLkEV jm9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=7Rr4NuEXzJAUFYRf6qi3iDsQTMGovmndz296imRVJ34=; b=sb6czo/QTkFGfAzgmSf57HiBBqm/n4tcIRWAEQAykKqCwWoiGjKtaZrvxcImZUgijC YVL+Q1JYYyJhYP88pa/H+E5/okJ8p9rVKrw0BYq/xWuEAqemOsbh2p5SNfMVnA3/bEvT il7z1vBHzHB03IIK/a8dh3rAYucUjSbQmG+plXcfcFqqD2kNYP7P7XXswR9iMmtgh7Pa 7B6r+earQ3fv+DWpOuC81y6qVd0FoVJH4n9yDe7M+nhi6mhNliLMdjo0LqdESok3JuqT FP7GJVw9rpQohHlpBKb5YzI6n4Ftvh7AIljfJrvdUzXLxYVpPwCXhq43tciP8qoTF0Nz qTFA== X-Gm-Message-State: AOAM530SenN4x/wkMv5SoBNFWWwYEUnZN1L8z3t5PW/UgelhiknlePIO GRRzCH7Yo+XAKUY8GOwIclHqBb3nFENByCCf X-Google-Smtp-Source: ABdhPJwFUbOV44UUZrHIGG5KpLVbdO+otuYP5wAZkLDlWxOPkLSa/9nXZ8CJA53XoIIjCeJ2wSZeBQ== X-Received: by 2002:a1c:cc16:: with SMTP id h22mr2996122wmb.117.1632209239924; Tue, 21 Sep 2021 00:27:19 -0700 (PDT) Received: from [192.168.1.10] (i16-les01-ntr-213-44-230-108.sfr.lns.abo.bbox.fr. [213.44.230.108]) by smtp.gmail.com with ESMTPSA id j19sm18058704wra.92.2021.09.21.00.27.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 21 Sep 2021 00:27:19 -0700 (PDT) Subject: Re: [PATCH v3 01/10] ARM: meson: Sync Amlogic DT from Linux 5.14 To: u-boot@lists.denx.de Cc: u-boot-amlogic@groups.io References: <20210917073709.1052133-1-narmstrong@baylibre.com> From: Neil Armstrong Organization: Baylibre Message-ID: Date: Tue, 21 Sep 2021 09:27:19 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <20210917073709.1052133-1-narmstrong@baylibre.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean On 17/09/2021 09:37, Neil Armstrong wrote: > Import Amlogic DT changes from Linux commit 7d2a07b76933 ("Linux 5.14"), > dt-bindings clock changes and new meson-g12b-gsking-x.dts, > meson-sm1-bananapi-m5 & odroid-hc4 boards. > > Signed-off-by: Neil Armstrong > --- > arch/arm/dts/Makefile | 3 + > arch/arm/dts/meson-axg-s400.dts | 16 + > arch/arm/dts/meson-axg.dtsi | 181 +++++ > arch/arm/dts/meson-g12-common.dtsi | 31 +- > arch/arm/dts/meson-g12a-sei510.dts | 2 +- > arch/arm/dts/meson-g12b-gsking-x.dts | 133 ++++ > arch/arm/dts/meson-g12b-gtking-pro.dts | 23 +- > arch/arm/dts/meson-g12b-gtking.dts | 22 +- > arch/arm/dts/meson-g12b-odroid-n2-plus.dts | 2 +- > arch/arm/dts/meson-g12b-odroid-n2.dtsi | 74 +- > arch/arm/dts/meson-g12b-w400.dtsi | 2 +- > arch/arm/dts/meson-g12b.dtsi | 4 + > arch/arm/dts/meson-gx-libretech-pc.dtsi | 2 +- > arch/arm/dts/meson-gx-p23x-q20x.dtsi | 2 +- > arch/arm/dts/meson-gx.dtsi | 7 + > arch/arm/dts/meson-gxbb-nanopi-k2.dts | 42 +- > arch/arm/dts/meson-gxbb-odroidc2.dts | 44 +- > arch/arm/dts/meson-gxl-s805x-libretech-ac.dts | 2 +- > arch/arm/dts/meson-gxl-s905x-khadas-vim.dts | 50 +- > .../dts/meson-gxl-s905x-libretech-cc-v2.dts | 6 +- > arch/arm/dts/meson-gxl-s905x-libretech-cc.dts | 2 +- > arch/arm/dts/meson-gxm-khadas-vim2.dts | 55 +- > arch/arm/dts/meson-gxm-wetek-core2.dts | 2 +- > arch/arm/dts/meson-gxm.dtsi | 20 + > arch/arm/dts/meson-khadas-vim3.dtsi | 73 +- > arch/arm/dts/meson-sm1-bananapi-m5.dts | 646 ++++++++++++++++++ > arch/arm/dts/meson-sm1-khadas-vim3l.dts | 20 +- > arch/arm/dts/meson-sm1-odroid-c4.dts | 448 +----------- > arch/arm/dts/meson-sm1-odroid-hc4.dts | 140 ++++ > arch/arm/dts/meson-sm1-odroid.dtsi | 449 ++++++++++++ > arch/arm/dts/meson-sm1-sei610.dts | 10 +- > arch/arm/dts/meson-sm1.dtsi | 12 +- > include/dt-bindings/clock/axg-clkc.h | 26 +- > include/dt-bindings/clock/g12a-clkc.h | 2 + > 34 files changed, 2030 insertions(+), 523 deletions(-) > create mode 100644 arch/arm/dts/meson-g12b-gsking-x.dts > create mode 100644 arch/arm/dts/meson-sm1-bananapi-m5.dts > create mode 100644 arch/arm/dts/meson-sm1-odroid-hc4.dts > create mode 100644 arch/arm/dts/meson-sm1-odroid.dtsi > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index fc16a57e60..f0160d2dc0 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -177,11 +177,14 @@ dtb-$(CONFIG_ARCH_MESON) += \ > meson-g12a-sei510.dtb \ > meson-g12b-gtking.dtb \ > meson-g12b-gtking-pro.dtb \ > + meson-g12b-gsking-x.dtb \ > meson-g12b-odroid-n2.dtb \ > meson-g12b-odroid-n2-plus.dtb \ > meson-g12b-a311d-khadas-vim3.dtb \ > + meson-sm1-bananapi-m5.dtb \ > meson-sm1-khadas-vim3l.dtb \ > meson-sm1-odroid-c4.dtb \ > + meson-sm1-odroid-hc4.dtb \ > meson-sm1-sei610.dtb > dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ > tegra20-medcom-wide.dtb \ > diff --git a/arch/arm/dts/meson-axg-s400.dts b/arch/arm/dts/meson-axg-s400.dts > index cb1360ae12..359589d1df 100644 > --- a/arch/arm/dts/meson-axg-s400.dts > +++ b/arch/arm/dts/meson-axg-s400.dts > @@ -441,6 +441,16 @@ > status = "okay"; > }; > > +&pcieA { > + reset-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_LOW>; > + status = "okay"; > +}; > + > +&pcieB { > + reset-gpios = <&gpio GPIOZ_10 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; > + status = "okay"; > +}; > + > &pwm_ab { > status = "okay"; > pinctrl-0 = <&pwm_a_x20_pins>; > @@ -584,3 +594,9 @@ > pinctrl-0 = <&uart_ao_a_pins>; > pinctrl-names = "default"; > }; > + > +&usb { > + status = "okay"; > + dr_mode = "otg"; > + vbus-supply = <&usb_pwr>; > +}; > diff --git a/arch/arm/dts/meson-axg.dtsi b/arch/arm/dts/meson-axg.dtsi > index b9efc84692..3f5254eeb4 100644 > --- a/arch/arm/dts/meson-axg.dtsi > +++ b/arch/arm/dts/meson-axg.dtsi > @@ -12,6 +12,7 @@ > #include > #include > #include > +#include > > / { > compatible = "amlogic,meson-axg"; > @@ -171,6 +172,98 @@ > #size-cells = <2>; > ranges; > > + pcieA: pcie@f9800000 { > + compatible = "amlogic,axg-pcie", "snps,dw-pcie"; > + reg = <0x0 0xf9800000 0x0 0x400000>, > + <0x0 0xff646000 0x0 0x2000>, > + <0x0 0xf9f00000 0x0 0x100000>; > + reg-names = "elbi", "cfg", "config"; > + interrupts = ; > + #interrupt-cells = <1>; > + interrupt-map-mask = <0 0 0 0>; > + interrupt-map = <0 0 0 0 &gic GIC_SPI 179 IRQ_TYPE_EDGE_RISING>; > + bus-range = <0x0 0xff>; > + #address-cells = <3>; > + #size-cells = <2>; > + device_type = "pci"; > + ranges = <0x82000000 0 0xf9c00000 0x0 0xf9c00000 0 0x00300000>; > + > + clocks = <&clkc CLKID_USB>, <&clkc CLKID_PCIE_A>, <&clkc CLKID_PCIE_CML_EN0>; > + clock-names = "general", "pclk", "port"; > + resets = <&reset RESET_PCIE_A>, <&reset RESET_PCIE_APB>; > + reset-names = "port", "apb"; > + num-lanes = <1>; > + phys = <&pcie_phy>; > + phy-names = "pcie"; > + status = "disabled"; > + }; > + > + pcieB: pcie@fa000000 { > + compatible = "amlogic,axg-pcie", "snps,dw-pcie"; > + reg = <0x0 0xfa000000 0x0 0x400000>, > + <0x0 0xff648000 0x0 0x2000>, > + <0x0 0xfa400000 0x0 0x100000>; > + reg-names = "elbi", "cfg", "config"; > + interrupts = ; > + #interrupt-cells = <1>; > + interrupt-map-mask = <0 0 0 0>; > + interrupt-map = <0 0 0 0 &gic GIC_SPI 169 IRQ_TYPE_EDGE_RISING>; > + bus-range = <0x0 0xff>; > + #address-cells = <3>; > + #size-cells = <2>; > + device_type = "pci"; > + ranges = <0x82000000 0 0xfa500000 0x0 0xfa500000 0 0x00300000>; > + > + clocks = <&clkc CLKID_USB>, <&clkc CLKID_PCIE_B>, <&clkc CLKID_PCIE_CML_EN1>; > + clock-names = "general", "pclk", "port"; > + resets = <&reset RESET_PCIE_B>, <&reset RESET_PCIE_APB>; > + reset-names = "port", "apb"; > + num-lanes = <1>; > + phys = <&pcie_phy>; > + phy-names = "pcie"; > + status = "disabled"; > + }; > + > + usb: usb@ffe09080 { > + compatible = "amlogic,meson-axg-usb-ctrl"; > + reg = <0x0 0xffe09080 0x0 0x20>; > + interrupts = ; > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1_DDR_BRIDGE>; > + clock-names = "usb_ctrl", "ddr"; > + resets = <&reset RESET_USB_OTG>; > + > + dr_mode = "otg"; > + > + phys = <&usb2_phy1>; > + phy-names = "usb2-phy1"; > + > + dwc2: usb@ff400000 { > + compatible = "amlogic,meson-g12a-usb", "snps,dwc2"; > + reg = <0x0 0xff400000 0x0 0x40000>; > + interrupts = ; > + clocks = <&clkc CLKID_USB1>; > + clock-names = "otg"; > + phys = <&usb2_phy1>; > + dr_mode = "peripheral"; > + g-rx-fifo-size = <192>; > + g-np-tx-fifo-size = <128>; > + g-tx-fifo-size = <128 128 16 16 16>; > + }; > + > + dwc3: usb@ff500000 { > + compatible = "snps,dwc3"; > + reg = <0x0 0xff500000 0x0 0x100000>; > + interrupts = ; > + dr_mode = "host"; > + maximum-speed = "high-speed"; > + snps,dis_u2_susphy_quirk; > + }; > + }; > + > ethmac: ethernet@ff3f0000 { > compatible = "amlogic,meson-axg-dwmac", > "snps,dwmac-3.70a", > @@ -187,9 +280,19 @@ > "timing-adjustment"; > rx-fifo-depth = <4096>; > tx-fifo-depth = <2048>; > + power-domains = <&pwrc PWRC_AXG_ETHERNET_MEM_ID>; > status = "disabled"; > }; > > + pcie_phy: phy@ff644000 { > + compatible = "amlogic,axg-pcie-phy"; > + reg = <0x0 0xff644000 0x0 0x1c>; > + resets = <&reset RESET_PCIE_PHY>; > + phys = <&mipi_pcie_analog_dphy>; > + phy-names = "analog"; > + #phy-cells = <0>; > + }; > + > pdm: audio-controller@ff632000 { > compatible = "amlogic,axg-pdm"; > reg = <0x0 0xff632000 0x0 0x34>; > @@ -1117,6 +1220,52 @@ > clocks = <&xtal>; > clock-names = "xtal"; > }; > + > + pwrc: power-controller { > + compatible = "amlogic,meson-axg-pwrc"; > + #power-domain-cells = <1>; > + amlogic,ao-sysctrl = <&sysctrl_AO>; > + resets = <&reset RESET_VIU>, > + <&reset RESET_VENC>, > + <&reset RESET_VCBUS>, > + <&reset RESET_VENCL>, > + <&reset RESET_VID_LOCK>; > + reset-names = "viu", "venc", "vcbus", > + "vencl", "vid_lock"; > + clocks = <&clkc CLKID_VPU>, > + <&clkc CLKID_VAPB>; > + clock-names = "vpu", "vapb"; > + /* > + * VPU clocking is provided by two identical clock paths > + * VPU_0 and VPU_1 muxed to a single clock by a glitch > + * free mux to safely change frequency while running. > + * Same for VAPB but with a final gate after the glitch free mux. > + */ > + assigned-clocks = <&clkc CLKID_VPU_0_SEL>, > + <&clkc CLKID_VPU_0>, > + <&clkc CLKID_VPU>, /* Glitch free mux */ > + <&clkc CLKID_VAPB_0_SEL>, > + <&clkc CLKID_VAPB_0>, > + <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */ > + assigned-clock-parents = <&clkc CLKID_FCLK_DIV4>, > + <0>, /* Do Nothing */ > + <&clkc CLKID_VPU_0>, > + <&clkc CLKID_FCLK_DIV4>, > + <0>, /* Do Nothing */ > + <&clkc CLKID_VAPB_0>; > + assigned-clock-rates = <0>, /* Do Nothing */ > + <250000000>, > + <0>, /* Do Nothing */ > + <0>, /* Do Nothing */ > + <250000000>, > + <0>; /* Do Nothing */ > + }; > + > + mipi_pcie_analog_dphy: phy { > + compatible = "amlogic,axg-mipi-pcie-analog-phy"; > + #phy-cells = <0>; > + status = "disabled"; > + }; > }; > }; > > @@ -1129,6 +1278,19 @@ > #mbox-cells = <1>; > }; > > + mipi_dphy: phy@ff640000 { > + compatible = "amlogic,axg-mipi-dphy"; > + reg = <0x0 0xff640000 0x0 0x100>; > + clocks = <&clkc CLKID_MIPI_DSI_PHY>; > + clock-names = "pclk"; > + resets = <&reset RESET_MIPI_PHY>; > + reset-names = "phy"; > + phys = <&mipi_pcie_analog_dphy>; > + phy-names = "analog"; > + #phy-cells = <0>; > + status = "disabled"; > + }; > + > audio: bus@ff642000 { > compatible = "simple-bus"; > reg = <0x0 0xff642000 0x0 0x2000>; > @@ -1563,6 +1725,14 @@ > }; > }; > > + ge2d: ge2d@ff940000 { > + compatible = "amlogic,axg-ge2d"; > + reg = <0x0 0xff940000 0x0 0x10000>; > + interrupts = ; > + clocks = <&clkc CLKID_VAPB>; > + resets = <&reset RESET_GE2D>; > + }; > + > gic: interrupt-controller@ffc01000 { > compatible = "arm,gic-400"; > reg = <0x0 0xffc01000 0 0x1000>, > @@ -1701,6 +1871,7 @@ > status = "disabled"; > clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>; > clock-names = "xtal", "pclk", "baud"; > + fifo-size = <128>; > }; > }; > > @@ -1734,6 +1905,16 @@ > clock-names = "core", "clkin0", "clkin1"; > resets = <&reset RESET_SD_EMMC_C>; > }; > + > + usb2_phy1: phy@9020 { > + compatible = "amlogic,meson-gxl-usb2-phy"; > + #phy-cells = <0>; > + reg = <0x0 0x9020 0x0 0x20>; > + clocks = <&clkc CLKID_USB>; > + clock-names = "phy"; > + resets = <&reset RESET_USB_OTG>; > + reset-names = "phy"; > + }; > }; > > sram: sram@fffc0000 { > diff --git a/arch/arm/dts/meson-g12-common.dtsi b/arch/arm/dts/meson-g12-common.dtsi > index 1e83ec5b8c..00c6f53290 100644 > --- a/arch/arm/dts/meson-g12-common.dtsi > +++ b/arch/arm/dts/meson-g12-common.dtsi > @@ -17,6 +17,12 @@ > #address-cells = <2>; > #size-cells = <2>; > > + aliases { > + mmc0 = &sd_emmc_b; /* SD card */ > + mmc1 = &sd_emmc_c; /* eMMC */ > + mmc2 = &sd_emmc_a; /* SDIO */ > + }; > + > chosen { > #address-cells = <2>; > #size-cells = <2>; > @@ -122,9 +128,9 @@ > > pcie: pcie@fc000000 { > compatible = "amlogic,g12a-pcie", "snps,dw-pcie"; > - reg = <0x0 0xfc000000 0x0 0x400000 > - 0x0 0xff648000 0x0 0x2000 > - 0x0 0xfc400000 0x0 0x200000>; > + reg = <0x0 0xfc000000 0x0 0x400000>, > + <0x0 0xff648000 0x0 0x2000>, > + <0x0 0xfc400000 0x0 0x200000>; > reg-names = "elbi", "cfg", "config"; > interrupts = ; > #interrupt-cells = <1>; > @@ -134,8 +140,8 @@ > #address-cells = <3>; > #size-cells = <2>; > device_type = "pci"; > - ranges = <0x81000000 0 0 0x0 0xfc600000 0 0x00100000 > - 0x82000000 0 0xfc700000 0x0 0xfc700000 0 0x1900000>; > + ranges = <0x81000000 0 0 0x0 0xfc600000 0 0x00100000>, > + <0x82000000 0 0xfc700000 0x0 0xfc700000 0 0x1900000>; > > clocks = <&clkc CLKID_PCIE_PHY > &clkc CLKID_PCIE_COMB > @@ -209,7 +215,7 @@ > }; > > ethmac: ethernet@ff3f0000 { > - compatible = "amlogic,meson-axg-dwmac", > + compatible = "amlogic,meson-g12a-dwmac", > "snps,dwmac-3.70a", > "snps,dwmac"; > reg = <0x0 0xff3f0000 0x0 0x10000>, > @@ -282,6 +288,8 @@ > hwrng: rng@218 { > compatible = "amlogic,meson-rng"; > reg = <0x0 0x218 0x0 0x4>; > + clocks = <&clkc CLKID_RNG0>; > + clock-names = "core"; > }; > }; > > @@ -2001,7 +2009,7 @@ > }; > }; > > - vrtc: rtc@0a8 { > + vrtc: rtc@a8 { > compatible = "amlogic,meson-vrtc"; > reg = <0x0 0x000a8 0x0 0x4>; > }; > @@ -2179,6 +2187,12 @@ > amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>; > }; > > + watchdog: watchdog@f0d0 { > + compatible = "amlogic,meson-gxbb-wdt"; > + reg = <0x0 0xf0d0 0x0 0x10>; > + clocks = <&xtal>; > + }; > + > spicc0: spi@13000 { > compatible = "amlogic,meson-g12a-spicc"; > reg = <0x0 0x13000 0x0 0x44>; > @@ -2303,6 +2317,7 @@ > clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>; > clock-names = "xtal", "pclk", "baud"; > status = "disabled"; > + fifo-size = <128>; > }; > }; > > @@ -2380,7 +2395,7 @@ > interrupts = ; > dr_mode = "host"; > snps,dis_u2_susphy_quirk; > - snps,quirk-frame-length-adjustment; > + snps,quirk-frame-length-adjustment = <0x20>; > snps,parkmode-disable-ss-quirk; > }; > }; > diff --git a/arch/arm/dts/meson-g12a-sei510.dts b/arch/arm/dts/meson-g12a-sei510.dts > index b00d0468c7..81269ccc24 100644 > --- a/arch/arm/dts/meson-g12a-sei510.dts > +++ b/arch/arm/dts/meson-g12a-sei510.dts > @@ -181,7 +181,7 @@ > > sound { > compatible = "amlogic,axg-sound-card"; > - model = "G12A-SEI510"; > + model = "SEI510"; > audio-aux-devs = <&tdmout_a>, <&tdmout_b>, > <&tdmin_a>, <&tdmin_b>; > audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", > diff --git a/arch/arm/dts/meson-g12b-gsking-x.dts b/arch/arm/dts/meson-g12b-gsking-x.dts > new file mode 100644 > index 0000000000..6c7bfacbad > --- /dev/null > +++ b/arch/arm/dts/meson-g12b-gsking-x.dts > @@ -0,0 +1,133 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2019 BayLibre, SAS > + * Author: Neil Armstrong > + * Copyright (c) 2019 Christian Hewitt > + */ > + > +/dts-v1/; > + > +#include "meson-g12b-w400.dtsi" > +#include > +#include > + > +/ { > + compatible = "azw,gsking-x", "amlogic,s922x", "amlogic,g12b"; > + model = "Beelink GS-King X"; > + > + aliases { > + rtc0 = &rtc; > + rtc1 = &vrtc; > + }; > + > + gpio-keys-polled { > + compatible = "gpio-keys-polled"; > + #address-cells = <1>; > + #size-cells = <0>; > + poll-interval = <100>; > + > + power-button { > + label = "power"; > + linux,code = ; > + gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; > + }; > + }; > + > + sound { > + compatible = "amlogic,axg-sound-card"; > + model = "GSKING-X"; > + audio-aux-devs = <&tdmout_a>; > + audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 1", > + "TDMOUT_A IN 1", "FRDDR_B OUT 1", > + "TDMOUT_A IN 2", "FRDDR_C OUT 1", > + "TDM_A Playback", "TDMOUT_A OUT"; > + > + assigned-clocks = <&clkc CLKID_MPLL2>, > + <&clkc CLKID_MPLL0>, > + <&clkc CLKID_MPLL1>; > + assigned-clock-parents = <0>, <0>, <0>; > + assigned-clock-rates = <294912000>, > + <270950400>, > + <393216000>; > + status = "okay"; > + > + dai-link-0 { > + sound-dai = <&frddr_a>; > + }; > + > + dai-link-1 { > + sound-dai = <&frddr_b>; > + }; > + > + dai-link-2 { > + sound-dai = <&frddr_c>; > + }; > + > + /* 8ch hdmi interface */ > + dai-link-3 { > + sound-dai = <&tdmif_a>; > + dai-format = "i2s"; > + dai-tdm-slot-tx-mask-0 = <1 1>; > + dai-tdm-slot-tx-mask-1 = <1 1>; > + dai-tdm-slot-tx-mask-2 = <1 1>; > + dai-tdm-slot-tx-mask-3 = <1 1>; > + mclk-fs = <256>; > + > + codec { > + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>; > + }; > + }; > + > + dai-link-4 { > + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; > + > + codec { > + sound-dai = <&hdmi_tx>; > + }; > + }; > + }; > +}; > + > +&arb { > + status = "okay"; > +}; > + > +&clkc_audio { > + status = "okay"; > +}; > + > +&frddr_a { > + status = "okay"; > +}; > + > +&frddr_b { > + status = "okay"; > +}; > + > +&frddr_c { > + status = "okay"; > +}; > + > +&i2c3 { > + status = "okay"; > + pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; > + pinctrl-names = "default"; > + > + rtc: rtc@51 { > + compatible = "nxp,pcf8563"; > + reg = <0x51>; > + wakeup-source; > + }; > +}; > + > +&tdmif_a { > + status = "okay"; > +}; > + > +&tdmout_a { > + status = "okay"; > +}; > + > +&tohdmitx { > + status = "okay"; > +}; > diff --git a/arch/arm/dts/meson-g12b-gtking-pro.dts b/arch/arm/dts/meson-g12b-gtking-pro.dts > index f0c56a16af..707daf9278 100644 > --- a/arch/arm/dts/meson-g12b-gtking-pro.dts > +++ b/arch/arm/dts/meson-g12b-gtking-pro.dts > @@ -11,9 +11,14 @@ > #include > > / { > - compatible = "azw,gtking", "amlogic,g12b"; > + compatible = "azw,gtking", "amlogic,s922x", "amlogic,g12b"; > model = "Beelink GT-King Pro"; > > + aliases { > + rtc0 = &rtc; > + rtc1 = &vrtc; > + }; > + > gpio-keys-polled { > compatible = "gpio-keys-polled"; > #address-cells = <1>; > @@ -30,7 +35,7 @@ > leds { > compatible = "gpio-leds"; > > - white { > + led-white { > label = "power:white"; > gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>; > default-state = "on"; > @@ -39,7 +44,7 @@ > > sound { > compatible = "amlogic,axg-sound-card"; > - model = "G12B-GTKING-PRO"; > + model = "GTKING-PRO"; > audio-aux-devs = <&tdmout_b>; > audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", > "TDMOUT_B IN 1", "FRDDR_B OUT 1", > @@ -112,6 +117,18 @@ > status = "okay"; > }; > > +&i2c3 { > + status = "okay"; > + pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; > + pinctrl-names = "default"; > + > + rtc: rtc@51 { > + compatible = "nxp,pcf8563"; > + reg = <0x51>; > + wakeup-source; > + }; > +}; > + > &tdmif_b { > status = "okay"; > }; > diff --git a/arch/arm/dts/meson-g12b-gtking.dts b/arch/arm/dts/meson-g12b-gtking.dts > index eeb7bc5539..5d96c14490 100644 > --- a/arch/arm/dts/meson-g12b-gtking.dts > +++ b/arch/arm/dts/meson-g12b-gtking.dts > @@ -11,9 +11,14 @@ > #include > > / { > - compatible = "azw,gtking", "amlogic,g12b"; > + compatible = "azw,gtking", "amlogic,s922x", "amlogic,g12b"; > model = "Beelink GT-King"; > > + aliases { > + rtc0 = &rtc; > + rtc1 = &vrtc; > + }; > + > spdif_dit: audio-codec-1 { > #sound-dai-cells = <0>; > compatible = "linux,spdif-dit"; > @@ -23,7 +28,7 @@ > > sound { > compatible = "amlogic,axg-sound-card"; > - model = "G12B-GTKING"; > + model = "GTKING"; > audio-aux-devs = <&tdmout_b>; > audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", > "TDMOUT_B IN 1", "FRDDR_B OUT 1", > @@ -122,6 +127,19 @@ > status = "okay"; > }; > > + > +&i2c3 { > + status = "okay"; > + pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; > + pinctrl-names = "default"; > + > + rtc: rtc@51 { > + compatible = "nxp,pcf8563"; > + reg = <0x51>; > + wakeup-source; > + }; > +}; > + > &spdifout { > pinctrl-0 = <&spdif_out_h_pins>; > pinctrl-names = "default"; > diff --git a/arch/arm/dts/meson-g12b-odroid-n2-plus.dts b/arch/arm/dts/meson-g12b-odroid-n2-plus.dts > index 5de2815ba9..ce1198ad34 100644 > --- a/arch/arm/dts/meson-g12b-odroid-n2-plus.dts > +++ b/arch/arm/dts/meson-g12b-odroid-n2-plus.dts > @@ -19,7 +19,7 @@ > regulator-min-microvolt = <680000>; > regulator-max-microvolt = <1040000>; > > - pwms = <&pwm_AO_cd 1 1500 0>; > + pwms = <&pwm_ab 0 1500 0>; > }; > > &vddcpu_b { > diff --git a/arch/arm/dts/meson-g12b-odroid-n2.dtsi b/arch/arm/dts/meson-g12b-odroid-n2.dtsi > index 6982632ae6..344573e157 100644 > --- a/arch/arm/dts/meson-g12b-odroid-n2.dtsi > +++ b/arch/arm/dts/meson-g12b-odroid-n2.dtsi > @@ -13,6 +13,8 @@ > aliases { > serial0 = &uart_AO; > ethernet0 = ðmac; > + rtc0 = &rtc; > + rtc1 = &vrtc; > }; > > dioo2133: audio-amplifier-0 { > @@ -40,7 +42,7 @@ > leds { > compatible = "gpio-leds"; > > - blue { > + led-blue { > label = "n2:blue"; > gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>; > linux,default-trigger = "heartbeat"; > @@ -211,7 +213,7 @@ > > sound { > compatible = "amlogic,axg-sound-card"; > - model = "G12B-ODROID-N2"; > + model = "ODROID-N2"; > audio-widgets = "Line", "Lineout"; > audio-aux-devs = <&tdmout_b>, <&tdmout_c>, <&tdmin_a>, > <&tdmin_b>, <&tdmin_c>, <&tdmin_lb>, > @@ -408,12 +410,12 @@ > > &ext_mdio { > external_phy: ethernet-phy@0 { > - /* Realtek RTL8211F (0x001cc916) */ > + /* Realtek RTL8211F (0x001cc916) */ > reg = <0>; > max-speed = <1000>; > > reset-assert-us = <10000>; > - reset-deassert-us = <30000>; > + reset-deassert-us = <80000>; > reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; > > interrupt-parent = <&gpio_intc>; > @@ -444,13 +446,58 @@ > }; > > &gpio { > + gpio-line-names = > + /* GPIOZ */ > + "", "", "", "", "", "", "", "", > + "", "", "", "", "", "", "", "", > + /* GPIOH */ > + "", "", "", "", "", "", "", "", > + "", > + /* BOOT */ > + "", "", "", "", "", "", "", "", > + "", "", "", "", "", "", "", "", > + /* GPIOC */ > + "", "", "", "", "", "", "", "", > + /* GPIOA */ > + "PIN_44", /* GPIOA_0 */ > + "PIN_46", /* GPIOA_1 */ > + "PIN_45", /* GPIOA_2 */ > + "PIN_47", /* GPIOA_3 */ > + "PIN_26", /* GPIOA_4 */ > + "", "", "", "", "", "", > + "PIN_42", /* GPIOA_11 */ > + "PIN_32", /* GPIOA_12 */ > + "PIN_7", /* GPIOA_13 */ > + "PIN_27", /* GPIOA_14 */ > + "PIN_28", /* GPIOA_15 */ > + /* GPIOX */ > + "PIN_16", /* GPIOX_0 */ > + "PIN_18", /* GPIOX_1 */ > + "PIN_22", /* GPIOX_2 */ > + "PIN_11", /* GPIOX_3 */ > + "PIN_13", /* GPIOX_4 */ > + "PIN_33", /* GPIOX_5 */ > + "PIN_35", /* GPIOX_6 */ > + "PIN_15", /* GPIOX_7 */ > + "PIN_19", /* GPIOX_8 */ > + "PIN_21", /* GPIOX_9 */ > + "PIN_24", /* GPIOX_10 */ > + "PIN_23", /* GPIOX_11 */ > + "PIN_8", /* GPIOX_12 */ > + "PIN_10", /* GPIOX_13 */ > + "PIN_29", /* GPIOX_14 */ > + "PIN_31", /* GPIOX_15 */ > + "PIN_12", /* GPIOX_16 */ > + "PIN_3", /* GPIOX_17 */ > + "PIN_5", /* GPIOX_18 */ > + "PIN_36"; /* GPIOX_19 */ > /* > * WARNING: The USB Hub on the Odroid-N2 needs a reset signal > * to be turned high in order to be detected by the USB Controller > * This signal should be handled by a USB specific power sequence > * in order to reset the Hub when USB bus is powered down. > */ > - usb-hub { > + hog-0 { > gpio-hog; > gpios = ; > output-high; > @@ -478,6 +525,18 @@ > linux,rc-map-name = "rc-odroid"; > }; > > +&i2c3 { > + status = "okay"; > + pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; > + pinctrl-names = "default"; > + > + rtc: rtc@51 { > + compatible = "nxp,pcf8563"; > + reg = <0x51>; > + wakeup-source; > + }; > +}; > + > &pwm_ab { > pinctrl-0 = <&pwm_a_e_pins>; > pinctrl-names = "default"; > @@ -494,6 +553,11 @@ > status = "okay"; > }; > > +&saradc { > + status = "okay"; > + vref-supply = <&vddao_1v8>; > +}; > + > /* SD card */ > &sd_emmc_b { > status = "okay"; > diff --git a/arch/arm/dts/meson-g12b-w400.dtsi b/arch/arm/dts/meson-g12b-w400.dtsi > index 2802ddbb83..feb0885047 100644 > --- a/arch/arm/dts/meson-g12b-w400.dtsi > +++ b/arch/arm/dts/meson-g12b-w400.dtsi > @@ -264,7 +264,7 @@ > max-speed = <1000>; > > reset-assert-us = <10000>; > - reset-deassert-us = <30000>; > + reset-deassert-us = <80000>; > reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; > > interrupt-parent = <&gpio_intc>; > diff --git a/arch/arm/dts/meson-g12b.dtsi b/arch/arm/dts/meson-g12b.dtsi > index 9b8548e5f6..ee8fcae9f9 100644 > --- a/arch/arm/dts/meson-g12b.dtsi > +++ b/arch/arm/dts/meson-g12b.dtsi > @@ -135,3 +135,7 @@ > }; > }; > }; > + > +&mali { > + dma-coherent; > +}; > diff --git a/arch/arm/dts/meson-gx-libretech-pc.dtsi b/arch/arm/dts/meson-gx-libretech-pc.dtsi > index c2480bab8d..2d7032f41e 100644 > --- a/arch/arm/dts/meson-gx-libretech-pc.dtsi > +++ b/arch/arm/dts/meson-gx-libretech-pc.dtsi > @@ -186,7 +186,7 @@ > > sound { > compatible = "amlogic,gx-sound-card"; > - model = "GXL-LIBRETECH-S9XX-PC"; > + model = "LIBRETECH-PC"; > audio-aux-devs = <&dio2133>; > audio-widgets = "Speaker", "7J4-14 LEFT", > "Speaker", "7J4-11 RIGHT"; > diff --git a/arch/arm/dts/meson-gx-p23x-q20x.dtsi b/arch/arm/dts/meson-gx-p23x-q20x.dtsi > index 6b57e15aad..dafc841f7c 100644 > --- a/arch/arm/dts/meson-gx-p23x-q20x.dtsi > +++ b/arch/arm/dts/meson-gx-p23x-q20x.dtsi > @@ -121,7 +121,7 @@ > > sound { > compatible = "amlogic,gx-sound-card"; > - model = "GX-P230-Q200"; > + model = "P230-Q200"; > audio-aux-devs = <&dio2133>; > audio-widgets = "Line", "Lineout"; > audio-routing = "AU2 INL", "ACODEC LOLP", > diff --git a/arch/arm/dts/meson-gx.dtsi b/arch/arm/dts/meson-gx.dtsi > index 0edd137151..6b457b2c30 100644 > --- a/arch/arm/dts/meson-gx.dtsi > +++ b/arch/arm/dts/meson-gx.dtsi > @@ -20,6 +20,12 @@ > #address-cells = <2>; > #size-cells = <2>; > > + aliases { > + mmc0 = &sd_emmc_b; /* SD card */ > + mmc1 = &sd_emmc_c; /* eMMC */ > + mmc2 = &sd_emmc_a; /* SDIO */ > + }; > + > reserved-memory { > #address-cells = <2>; > #size-cells = <2>; > @@ -295,6 +301,7 @@ > reg = <0x0 0x84c0 0x0 0x18>; > interrupts = ; > status = "disabled"; > + fifo-size = <128>; > }; > > uart_B: serial@84dc { > diff --git a/arch/arm/dts/meson-gxbb-nanopi-k2.dts b/arch/arm/dts/meson-gxbb-nanopi-k2.dts > index 7be3e35409..7273eed529 100644 > --- a/arch/arm/dts/meson-gxbb-nanopi-k2.dts > +++ b/arch/arm/dts/meson-gxbb-nanopi-k2.dts > @@ -7,6 +7,7 @@ > > #include "meson-gxbb.dtsi" > #include > +#include > > / { > compatible = "friendlyarm,nanopi-k2", "amlogic,meson-gxbb"; > @@ -130,6 +131,45 @@ > }; > }; > }; > + > + sound { > + compatible = "amlogic,gx-sound-card"; > + model = "NANOPI-K2"; > + assigned-clocks = <&clkc CLKID_MPLL0>, > + <&clkc CLKID_MPLL1>, > + <&clkc CLKID_MPLL2>; > + assigned-clock-parents = <0>, <0>, <0>; > + assigned-clock-rates = <294912000>, > + <270950400>, > + <393216000>; > + status = "okay"; > + > + dai-link-0 { > + sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; > + }; > + > + dai-link-1 { > + sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; > + dai-format = "i2s"; > + mclk-fs = <256>; > + > + codec-0 { > + sound-dai = <&aiu AIU_HDMI CTRL_I2S>; > + }; > + }; > + > + dai-link-2 { > + sound-dai = <&aiu AIU_HDMI CTRL_OUT>; > + > + codec-0 { > + sound-dai = <&hdmi_tx>; > + }; > + }; > + }; > +}; > + > +&aiu { > + status = "okay"; > }; > > &cec_AO { > @@ -165,7 +205,7 @@ > reg = <0>; > > reset-assert-us = <10000>; > - reset-deassert-us = <30000>; > + reset-deassert-us = <80000>; > reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; > > interrupt-parent = <&gpio_intc>; > diff --git a/arch/arm/dts/meson-gxbb-odroidc2.dts b/arch/arm/dts/meson-gxbb-odroidc2.dts > index 70fcfb7b06..201596247f 100644 > --- a/arch/arm/dts/meson-gxbb-odroidc2.dts > +++ b/arch/arm/dts/meson-gxbb-odroidc2.dts > @@ -9,6 +9,7 @@ > > #include "meson-gxbb.dtsi" > #include > +#include > > / { > compatible = "hardkernel,odroid-c2", "amlogic,meson-gxbb"; > @@ -172,6 +173,45 @@ > }; > }; > }; > + > + sound { > + compatible = "amlogic,gx-sound-card"; > + model = "ODROID-C2"; > + assigned-clocks = <&clkc CLKID_MPLL0>, > + <&clkc CLKID_MPLL1>, > + <&clkc CLKID_MPLL2>; > + assigned-clock-parents = <0>, <0>, <0>; > + assigned-clock-rates = <294912000>, > + <270950400>, > + <393216000>; > + status = "okay"; > + > + dai-link-0 { > + sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; > + }; > + > + dai-link-1 { > + sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; > + dai-format = "i2s"; > + mclk-fs = <256>; > + > + codec-0 { > + sound-dai = <&aiu AIU_HDMI CTRL_I2S>; > + }; > + }; > + > + dai-link-2 { > + sound-dai = <&aiu AIU_HDMI CTRL_OUT>; > + > + codec-0 { > + sound-dai = <&hdmi_tx>; > + }; > + }; > + }; > +}; > + > +&aiu { > + status = "okay"; > }; > > &cec_AO { > @@ -200,7 +240,7 @@ > reg = <0>; > > reset-assert-us = <10000>; > - reset-deassert-us = <30000>; > + reset-deassert-us = <80000>; > reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; > > interrupt-parent = <&gpio_intc>; > @@ -217,7 +257,7 @@ > * This signal should be handled by a USB specific power sequence > * in order to reset the Hub when USB bus is powered down. > */ > - usb-hub { > + hog-0 { > gpio-hog; > gpios = ; > output-high; > diff --git a/arch/arm/dts/meson-gxl-s805x-libretech-ac.dts b/arch/arm/dts/meson-gxl-s805x-libretech-ac.dts > index 9e43f4dca9..2d769203f6 100644 > --- a/arch/arm/dts/meson-gxl-s805x-libretech-ac.dts > +++ b/arch/arm/dts/meson-gxl-s805x-libretech-ac.dts > @@ -118,7 +118,7 @@ > > sound { > compatible = "amlogic,gx-sound-card"; > - model = "GXL-LIBRETECH-S805X-AC"; > + model = "LIBRETECH-AC"; > audio-widgets = "Speaker", "9J5-3 LEFT", > "Speaker", "9J5-2 RIGHT"; > audio-routing = "9J5-3 LEFT", "ACODEC LOLN", > diff --git a/arch/arm/dts/meson-gxl-s905x-khadas-vim.dts b/arch/arm/dts/meson-gxl-s905x-khadas-vim.dts > index 8bcdffdf55..60feac0179 100644 > --- a/arch/arm/dts/meson-gxl-s905x-khadas-vim.dts > +++ b/arch/arm/dts/meson-gxl-s905x-khadas-vim.dts > @@ -5,9 +5,9 @@ > > /dts-v1/; > > -#include > - > #include "meson-gxl-s905x-p212.dtsi" > +#include > +#include > > / { > compatible = "khadas,vim", "amlogic,s905x", "amlogic,meson-gxl"; > @@ -42,10 +42,10 @@ > }; > }; > > - pwmleds { > + led-controller { > compatible = "pwm-leds"; > > - power { > + led-1 { > label = "vim:red:power"; > pwms = <&pwm_AO_ab 1 7812500 0>; > max-brightness = <255>; > @@ -63,6 +63,45 @@ > }; > }; > }; > + > + sound { > + compatible = "amlogic,gx-sound-card"; > + model = "KHADAS-VIM"; > + assigned-clocks = <&clkc CLKID_MPLL0>, > + <&clkc CLKID_MPLL1>, > + <&clkc CLKID_MPLL2>; > + assigned-clock-parents = <0>, <0>, <0>; > + assigned-clock-rates = <294912000>, > + <270950400>, > + <393216000>; > + status = "okay"; > + > + dai-link-0 { > + sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; > + }; > + > + dai-link-1 { > + sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; > + dai-format = "i2s"; > + mclk-fs = <256>; > + > + codec-0 { > + sound-dai = <&aiu AIU_HDMI CTRL_I2S>; > + }; > + }; > + > + dai-link-2 { > + sound-dai = <&aiu AIU_HDMI CTRL_OUT>; > + > + codec-0 { > + sound-dai = <&hdmi_tx>; > + }; > + }; > + }; > +}; > + > +&aiu { > + status = "okay"; > }; > > &cec_AO { > @@ -97,8 +136,7 @@ > pinctrl-names = "default"; > > rtc: rtc@51 { > - /* has to be enabled manually when a battery is connected: */ > - status = "disabled"; > + status = "okay"; > compatible = "haoyu,hym8563"; > reg = <0x51>; > #clock-cells = <0>; > diff --git a/arch/arm/dts/meson-gxl-s905x-libretech-cc-v2.dts b/arch/arm/dts/meson-gxl-s905x-libretech-cc-v2.dts > index 675eaa8796..93d8f8aff7 100644 > --- a/arch/arm/dts/meson-gxl-s905x-libretech-cc-v2.dts > +++ b/arch/arm/dts/meson-gxl-s905x-libretech-cc-v2.dts > @@ -84,7 +84,6 @@ > regulator-always-on; > }; > > - > vcck: regulator-vcck { > compatible = "regulator-fixed"; > regulator-name = "VCCK"; > @@ -124,7 +123,6 @@ > regulator-always-on; > }; > > - > vddio_card: regulator-vddio-card { > compatible = "regulator-gpio"; > regulator-name = "VDDIO_CARD"; > @@ -161,7 +159,7 @@ > > sound { > compatible = "amlogic,gx-sound-card"; > - model = "GXL-LIBRETECH-S905X-CC-V2"; > + model = "LIBRETECH-CC-V2"; > assigned-clocks = <&clkc CLKID_MPLL0>, > <&clkc CLKID_MPLL1>, > <&clkc CLKID_MPLL2>; > @@ -195,7 +193,6 @@ > }; > }; > > - > &aiu { > status = "okay"; > }; > @@ -207,7 +204,6 @@ > hdmi-phandle = <&hdmi_tx>; > }; > > - > ðmac { > status = "okay"; > }; > diff --git a/arch/arm/dts/meson-gxl-s905x-libretech-cc.dts b/arch/arm/dts/meson-gxl-s905x-libretech-cc.dts > index 5ae7bb6209..82bfabfbd3 100644 > --- a/arch/arm/dts/meson-gxl-s905x-libretech-cc.dts > +++ b/arch/arm/dts/meson-gxl-s905x-libretech-cc.dts > @@ -135,7 +135,7 @@ > > sound { > compatible = "amlogic,gx-sound-card"; > - model = "GXL-LIBRETECH-S905X-CC"; > + model = "LIBRETECH-CC"; > audio-aux-devs = <&dio2133>; > audio-widgets = "Line", "Lineout"; > audio-routing = "AU2 INL", "ACODEC LOLN", > diff --git a/arch/arm/dts/meson-gxm-khadas-vim2.dts b/arch/arm/dts/meson-gxm-khadas-vim2.dts > index bff8ec2c1c..18a4b7a6c5 100644 > --- a/arch/arm/dts/meson-gxm-khadas-vim2.dts > +++ b/arch/arm/dts/meson-gxm-khadas-vim2.dts > @@ -7,9 +7,9 @@ > > /dts-v1/; > > -#include > - > #include "meson-gxm.dtsi" > +#include > +#include > > / { > compatible = "khadas,vim2", "amlogic,s912", "amlogic,meson-gxm"; > @@ -81,10 +81,10 @@ > }; > }; > > - pwmleds { > + led-controller { > compatible = "pwm-leds"; > > - power { > + led-1 { > label = "vim:red:power"; > pwms = <&pwm_AO_ab 1 7812500 0>; > max-brightness = <255>; > @@ -145,6 +145,45 @@ > clock-frequency = <32768>; > pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ > }; > + > + sound { > + compatible = "amlogic,gx-sound-card"; > + model = "KHADAS-VIM2"; > + assigned-clocks = <&clkc CLKID_MPLL0>, > + <&clkc CLKID_MPLL1>, > + <&clkc CLKID_MPLL2>; > + assigned-clock-parents = <0>, <0>, <0>; > + assigned-clock-rates = <294912000>, > + <270950400>, > + <393216000>; > + status = "okay"; > + > + dai-link-0 { > + sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; > + }; > + > + dai-link-1 { > + sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; > + dai-format = "i2s"; > + mclk-fs = <256>; > + > + codec-0 { > + sound-dai = <&aiu AIU_HDMI CTRL_I2S>; > + }; > + }; > + > + dai-link-2 { > + sound-dai = <&aiu AIU_HDMI CTRL_OUT>; > + > + codec-0 { > + sound-dai = <&hdmi_tx>; > + }; > + }; > + }; > +}; > + > +&aiu { > + status = "okay"; > }; > > &cec_AO { > @@ -154,7 +193,6 @@ > hdmi-phandle = <&hdmi_tx>; > }; > > - > &cpu_cooling_maps { > map0 { > cooling-device = <&gpio_fan THERMAL_NO_LIMIT 1>; > @@ -194,7 +232,7 @@ > reg = <0>; > > reset-assert-us = <10000>; > - reset-deassert-us = <30000>; > + reset-deassert-us = <80000>; > reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; > > interrupt-parent = <&gpio_intc>; > @@ -228,8 +266,7 @@ > pinctrl-names = "default"; > > rtc: rtc@51 { > - /* has to be enabled manually when a battery is connected: */ > - status = "disabled"; > + status = "okay"; > compatible = "haoyu,hym8563"; > reg = <0x51>; > #clock-cells = <0>; > @@ -341,7 +378,7 @@ > #size-cells = <1>; > compatible = "winbond,w25q16", "jedec,spi-nor"; > reg = <0>; > - spi-max-frequency = <3000000>; > + spi-max-frequency = <104000000>; > }; > }; > > diff --git a/arch/arm/dts/meson-gxm-wetek-core2.dts b/arch/arm/dts/meson-gxm-wetek-core2.dts > index ec794c134c..1e7f77f9b5 100644 > --- a/arch/arm/dts/meson-gxm-wetek-core2.dts > +++ b/arch/arm/dts/meson-gxm-wetek-core2.dts > @@ -22,7 +22,7 @@ > leds { > compatible = "gpio-leds"; > > - blue { > + led-blue { > color = ; > function = LED_FUNCTION_STATUS; > gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; > diff --git a/arch/arm/dts/meson-gxm.dtsi b/arch/arm/dts/meson-gxm.dtsi > index fe41451122..411cc312fc 100644 > --- a/arch/arm/dts/meson-gxm.dtsi > +++ b/arch/arm/dts/meson-gxm.dtsi > @@ -42,11 +42,28 @@ > }; > }; > > + cpu0: cpu@0 { > + capacity-dmips-mhz = <1024>; > + }; > + > + cpu1: cpu@1 { > + capacity-dmips-mhz = <1024>; > + }; > + > + cpu2: cpu@2 { > + capacity-dmips-mhz = <1024>; > + }; > + > + cpu3: cpu@3 { > + capacity-dmips-mhz = <1024>; > + }; > + > cpu4: cpu@100 { > device_type = "cpu"; > compatible = "arm,cortex-a53"; > reg = <0x0 0x100>; > enable-method = "psci"; > + capacity-dmips-mhz = <1024>; > next-level-cache = <&l2>; > clocks = <&scpi_dvfs 1>; > #cooling-cells = <2>; > @@ -57,6 +74,7 @@ > compatible = "arm,cortex-a53"; > reg = <0x0 0x101>; > enable-method = "psci"; > + capacity-dmips-mhz = <1024>; > next-level-cache = <&l2>; > clocks = <&scpi_dvfs 1>; > #cooling-cells = <2>; > @@ -67,6 +85,7 @@ > compatible = "arm,cortex-a53"; > reg = <0x0 0x102>; > enable-method = "psci"; > + capacity-dmips-mhz = <1024>; > next-level-cache = <&l2>; > clocks = <&scpi_dvfs 1>; > #cooling-cells = <2>; > @@ -77,6 +96,7 @@ > compatible = "arm,cortex-a53"; > reg = <0x0 0x103>; > enable-method = "psci"; > + capacity-dmips-mhz = <1024>; > next-level-cache = <&l2>; > clocks = <&scpi_dvfs 1>; > #cooling-cells = <2>; > diff --git a/arch/arm/dts/meson-khadas-vim3.dtsi b/arch/arm/dts/meson-khadas-vim3.dtsi > index 7b46555ac5..3cf4ecb6d5 100644 > --- a/arch/arm/dts/meson-khadas-vim3.dtsi > +++ b/arch/arm/dts/meson-khadas-vim3.dtsi > @@ -6,6 +6,7 @@ > */ > > #include > +#include > #include > #include > > @@ -13,6 +14,8 @@ > aliases { > serial0 = &uart_AO; > ethernet0 = ðmac; > + rtc0 = &rtc; > + rtc1 = &vrtc; > }; > > chosen { > @@ -41,13 +44,15 @@ > compatible = "gpio-leds"; > > led-white { > - label = "vim3:white:sys"; > + color = ; > + function = LED_FUNCTION_STATUS; > gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_HIGH>; > linux,default-trigger = "heartbeat"; > }; > > led-red { > - label = "vim3:red"; > + color = ; > + function = LED_FUNCTION_STATUS; > gpios = <&gpio_expander 5 GPIO_ACTIVE_HIGH>; > }; > }; > @@ -165,12 +170,17 @@ > > sound { > compatible = "amlogic,axg-sound-card"; > - model = "G12B-KHADAS-VIM3"; > - audio-aux-devs = <&tdmout_a>; > + model = "KHADAS-VIM3"; > + audio-aux-devs = <&tdmin_a>, <&tdmout_a>; > audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", > "TDMOUT_A IN 1", "FRDDR_B OUT 0", > "TDMOUT_A IN 2", "FRDDR_C OUT 0", > - "TDM_A Playback", "TDMOUT_A OUT"; > + "TDM_A Playback", "TDMOUT_A OUT", > + "TDMIN_A IN 0", "TDM_A Capture", > + "TDMIN_A IN 3", "TDM_A Loopback", > + "TODDR_A IN 0", "TDMIN_A OUT", > + "TODDR_B IN 0", "TDMIN_A OUT", > + "TODDR_C IN 0", "TDMIN_A OUT"; > > assigned-clocks = <&clkc CLKID_MPLL2>, > <&clkc CLKID_MPLL0>, > @@ -193,8 +203,20 @@ > sound-dai = <&frddr_c>; > }; > > - /* 8ch hdmi interface */ > dai-link-3 { > + sound-dai = <&toddr_a>; > + }; > + > + dai-link-4 { > + sound-dai = <&toddr_b>; > + }; > + > + dai-link-5 { > + sound-dai = <&toddr_c>; > + }; > + > + /* 8ch hdmi interface */ > + dai-link-6 { > sound-dai = <&tdmif_a>; > dai-format = "i2s"; > dai-tdm-slot-tx-mask-0 = <1 1>; > @@ -209,7 +231,7 @@ > }; > > /* hdmi glue */ > - dai-link-4 { > + dai-link-7 { > sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; > > codec { > @@ -278,12 +300,12 @@ > }; > > ðmac { > - pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; > - pinctrl-names = "default"; > - status = "okay"; > - phy-mode = "rgmii"; > - phy-handle = <&external_phy>; > - amlogic,tx-delay-ns = <2>; > + pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; > + pinctrl-names = "default"; > + status = "okay"; > + phy-mode = "rgmii"; > + phy-handle = <&external_phy>; > + amlogic,tx-delay-ns = <2>; > }; > > &frddr_a { > @@ -330,7 +352,7 @@ > #gpio-cells = <2>; > }; > > - rtc@51 { > + rtc: rtc@51 { > compatible = "haoyu,hym8563"; > reg = <0x51>; > #clock-cells = <0>; > @@ -349,9 +371,9 @@ > }; > > &pwm_ef { > - status = "okay"; > - pinctrl-0 = <&pwm_e_pins>; > - pinctrl-names = "default"; > + status = "okay"; > + pinctrl-0 = <&pwm_e_pins>; > + pinctrl-names = "default"; > }; > > &saradc { > @@ -445,15 +467,30 @@ > }; > }; > > - > &tdmif_a { > status = "okay"; > }; > > +&tdmin_a { > + status = "okay"; > +}; > + > &tdmout_a { > status = "okay"; > }; > > +&toddr_a { > + status = "okay"; > +}; > + > +&toddr_b { > + status = "okay"; > +}; > + > +&toddr_c { > + status = "okay"; > +}; > + > &tohdmitx { > status = "okay"; > }; > diff --git a/arch/arm/dts/meson-sm1-bananapi-m5.dts b/arch/arm/dts/meson-sm1-bananapi-m5.dts > new file mode 100644 > index 0000000000..effaa138b5 > --- /dev/null > +++ b/arch/arm/dts/meson-sm1-bananapi-m5.dts > @@ -0,0 +1,646 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2021 BayLibre SAS > + * Author: Neil Armstrong > + */ > + > +/dts-v1/; > + > +#include "meson-sm1.dtsi" > +#include > +#include > +#include > +#include > +#include > + > +/ { > + compatible = "bananapi,bpi-m5", "amlogic,sm1"; > + model = "Banana Pi BPI-M5"; > + > + adc_keys { > + compatible = "adc-keys"; > + io-channels = <&saradc 2>; > + io-channel-names = "buttons"; > + keyup-threshold-microvolt = <1800000>; > + > + key { > + label = "SW3"; > + linux,code = ; > + press-threshold-microvolt = <1700000>; > + }; > + }; > + > + aliases { > + serial0 = &uart_AO; > + ethernet0 = ðmac; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + /* TOFIX: handle CVBS_DET on SARADC channel 0 */ > + cvbs-connector { > + compatible = "composite-video-connector"; > + > + port { > + cvbs_connector_in: endpoint { > + remote-endpoint = <&cvbs_vdac_out>; > + }; > + }; > + }; > + > + emmc_pwrseq: emmc-pwrseq { > + compatible = "mmc-pwrseq-emmc"; > + reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; > + }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + > + key { > + label = "SW1"; > + linux,code = ; > + gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>; > + interrupt-parent = <&gpio_intc>; > + interrupts = <3 IRQ_TYPE_EDGE_BOTH>; > + }; > + }; > + > + hdmi-connector { > + compatible = "hdmi-connector"; > + type = "a"; > + > + port { > + hdmi_connector_in: endpoint { > + remote-endpoint = <&hdmi_tx_tmds_out>; > + }; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + green { > + color = ; > + function = LED_FUNCTION_STATUS; > + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; > + }; > + > + blue { > + color = ; > + function = LED_FUNCTION_STATUS; > + gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_LOW>; > + linux,default-trigger = "heartbeat"; > + }; > + }; > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x0 0x0 0x40000000>; > + }; > + > + emmc_1v8: regulator-emmc_1v8 { > + compatible = "regulator-fixed"; > + regulator-name = "EMMC_1V8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + vin-supply = <&vddao_3v3>; > + regulator-always-on; > + }; > + > + dc_in: regulator-dc_in { > + compatible = "regulator-fixed"; > + regulator-name = "DC_IN"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + regulator-always-on; > + }; > + > + vddio_c: regulator-vddio_c { > + compatible = "regulator-gpio"; > + regulator-name = "VDDIO_C"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + > + enable-gpio = <&gpio GPIOE_2 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-always-on; > + > + gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_DRAIN>; > + gpios-states = <1>; > + > + states = <1800000 0>, > + <3300000 1>; > + }; > + > + tflash_vdd: regulator-tflash_vdd { > + compatible = "regulator-fixed"; > + regulator-name = "TFLASH_VDD"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&dc_in>; > + gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; > + enable-active-high; > + regulator-always-on; > + }; > + > + vddao_1v8: regulator-vddao_1v8 { > + compatible = "regulator-fixed"; > + regulator-name = "VDDAO_1V8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + vin-supply = <&vddao_3v3>; > + regulator-always-on; > + }; > + > + vddao_3v3: regulator-vddao_3v3 { > + compatible = "regulator-fixed"; > + regulator-name = "VDDAO_3V3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&dc_in>; > + regulator-always-on; > + }; > + > + vddcpu: regulator-vddcpu { > + /* > + * SY8120B1ABC DC/DC Regulator. > + */ > + compatible = "pwm-regulator"; > + > + regulator-name = "VDDCPU"; > + regulator-min-microvolt = <690000>; > + regulator-max-microvolt = <1050000>; > + > + vin-supply = <&dc_in>; > + > + pwms = <&pwm_AO_cd 1 1250 0>; > + pwm-dutycycle-range = <100 0>; > + > + regulator-boot-on; > + regulator-always-on; > + }; > + > + /* USB Hub Power Enable */ > + vl_pwr_en: regulator-vl_pwr_en { > + compatible = "regulator-fixed"; > + regulator-name = "VL_PWR_EN"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + vin-supply = <&dc_in>; > + > + gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + sound { > + compatible = "amlogic,axg-sound-card"; > + model = "BPI-M5"; > + audio-widgets = "Line", "Lineout"; > + audio-aux-devs = <&tdmout_b>, <&tdmout_c>, > + <&tdmin_a>, <&tdmin_b>, <&tdmin_c>; > + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", > + "TDMOUT_B IN 1", "FRDDR_B OUT 1", > + "TDMOUT_B IN 2", "FRDDR_C OUT 1", > + "TDM_B Playback", "TDMOUT_B OUT", > + "TDMOUT_C IN 0", "FRDDR_A OUT 2", > + "TDMOUT_C IN 1", "FRDDR_B OUT 2", > + "TDMOUT_C IN 2", "FRDDR_C OUT 2", > + "TDM_C Playback", "TDMOUT_C OUT", > + "TDMIN_A IN 4", "TDM_B Loopback", > + "TDMIN_B IN 4", "TDM_B Loopback", > + "TDMIN_C IN 4", "TDM_B Loopback", > + "TDMIN_A IN 5", "TDM_C Loopback", > + "TDMIN_B IN 5", "TDM_C Loopback", > + "TDMIN_C IN 5", "TDM_C Loopback", > + "TODDR_A IN 0", "TDMIN_A OUT", > + "TODDR_B IN 0", "TDMIN_A OUT", > + "TODDR_C IN 0", "TDMIN_A OUT", > + "TODDR_A IN 1", "TDMIN_B OUT", > + "TODDR_B IN 1", "TDMIN_B OUT", > + "TODDR_C IN 1", "TDMIN_B OUT", > + "TODDR_A IN 2", "TDMIN_C OUT", > + "TODDR_B IN 2", "TDMIN_C OUT", > + "TODDR_C IN 2", "TDMIN_C OUT", > + "Lineout", "ACODEC LOLP", > + "Lineout", "ACODEC LORP"; > + > + assigned-clocks = <&clkc CLKID_MPLL2>, > + <&clkc CLKID_MPLL0>, > + <&clkc CLKID_MPLL1>; > + assigned-clock-parents = <0>, <0>, <0>; > + assigned-clock-rates = <294912000>, > + <270950400>, > + <393216000>; > + status = "okay"; > + > + dai-link-0 { > + sound-dai = <&frddr_a>; > + }; > + > + dai-link-1 { > + sound-dai = <&frddr_b>; > + }; > + > + dai-link-2 { > + sound-dai = <&frddr_c>; > + }; > + > + dai-link-3 { > + sound-dai = <&toddr_a>; > + }; > + > + dai-link-4 { > + sound-dai = <&toddr_b>; > + }; > + > + dai-link-5 { > + sound-dai = <&toddr_c>; > + }; > + > + /* 8ch hdmi interface */ > + dai-link-6 { > + sound-dai = <&tdmif_b>; > + dai-format = "i2s"; > + dai-tdm-slot-tx-mask-0 = <1 1>; > + dai-tdm-slot-tx-mask-1 = <1 1>; > + dai-tdm-slot-tx-mask-2 = <1 1>; > + dai-tdm-slot-tx-mask-3 = <1 1>; > + mclk-fs = <256>; > + > + codec-0 { > + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; > + }; > + > + codec-1 { > + sound-dai = <&toacodec TOACODEC_IN_B>; > + }; > + }; > + > + /* i2s jack output interface */ > + dai-link-7 { > + sound-dai = <&tdmif_c>; > + dai-format = "i2s"; > + dai-tdm-slot-tx-mask-0 = <1 1>; > + mclk-fs = <256>; > + > + codec-0 { > + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>; > + }; > + > + codec-1 { > + sound-dai = <&toacodec TOACODEC_IN_C>; > + }; > + }; > + > + /* hdmi glue */ > + dai-link-8 { > + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; > + > + codec { > + sound-dai = <&hdmi_tx>; > + }; > + }; > + > + /* acodec glue */ > + dai-link-9 { > + sound-dai = <&toacodec TOACODEC_OUT>; > + > + codec { > + sound-dai = <&acodec>; > + }; > + }; > + }; > +}; > + > +&acodec { > + AVDD-supply = <&vddao_1v8>; > + status = "okay"; > +}; > + > +&arb { > + status = "okay"; > +}; > + > +&clkc_audio { > + status = "okay"; > +}; > + > +&cpu0 { > + cpu-supply = <&vddcpu>; > + operating-points-v2 = <&cpu_opp_table>; > + clocks = <&clkc CLKID_CPU_CLK>; > + clock-latency = <50000>; > +}; > + > +&cpu1 { > + cpu-supply = <&vddcpu>; > + operating-points-v2 = <&cpu_opp_table>; > + clocks = <&clkc CLKID_CPU1_CLK>; > + clock-latency = <50000>; > +}; > + > +&cpu2 { > + cpu-supply = <&vddcpu>; > + operating-points-v2 = <&cpu_opp_table>; > + clocks = <&clkc CLKID_CPU2_CLK>; > + clock-latency = <50000>; > +}; > + > +&cpu3 { > + cpu-supply = <&vddcpu>; > + operating-points-v2 = <&cpu_opp_table>; > + clocks = <&clkc CLKID_CPU3_CLK>; > + clock-latency = <50000>; > +}; > + > +&cvbs_vdac_port { > + cvbs_vdac_out: endpoint { > + remote-endpoint = <&cvbs_connector_in>; > + }; > +}; > + > +&ext_mdio { > + external_phy: ethernet-phy@0 { > + /* Realtek RTL8211F (0x001cc916) */ > + reg = <0>; > + max-speed = <1000>; > + > + interrupt-parent = <&gpio_intc>; > + /* MAC_INTR on GPIOZ_14 */ > + interrupts = <26 IRQ_TYPE_LEVEL_LOW>; > + }; > +}; > + > +ðmac { > + pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; > + pinctrl-names = "default"; > + status = "okay"; > + phy-mode = "rgmii-txid"; > + phy-handle = <&external_phy>; > +}; > + > +&frddr_a { > + status = "okay"; > +}; > + > +&frddr_b { > + status = "okay"; > +}; > + > +&frddr_c { > + status = "okay"; > +}; > + > +&gpio { > + gpio-line-names = > + /* GPIOZ */ > + "ETH_MDIO", /* GPIOZ_0 */ > + "ETH_MDC", /* GPIOZ_1 */ > + "ETH_RXCLK", /* GPIOZ_2 */ > + "ETH_RX_DV", /* GPIOZ_3 */ > + "ETH_RXD0", /* GPIOZ_4 */ > + "ETH_RXD1", /* GPIOZ_5 */ > + "ETH_RXD2", /* GPIOZ_6 */ > + "ETH_RXD3", /* GPIOZ_7 */ > + "ETH_TXCLK", /* GPIOZ_8 */ > + "ETH_TXEN", /* GPIOZ_9 */ > + "ETH_TXD0", /* GPIOZ_10 */ > + "ETH_TXD1", /* GPIOZ_11 */ > + "ETH_TXD2", /* GPIOZ_12 */ > + "ETH_TXD3", /* GPIOZ_13 */ > + "ETH_INTR", /* GPIOZ_14 */ > + "ETH_NRST", /* GPIOZ_15 */ > + /* GPIOH */ > + "HDMI_SDA", /* GPIOH_0 */ > + "HDMI_SCL", /* GPIOH_1 */ > + "HDMI_HPD", /* GPIOH_2 */ > + "HDMI_CEC", /* GPIOH_3 */ > + "VL-RST_N", /* GPIOH_4 */ > + "CON1-P36", /* GPIOH_5 */ > + "VL-PWREN", /* GPIOH_6 */ > + "WiFi_3V3_1V8", /* GPIOH_7 */ > + "TFLASH_VDD_EN", /* GPIOH_8 */ > + /* BOOT */ > + "eMMC_D0", /* BOOT_0 */ > + "eMMC_D1", /* BOOT_1 */ > + "eMMC_D2", /* BOOT_2 */ > + "eMMC_D3", /* BOOT_3 */ > + "eMMC_D4", /* BOOT_4 */ > + "eMMC_D5", /* BOOT_5 */ > + "eMMC_D6", /* BOOT_6 */ > + "eMMC_D7", /* BOOT_7 */ > + "eMMC_CLK", /* BOOT_8 */ > + "", > + "eMMC_CMD", /* BOOT_10 */ > + "", > + "eMMC_RST#", /* BOOT_12 */ > + "eMMC_DS", /* BOOT_13 */ > + /* GPIOC */ > + "SD_D0_B", /* GPIOC_0 */ > + "SD_D1_B", /* GPIOC_1 */ > + "SD_D2_B", /* GPIOC_2 */ > + "SD_D3_B", /* GPIOC_3 */ > + "SD_CLK_B", /* GPIOC_4 */ > + "SD_CMD_B", /* GPIOC_5 */ > + "CARD_EN_DET", /* GPIOC_6 */ > + "", > + /* GPIOA */ > + "", "", "", "", "", "", "", "", > + "", "", "", "", "", "", > + "CON1-P27", /* GPIOA_14 */ > + "CON1-P28", /* GPIOA_15 */ > + /* GPIOX */ > + "CON1-P16", /* GPIOX_0 */ > + "CON1-P18", /* GPIOX_1 */ > + "CON1-P22", /* GPIOX_2 */ > + "CON1-P11", /* GPIOX_3 */ > + "CON1-P13", /* GPIOX_4 */ > + "CON1-P07", /* GPIOX_5 */ > + "CON1-P33", /* GPIOX_6 */ > + "CON1-P15", /* GPIOX_7 */ > + "CON1-P19", /* GPIOX_8 */ > + "CON1-P21", /* GPIOX_9 */ > + "CON1-P24", /* GPIOX_10 */ > + "CON1-P23", /* GPIOX_11 */ > + "CON1-P08", /* GPIOX_12 */ > + "CON1-P10", /* GPIOX_13 */ > + "CON1-P29", /* GPIOX_14 */ > + "CON1-P31", /* GPIOX_15 */ > + "CON1-P26", /* GPIOX_16 */ > + "CON1-P03", /* GPIOX_17 */ > + "CON1-P05", /* GPIOX_18 */ > + "CON1-P32"; /* GPIOX_19 */ > + > + /* > + * WARNING: The USB Hub on the BPI-M5 needs a reset signal > + * to be turned high in order to be detected by the USB Controller > + * This signal should be handled by a USB specific power sequence > + * in order to reset the Hub when USB bus is powered down. > + */ > + usb-hub { > + gpio-hog; > + gpios = ; > + output-high; > + line-name = "usb-hub-reset"; > + }; > +}; > + > +&gpio_ao { > + gpio-line-names = > + /* GPIOAO */ > + "DEBUG TX", /* GPIOAO_0 */ > + "DEBUG RX", /* GPIOAO_1 */ > + "SYS_LED2", /* GPIOAO_2 */ > + "UPDATE_KEY", /* GPIOAO_3 */ > + "CON1-P40", /* GPIOAO_4 */ > + "IR_IN", /* GPIOAO_5 */ > + "TF_3V3N_1V8_EN", /* GPIOAO_6 */ > + "CON1-P35", /* GPIOAO_7 */ > + "CON1-P12", /* GPIOAO_8 */ > + "CON1-P37", /* GPIOAO_9 */ > + "CON1-P38", /* GPIOAO_10 */ > + "SYS_LED", /* GPIOAO_11 */ > + /* GPIOE */ > + "VDDEE_PWM", /* GPIOE_0 */ > + "VDDCPU_PWM", /* GPIOE_1 */ > + "TF_PWR_EN"; /* GPIOE_2 */ > +}; > + > +&hdmi_tx { > + status = "okay"; > + pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; > + pinctrl-names = "default"; > + hdmi-supply = <&dc_in>; > +}; > + > +&hdmi_tx_tmds_port { > + hdmi_tx_tmds_out: endpoint { > + remote-endpoint = <&hdmi_connector_in>; > + }; > +}; > + > +&ir { > + status = "okay"; > + pinctrl-0 = <&remote_input_ao_pins>; > + pinctrl-names = "default"; > +}; > + > +&pwm_AO_cd { > + pinctrl-0 = <&pwm_ao_d_e_pins>; > + pinctrl-names = "default"; > + clocks = <&xtal>; > + clock-names = "clkin1"; > + status = "okay"; > +}; > + > +&saradc { > + status = "okay"; > + vref-supply = <&vddao_1v8>; > +}; > + > +/* SD card */ > +&sd_emmc_b { > + status = "okay"; > + pinctrl-0 = <&sdcard_c_pins>; > + pinctrl-1 = <&sdcard_clk_gate_c_pins>; > + pinctrl-names = "default", "clk-gate"; > + > + bus-width = <4>; > + cap-sd-highspeed; > + max-frequency = <50000000>; > + disable-wp; > + > + /* TOFIX: SD card is barely usable in SDR modes */ > + > + cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; > + vmmc-supply = <&tflash_vdd>; > + vqmmc-supply = <&vddio_c>; > +}; > + > +/* eMMC */ > +&sd_emmc_c { > + status = "okay"; > + pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; > + pinctrl-1 = <&emmc_clk_gate_pins>; > + pinctrl-names = "default", "clk-gate"; > + > + bus-width = <8>; > + cap-mmc-highspeed; > + mmc-ddr-1_8v; > + mmc-hs200-1_8v; > + max-frequency = <200000000>; > + disable-wp; > + > + mmc-pwrseq = <&emmc_pwrseq>; > + vmmc-supply = <&vddao_3v3>; > + vqmmc-supply = <&emmc_1v8>; > +}; > + > +&tdmif_b { > + status = "okay"; > +}; > + > +&tdmif_c { > + status = "okay"; > +}; > + > +&tdmin_a { > + status = "okay"; > +}; > + > +&tdmin_b { > + status = "okay"; > +}; > + > +&tdmin_c { > + status = "okay"; > +}; > + > +&tdmout_b { > + status = "okay"; > +}; > + > +&tdmout_c { > + status = "okay"; > +}; > + > +&toacodec { > + status = "okay"; > +}; > + > +&tohdmitx { > + status = "okay"; > +}; > + > +&toddr_a { > + status = "okay"; > +}; > + > +&toddr_b { > + status = "okay"; > +}; > + > +&toddr_c { > + status = "okay"; > +}; > + > +&uart_AO { > + status = "okay"; > + pinctrl-0 = <&uart_ao_a_pins>; > + pinctrl-names = "default"; > +}; > + > +&usb { > + status = "okay"; > +}; > + > +&usb2_phy0 { > + phy-supply = <&dc_in>; > +}; > + > +&usb2_phy1 { > + /* Enable the hub which is connected to this port */ > + phy-supply = <&vl_pwr_en>; > +}; > diff --git a/arch/arm/dts/meson-sm1-khadas-vim3l.dts b/arch/arm/dts/meson-sm1-khadas-vim3l.dts > index 4b517ca720..f2c0981435 100644 > --- a/arch/arm/dts/meson-sm1-khadas-vim3l.dts > +++ b/arch/arm/dts/meson-sm1-khadas-vim3l.dts > @@ -32,6 +32,19 @@ > regulator-boot-on; > regulator-always-on; > }; > + > + sound { > + model = "G12B-KHADAS-VIM3L"; > + audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", > + "TDMOUT_A IN 1", "FRDDR_B OUT 0", > + "TDMOUT_A IN 2", "FRDDR_C OUT 0", > + "TDM_A Playback", "TDMOUT_A OUT", > + "TDMIN_A IN 0", "TDM_A Capture", > + "TDMIN_A IN 13", "TDM_A Loopback", > + "TODDR_A IN 0", "TDMIN_A OUT", > + "TODDR_B IN 0", "TDMIN_A OUT", > + "TODDR_C IN 0", "TDMIN_A OUT"; > + }; > }; > > &cpu0 { > @@ -89,13 +102,12 @@ > status = "okay"; > }; > > -&sd_emmc_a { > - sd-uhs-sdr50; > -}; > - > &usb { > phys = <&usb2_phy0>, <&usb2_phy1>; > phy-names = "usb2-phy0", "usb2-phy1"; > }; > */ > > +&sd_emmc_a { > + sd-uhs-sdr50; > +}; > diff --git a/arch/arm/dts/meson-sm1-odroid-c4.dts b/arch/arm/dts/meson-sm1-odroid-c4.dts > index cf5a98f0e4..8c30ce6368 100644 > --- a/arch/arm/dts/meson-sm1-odroid-c4.dts > +++ b/arch/arm/dts/meson-sm1-odroid-c4.dts > @@ -5,34 +5,12 @@ > > /dts-v1/; > > -#include "meson-sm1.dtsi" > -#include > -#include > -#include > +#include "meson-sm1-odroid.dtsi" > > / { > compatible = "hardkernel,odroid-c4", "amlogic,sm1"; > model = "Hardkernel ODROID-C4"; > > - aliases { > - serial0 = &uart_AO; > - ethernet0 = ðmac; > - }; > - > - chosen { > - stdout-path = "serial0:115200n8"; > - }; > - > - memory@0 { > - device_type = "memory"; > - reg = <0x0 0x0 0x0 0x40000000>; > - }; > - > - emmc_pwrseq: emmc-pwrseq { > - compatible = "mmc-pwrseq-emmc"; > - reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; > - }; > - > leds { > compatible = "gpio-leds"; > > @@ -45,324 +23,19 @@ > }; > }; > > - tflash_vdd: regulator-tflash_vdd { > - compatible = "regulator-fixed"; > - > - regulator-name = "TFLASH_VDD"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - > - gpio = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - regulator-always-on; > - }; > - > - tf_io: gpio-regulator-tf_io { > - compatible = "regulator-gpio"; > - > - regulator-name = "TF_IO"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <3300000>; > - > - gpios = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>; > - gpios-states = <0>; > - > - states = <3300000 0>, > - <1800000 1>; > - }; > - > - flash_1v8: regulator-flash_1v8 { > - compatible = "regulator-fixed"; > - regulator-name = "FLASH_1V8"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - vin-supply = <&vcc_3v3>; > - regulator-always-on; > - }; > - > - main_12v: regulator-main_12v { > - compatible = "regulator-fixed"; > - regulator-name = "12V"; > - regulator-min-microvolt = <12000000>; > - regulator-max-microvolt = <12000000>; > - regulator-always-on; > - }; > - > - vcc_5v: regulator-vcc_5v { > - compatible = "regulator-fixed"; > - regulator-name = "5V"; > - regulator-min-microvolt = <5000000>; > - regulator-max-microvolt = <5000000>; > - regulator-always-on; > - vin-supply = <&main_12v>; > - }; > - > - vcc_1v8: regulator-vcc_1v8 { > - compatible = "regulator-fixed"; > - regulator-name = "VCC_1V8"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - vin-supply = <&vcc_3v3>; > - regulator-always-on; > - }; > - > - vcc_3v3: regulator-vcc_3v3 { > - compatible = "regulator-fixed"; > - regulator-name = "VCC_3V3"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - vin-supply = <&vddao_3v3>; > - regulator-always-on; > - /* FIXME: actually controlled by VDDCPU_B_EN */ > - }; > - > - vddcpu: regulator-vddcpu { > - /* > - * MP8756GD Regulator. > - */ > - compatible = "pwm-regulator"; > - > - regulator-name = "VDDCPU"; > - regulator-min-microvolt = <721000>; > - regulator-max-microvolt = <1022000>; > - > - vin-supply = <&main_12v>; > - > - pwms = <&pwm_AO_cd 1 1250 0>; > - pwm-dutycycle-range = <100 0>; > - > - regulator-boot-on; > - regulator-always-on; > - }; > - > - hub_5v: regulator-hub_5v { > - compatible = "regulator-fixed"; > - regulator-name = "HUB_5V"; > - regulator-min-microvolt = <5000000>; > - regulator-max-microvolt = <5000000>; > - vin-supply = <&vcc_5v>; > - > - /* Connected to the Hub CHIPENABLE, LOW sets low power state */ > - gpio = <&gpio GPIOH_4 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - }; > - > - usb_pwr_en: regulator-usb_pwr_en { > - compatible = "regulator-fixed"; > - regulator-name = "USB_PWR_EN"; > - regulator-min-microvolt = <5000000>; > - regulator-max-microvolt = <5000000>; > - vin-supply = <&vcc_5v>; > - > - /* Connected to the microUSB port power enable */ > - gpio = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - }; > - > - vddao_1v8: regulator-vddao_1v8 { > - compatible = "regulator-fixed"; > - regulator-name = "VDDAO_1V8"; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - vin-supply = <&vddao_3v3>; > - regulator-always-on; > - }; > - > - vddao_3v3: regulator-vddao_3v3 { > - compatible = "regulator-fixed"; > - regulator-name = "VDDAO_3V3"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - vin-supply = <&main_12v>; > - regulator-always-on; > - }; > - > - hdmi-connector { > - compatible = "hdmi-connector"; > - type = "a"; > - > - port { > - hdmi_connector_in: endpoint { > - remote-endpoint = <&hdmi_tx_tmds_out>; > - }; > - }; > - }; > - > sound { > - compatible = "amlogic,axg-sound-card"; > - model = "SM1-ODROID-C4"; > - audio-aux-devs = <&tdmout_b>; > - audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", > - "TDMOUT_B IN 1", "FRDDR_B OUT 1", > - "TDMOUT_B IN 2", "FRDDR_C OUT 1", > - "TDM_B Playback", "TDMOUT_B OUT"; > - > - assigned-clocks = <&clkc CLKID_MPLL2>, > - <&clkc CLKID_MPLL0>, > - <&clkc CLKID_MPLL1>; > - assigned-clock-parents = <0>, <0>, <0>; > - assigned-clock-rates = <294912000>, > - <270950400>, > - <393216000>; > - status = "okay"; > - > - dai-link-0 { > - sound-dai = <&frddr_a>; > - }; > - > - dai-link-1 { > - sound-dai = <&frddr_b>; > - }; > - > - dai-link-2 { > - sound-dai = <&frddr_c>; > - }; > - > - /* 8ch hdmi interface */ > - dai-link-3 { > - sound-dai = <&tdmif_b>; > - dai-format = "i2s"; > - dai-tdm-slot-tx-mask-0 = <1 1>; > - dai-tdm-slot-tx-mask-1 = <1 1>; > - dai-tdm-slot-tx-mask-2 = <1 1>; > - dai-tdm-slot-tx-mask-3 = <1 1>; > - mclk-fs = <256>; > - > - codec { > - sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; > - }; > - }; > - > - /* hdmi glue */ > - dai-link-4 { > - sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; > - > - codec { > - sound-dai = <&hdmi_tx>; > - }; > - }; > - }; > -}; > - > -&arb { > - status = "okay"; > -}; > - > -&clkc_audio { > - status = "okay"; > -}; > - > -&cpu0 { > - cpu-supply = <&vddcpu>; > - operating-points-v2 = <&cpu_opp_table>; > - clocks = <&clkc CLKID_CPU_CLK>; > - clock-latency = <50000>; > -}; > - > -&cpu1 { > - cpu-supply = <&vddcpu>; > - operating-points-v2 = <&cpu_opp_table>; > - clocks = <&clkc CLKID_CPU1_CLK>; > - clock-latency = <50000>; > -}; > - > -&cpu2 { > - cpu-supply = <&vddcpu>; > - operating-points-v2 = <&cpu_opp_table>; > - clocks = <&clkc CLKID_CPU2_CLK>; > - clock-latency = <50000>; > -}; > - > -&cpu3 { > - cpu-supply = <&vddcpu>; > - operating-points-v2 = <&cpu_opp_table>; > - clocks = <&clkc CLKID_CPU3_CLK>; > - clock-latency = <50000>; > -}; > - > -&ext_mdio { > - external_phy: ethernet-phy@0 { > - /* Realtek RTL8211F (0x001cc916) */ > - reg = <0>; > - max-speed = <1000>; > - > - interrupt-parent = <&gpio_intc>; > - /* MAC_INTR on GPIOZ_14 */ > - interrupts = <26 IRQ_TYPE_LEVEL_LOW>; > + model = "ODROID-C4"; > }; > }; > > -ðmac { > - pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; > - pinctrl-names = "default"; > - status = "okay"; > - phy-mode = "rgmii"; > - phy-handle = <&external_phy>; > - amlogic,tx-delay-ns = <2>; > -}; > - > -&frddr_a { > - status = "okay"; > -}; > - > -&frddr_b { > - status = "okay"; > -}; > - > -&frddr_c { > - status = "okay"; > -}; > - > &gpio { > - gpio-line-names = > - /* GPIOZ */ > - "", "", "", "", "", "", "", "", > - "", "", "", "", "", "", "", "", > - /* GPIOH */ > - "", "", "", "", "", > - "PIN_36", /* GPIOH_5 */ > - "PIN_26", /* GPIOH_6 */ > - "PIN_32", /* GPIOH_7 */ > - "", > - /* BOOT */ > - "", "", "", "", "", "", "", "", > - "", "", "", "", "", "", "", "", > - /* GPIOC */ > - "", "", "", "", "", "", "", "", > - /* GPIOA */ > - "", "", "", "", "", "", "", "", > - "", "", "", "", "", "", > - "PIN_27", /* GPIOA_14 */ > - "PIN_28", /* GPIOA_15 */ > - /* GPIOX */ > - "PIN_16", /* GPIOX_0 */ > - "PIN_18", /* GPIOX_1 */ > - "PIN_22", /* GPIOX_2 */ > - "PIN_11", /* GPIOX_3 */ > - "PIN_13", /* GPIOX_4 */ > - "PIN_7", /* GPIOX_5 */ > - "PIN_33", /* GPIOX_6 */ > - "PIN_15", /* GPIOX_7 */ > - "PIN_19", /* GPIOX_8 */ > - "PIN_21", /* GPIOX_9 */ > - "PIN_24", /* GPIOX_10 */ > - "PIN_23", /* GPIOX_11 */ > - "PIN_8", /* GPIOX_12 */ > - "PIN_10", /* GPIOX_13 */ > - "PIN_29", /* GPIOX_14 */ > - "PIN_31", /* GPIOX_15 */ > - "PIN_12", /* GPIOX_16 */ > - "PIN_3", /* GPIOX_17 */ > - "PIN_5", /* GPIOX_18 */ > - "PIN_35"; /* GPIOX_19 */ > - > /* > * WARNING: The USB Hub on the Odroid-C4 needs a reset signal > * to be turned high in order to be detected by the USB Controller > * This signal should be handled by a USB specific power sequence > * in order to reset the Hub when USB bus is powered down. > */ > - usb-hub { > + hog-0 { > gpio-hog; > gpios = ; > output-high; > @@ -370,121 +43,6 @@ > }; > }; > > -&gpio_ao { > - gpio-line-names = > - /* GPIOAO */ > - "", "", "", "", > - "PIN_47", /* GPIOAO_4 */ > - "", "", > - "PIN_45", /* GPIOAO_7 */ > - "PIN_46", /* GPIOAO_8 */ > - "PIN_44", /* GPIOAO_9 */ > - "PIN_42", /* GPIOAO_10 */ > - "", > - /* GPIOE */ > - "", "", ""; > -}; > - > -&hdmi_tx { > - status = "okay"; > - pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; > - pinctrl-names = "default"; > - hdmi-supply = <&vcc_5v>; > -}; > - > -&hdmi_tx_tmds_port { > - hdmi_tx_tmds_out: endpoint { > - remote-endpoint = <&hdmi_connector_in>; > - }; > -}; > - > &ir { > - status = "okay"; > - pinctrl-0 = <&remote_input_ao_pins>; > - pinctrl-names = "default"; > linux,rc-map-name = "rc-odroid"; > }; > - > -&pwm_AO_cd { > - pinctrl-0 = <&pwm_ao_d_e_pins>; > - pinctrl-names = "default"; > - clocks = <&xtal>; > - clock-names = "clkin1"; > - status = "okay"; > -}; > - > -&saradc { > - status = "okay"; > -}; > - > -/* SD card */ > -&sd_emmc_b { > - status = "okay"; > - pinctrl-0 = <&sdcard_c_pins>; > - pinctrl-1 = <&sdcard_clk_gate_c_pins>; > - pinctrl-names = "default", "clk-gate"; > - > - bus-width = <4>; > - cap-sd-highspeed; > - max-frequency = <200000000>; > - sd-uhs-sdr12; > - sd-uhs-sdr25; > - sd-uhs-sdr50; > - sd-uhs-sdr104; > - disable-wp; > - > - cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; > - vmmc-supply = <&tflash_vdd>; > - vqmmc-supply = <&tf_io>; > -}; > - > -/* eMMC */ > -&sd_emmc_c { > - status = "okay"; > - pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; > - pinctrl-1 = <&emmc_clk_gate_pins>; > - pinctrl-names = "default", "clk-gate"; > - > - bus-width = <8>; > - cap-mmc-highspeed; > - mmc-ddr-1_8v; > - mmc-hs200-1_8v; > - max-frequency = <200000000>; > - disable-wp; > - > - mmc-pwrseq = <&emmc_pwrseq>; > - vmmc-supply = <&vcc_3v3>; > - vqmmc-supply = <&flash_1v8>; > -}; > - > -&tdmif_b { > - status = "okay"; > -}; > - > -&tdmout_b { > - status = "okay"; > -}; > - > -&tohdmitx { > - status = "okay"; > -}; > - > -&uart_AO { > - status = "okay"; > - pinctrl-0 = <&uart_ao_a_pins>; > - pinctrl-names = "default"; > -}; > - > -&usb { > - status = "okay"; > - vbus-supply = <&usb_pwr_en>; > -}; > - > -&usb2_phy0 { > - phy-supply = <&vcc_5v>; > -}; > - > -&usb2_phy1 { > - /* Enable the hub which is connected to this port */ > - phy-supply = <&hub_5v>; > -}; > diff --git a/arch/arm/dts/meson-sm1-odroid-hc4.dts b/arch/arm/dts/meson-sm1-odroid-hc4.dts > new file mode 100644 > index 0000000000..f3f953225b > --- /dev/null > +++ b/arch/arm/dts/meson-sm1-odroid-hc4.dts > @@ -0,0 +1,140 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2020 Dongjin Kim > + */ > + > +/dts-v1/; > + > +#include "meson-sm1-odroid.dtsi" > + > +/ { > + compatible = "hardkernel,odroid-hc4", "amlogic,sm1"; > + model = "Hardkernel ODROID-HC4"; > + > + aliases { > + rtc0 = &rtc; > + rtc1 = &vrtc; > + }; > + > + fan0: pwm-fan { > + compatible = "pwm-fan"; > + #cooling-cells = <2>; > + cooling-min-state = <0>; > + cooling-max-state = <3>; > + cooling-levels = <0 120 170 220>; > + pwms = <&pwm_cd 1 40000 0>; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + led-blue { > + color = ; > + function = LED_FUNCTION_STATUS; > + gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "heartbeat"; > + panic-indicator; > + }; > + > + led-red { > + color = ; > + function = LED_FUNCTION_POWER; > + gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>; > + default-state = "on"; > + }; > + }; > + > + /* Powers the SATA Disk 0 regulator, which is enabled when a disk load is detected */ > + p12v_0: regulator-p12v_0 { > + compatible = "regulator-fixed"; > + regulator-name = "P12V_0"; > + regulator-min-microvolt = <12000000>; > + regulator-max-microvolt = <12000000>; > + vin-supply = <&main_12v>; > + > + gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; > + enable-active-high; > + regulator-always-on; > + }; > + > + /* Powers the SATA Disk 1 regulator, which is enabled when a disk load is detected */ > + p12v_1: regulator-p12v_1 { > + compatible = "regulator-fixed"; > + regulator-name = "P12V_1"; > + regulator-min-microvolt = <12000000>; > + regulator-max-microvolt = <12000000>; > + vin-supply = <&main_12v>; > + > + gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; > + enable-active-high; > + regulator-always-on; > + }; > + > + sound { > + model = "ODROID-HC4"; > + }; > +}; > + > +&cpu_thermal { > + cooling-maps { > + map { > + trip = <&cpu_passive>; > + cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > + }; > + }; > +}; > + > +&ir { > + linux,rc-map-name = "rc-odroid"; > +}; > + > +&i2c2 { > + status = "okay"; > + pinctrl-0 = <&i2c2_sda_x_pins>, <&i2c2_sck_x_pins>; > + pinctrl-names = "default"; > + > + rtc: rtc@51 { > + status = "okay"; > + compatible = "nxp,pcf8563"; > + reg = <0x51>; > + wakeup-source; > + }; > +}; > + > +&pcie { > + status = "okay"; > + reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; > +}; > + > +&pwm_cd { > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pwm_d_x6_pins>; > +}; > + > +&sd_emmc_c { > + status = "disabled"; > +}; > + > +&spifc { > + status = "okay"; > + pinctrl-0 = <&nor_pins>; > + pinctrl-names = "default"; > + > + spi-flash@0 { > + #address-cells = <1>; > + #size-cells = <1>; > + compatible = "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <104000000>; > + }; > +}; > + > +&usb { > + phys = <&usb2_phy1>; > + phy-names = "usb2-phy1"; > +}; > + > +&usb2_phy0 { > + status = "disabled"; > +}; > diff --git a/arch/arm/dts/meson-sm1-odroid.dtsi b/arch/arm/dts/meson-sm1-odroid.dtsi > new file mode 100644 > index 0000000000..fd0ad85c16 > --- /dev/null > +++ b/arch/arm/dts/meson-sm1-odroid.dtsi > @@ -0,0 +1,449 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2020 Dongjin Kim > + */ > + > +#include "meson-sm1.dtsi" > +#include > +#include > +#include > + > +/ { > + aliases { > + serial0 = &uart_AO; > + ethernet0 = ðmac; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x0 0x0 0x40000000>; > + }; > + > + emmc_pwrseq: emmc-pwrseq { > + compatible = "mmc-pwrseq-emmc"; > + reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; > + }; > + > + tflash_vdd: regulator-tflash_vdd { > + compatible = "regulator-fixed"; > + > + regulator-name = "TFLASH_VDD"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + > + gpio = <&gpio_ao GPIOAO_3 GPIO_OPEN_DRAIN>; > + enable-active-high; > + regulator-always-on; > + }; > + > + tf_io: gpio-regulator-tf_io { > + compatible = "regulator-gpio"; > + > + regulator-name = "TF_IO"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&vcc_5v>; > + > + enable-gpio = <&gpio GPIOE_2 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-always-on; > + > + gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_SOURCE>; > + gpios-states = <0>; > + > + states = <3300000 0>, > + <1800000 1>; > + }; > + > + flash_1v8: regulator-flash_1v8 { > + compatible = "regulator-fixed"; > + regulator-name = "FLASH_1V8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + vin-supply = <&vcc_3v3>; > + regulator-always-on; > + }; > + > + main_12v: regulator-main_12v { > + compatible = "regulator-fixed"; > + regulator-name = "12V"; > + regulator-min-microvolt = <12000000>; > + regulator-max-microvolt = <12000000>; > + regulator-always-on; > + }; > + > + vcc_5v: regulator-vcc_5v { > + compatible = "regulator-fixed"; > + regulator-name = "5V"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + regulator-always-on; > + vin-supply = <&main_12v>; > + gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; > + enable-active-high; > + }; > + > + vcc_1v8: regulator-vcc_1v8 { > + compatible = "regulator-fixed"; > + regulator-name = "VCC_1V8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + vin-supply = <&vcc_3v3>; > + regulator-always-on; > + }; > + > + vcc_3v3: regulator-vcc_3v3 { > + compatible = "regulator-fixed"; > + regulator-name = "VCC_3V3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&vddao_3v3>; > + regulator-always-on; > + /* FIXME: actually controlled by VDDCPU_B_EN */ > + }; > + > + vddcpu: regulator-vddcpu { > + /* > + * MP8756GD Regulator. > + */ > + compatible = "pwm-regulator"; > + > + regulator-name = "VDDCPU"; > + regulator-min-microvolt = <721000>; > + regulator-max-microvolt = <1022000>; > + > + vin-supply = <&main_12v>; > + > + pwms = <&pwm_AO_cd 1 1250 0>; > + pwm-dutycycle-range = <100 0>; > + > + regulator-boot-on; > + regulator-always-on; > + }; > + > + usb_pwr_en: regulator-usb_pwr_en { > + compatible = "regulator-fixed"; > + regulator-name = "USB_PWR_EN"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + vin-supply = <&vcc_5v>; > + > + /* Connected to the microUSB port power enable */ > + gpio = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + vddao_1v8: regulator-vddao_1v8 { > + compatible = "regulator-fixed"; > + regulator-name = "VDDAO_1V8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + vin-supply = <&vddao_3v3>; > + regulator-always-on; > + }; > + > + vddao_3v3: regulator-vddao_3v3 { > + compatible = "regulator-fixed"; > + regulator-name = "VDDAO_3V3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + vin-supply = <&main_12v>; > + regulator-always-on; > + }; > + > + hdmi-connector { > + compatible = "hdmi-connector"; > + type = "a"; > + > + port { > + hdmi_connector_in: endpoint { > + remote-endpoint = <&hdmi_tx_tmds_out>; > + }; > + }; > + }; > + > + sound { > + compatible = "amlogic,axg-sound-card"; > + audio-aux-devs = <&tdmout_b>; > + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", > + "TDMOUT_B IN 1", "FRDDR_B OUT 1", > + "TDMOUT_B IN 2", "FRDDR_C OUT 1", > + "TDM_B Playback", "TDMOUT_B OUT"; > + > + assigned-clocks = <&clkc CLKID_MPLL2>, > + <&clkc CLKID_MPLL0>, > + <&clkc CLKID_MPLL1>; > + assigned-clock-parents = <0>, <0>, <0>; > + assigned-clock-rates = <294912000>, > + <270950400>, > + <393216000>; > + status = "okay"; > + > + dai-link-0 { > + sound-dai = <&frddr_a>; > + }; > + > + dai-link-1 { > + sound-dai = <&frddr_b>; > + }; > + > + dai-link-2 { > + sound-dai = <&frddr_c>; > + }; > + > + /* 8ch hdmi interface */ > + dai-link-3 { > + sound-dai = <&tdmif_b>; > + dai-format = "i2s"; > + dai-tdm-slot-tx-mask-0 = <1 1>; > + dai-tdm-slot-tx-mask-1 = <1 1>; > + dai-tdm-slot-tx-mask-2 = <1 1>; > + dai-tdm-slot-tx-mask-3 = <1 1>; > + mclk-fs = <256>; > + > + codec { > + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; > + }; > + }; > + > + /* hdmi glue */ > + dai-link-4 { > + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; > + > + codec { > + sound-dai = <&hdmi_tx>; > + }; > + }; > + }; > +}; > + > +&arb { > + status = "okay"; > +}; > + > +&clkc_audio { > + status = "okay"; > +}; > + > +&cpu0 { > + cpu-supply = <&vddcpu>; > + operating-points-v2 = <&cpu_opp_table>; > + clocks = <&clkc CLKID_CPU_CLK>; > + clock-latency = <50000>; > +}; > + > +&cpu1 { > + cpu-supply = <&vddcpu>; > + operating-points-v2 = <&cpu_opp_table>; > + clocks = <&clkc CLKID_CPU1_CLK>; > + clock-latency = <50000>; > +}; > + > +&cpu2 { > + cpu-supply = <&vddcpu>; > + operating-points-v2 = <&cpu_opp_table>; > + clocks = <&clkc CLKID_CPU2_CLK>; > + clock-latency = <50000>; > +}; > + > +&cpu3 { > + cpu-supply = <&vddcpu>; > + operating-points-v2 = <&cpu_opp_table>; > + clocks = <&clkc CLKID_CPU3_CLK>; > + clock-latency = <50000>; > +}; > + > +&ext_mdio { > + external_phy: ethernet-phy@0 { > + /* Realtek RTL8211F (0x001cc916) */ > + reg = <0>; > + max-speed = <1000>; > + > + interrupt-parent = <&gpio_intc>; > + /* MAC_INTR on GPIOZ_14 */ > + interrupts = <26 IRQ_TYPE_LEVEL_LOW>; > + }; > +}; > + > +ðmac { > + pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; > + pinctrl-names = "default"; > + status = "okay"; > + phy-mode = "rgmii"; > + phy-handle = <&external_phy>; > + amlogic,tx-delay-ns = <2>; > +}; > + > +&frddr_a { > + status = "okay"; > +}; > + > +&frddr_b { > + status = "okay"; > +}; > + > +&frddr_c { > + status = "okay"; > +}; > + > +&gpio { > + gpio-line-names = > + /* GPIOZ */ > + "", "", "", "", "", "", "", "", > + "", "", "", "", "", "", "", "", > + /* GPIOH */ > + "", "", "", "", "", > + "PIN_36", /* GPIOH_5 */ > + "PIN_26", /* GPIOH_6 */ > + "PIN_32", /* GPIOH_7 */ > + "", > + /* BOOT */ > + "", "", "", "", "", "", "", "", > + "", "", "", "", "", "", "", "", > + /* GPIOC */ > + "", "", "", "", "", "", "", "", > + /* GPIOA */ > + "", "", "", "", "", "", "", "", > + "", "", "", "", "", "", > + "PIN_27", /* GPIOA_14 */ > + "PIN_28", /* GPIOA_15 */ > + /* GPIOX */ > + "PIN_16", /* GPIOX_0 */ > + "PIN_18", /* GPIOX_1 */ > + "PIN_22", /* GPIOX_2 */ > + "PIN_11", /* GPIOX_3 */ > + "PIN_13", /* GPIOX_4 */ > + "PIN_7", /* GPIOX_5 */ > + "PIN_33", /* GPIOX_6 */ > + "PIN_15", /* GPIOX_7 */ > + "PIN_19", /* GPIOX_8 */ > + "PIN_21", /* GPIOX_9 */ > + "PIN_24", /* GPIOX_10 */ > + "PIN_23", /* GPIOX_11 */ > + "PIN_8", /* GPIOX_12 */ > + "PIN_10", /* GPIOX_13 */ > + "PIN_29", /* GPIOX_14 */ > + "PIN_31", /* GPIOX_15 */ > + "PIN_12", /* GPIOX_16 */ > + "PIN_3", /* GPIOX_17 */ > + "PIN_5", /* GPIOX_18 */ > + "PIN_35"; /* GPIOX_19 */ > +}; > + > +&gpio_ao { > + gpio-line-names = > + /* GPIOAO */ > + "", "", "", "", > + "PIN_47", /* GPIOAO_4 */ > + "", "", > + "PIN_45", /* GPIOAO_7 */ > + "PIN_46", /* GPIOAO_8 */ > + "PIN_44", /* GPIOAO_9 */ > + "PIN_42", /* GPIOAO_10 */ > + "", > + /* GPIOE */ > + "", "", ""; > +}; > + > +&hdmi_tx { > + status = "okay"; > + pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; > + pinctrl-names = "default"; > + hdmi-supply = <&vcc_5v>; > +}; > + > +&hdmi_tx_tmds_port { > + hdmi_tx_tmds_out: endpoint { > + remote-endpoint = <&hdmi_connector_in>; > + }; > +}; > + > +&ir { > + status = "okay"; > + pinctrl-0 = <&remote_input_ao_pins>; > + pinctrl-names = "default"; > +}; > + > +&pwm_AO_cd { > + pinctrl-0 = <&pwm_ao_d_e_pins>; > + pinctrl-names = "default"; > + clocks = <&xtal>; > + clock-names = "clkin1"; > + status = "okay"; > +}; > + > +&saradc { > + status = "okay"; > +}; > + > +/* SD card */ > +&sd_emmc_b { > + status = "okay"; > + pinctrl-0 = <&sdcard_c_pins>; > + pinctrl-1 = <&sdcard_clk_gate_c_pins>; > + pinctrl-names = "default", "clk-gate"; > + > + bus-width = <4>; > + cap-sd-highspeed; > + max-frequency = <200000000>; > + sd-uhs-sdr12; > + sd-uhs-sdr25; > + sd-uhs-sdr50; > + sd-uhs-sdr104; > + disable-wp; > + > + cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; > + vmmc-supply = <&tflash_vdd>; > + vqmmc-supply = <&tf_io>; > +}; > + > +/* eMMC */ > +&sd_emmc_c { > + status = "okay"; > + pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; > + pinctrl-1 = <&emmc_clk_gate_pins>; > + pinctrl-names = "default", "clk-gate"; > + > + bus-width = <8>; > + cap-mmc-highspeed; > + mmc-ddr-1_8v; > + mmc-hs200-1_8v; > + max-frequency = <200000000>; > + disable-wp; > + > + mmc-pwrseq = <&emmc_pwrseq>; > + vmmc-supply = <&vcc_3v3>; > + vqmmc-supply = <&flash_1v8>; > +}; > + > +&tdmif_b { > + status = "okay"; > +}; > + > +&tdmout_b { > + status = "okay"; > +}; > + > +&tohdmitx { > + status = "okay"; > +}; > + > +&uart_AO { > + status = "okay"; > + pinctrl-0 = <&uart_ao_a_pins>; > + pinctrl-names = "default"; > +}; > + > +&usb { > + status = "okay"; > + vbus-supply = <&usb_pwr_en>; > +}; > + > +&usb2_phy0 { > + phy-supply = <&vcc_5v>; > +}; > + > diff --git a/arch/arm/dts/meson-sm1-sei610.dts b/arch/arm/dts/meson-sm1-sei610.dts > index 5ab139a34c..2194a77897 100644 > --- a/arch/arm/dts/meson-sm1-sei610.dts > +++ b/arch/arm/dts/meson-sm1-sei610.dts > @@ -101,20 +101,20 @@ > }; > }; > > - leds { > + led-controller-1 { > compatible = "gpio-leds"; > > - led-bluetooth { > + led-1 { > label = "sei610:blue:bt"; > gpios = <&gpio GPIOC_7 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; > default-state = "off"; > }; > }; > > - pwmleds { > + led-controller-2 { > compatible = "pwm-leds"; > > - power { > + led-2 { > label = "sei610:red:power"; > pwms = <&pwm_AO_ab 0 30518 0>; > max-brightness = <255>; > @@ -220,7 +220,7 @@ > > sound { > compatible = "amlogic,axg-sound-card"; > - model = "SM1-SEI610"; > + model = "SEI610"; > audio-aux-devs = <&tdmout_a>, <&tdmout_b>, > <&tdmin_a>, <&tdmin_b>; > audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0", > diff --git a/arch/arm/dts/meson-sm1.dtsi b/arch/arm/dts/meson-sm1.dtsi > index 71317f5aad..3d8b1f4f20 100644 > --- a/arch/arm/dts/meson-sm1.dtsi > +++ b/arch/arm/dts/meson-sm1.dtsi > @@ -130,7 +130,7 @@ > opp-microvolt = <790000>; > }; > > - opp-1512000000 { > + opp-1500000000 { > opp-hz = /bits/ 64 <1500000000>; > opp-microvolt = <800000>; > }; > @@ -401,6 +401,16 @@ > status = "disabled"; > }; > > + toacodec: audio-controller@740 { > + compatible = "amlogic,sm1-toacodec", > + "amlogic,g12a-toacodec"; > + reg = <0x0 0x740 0x0 0x4>; > + #sound-dai-cells = <1>; > + sound-name-prefix = "TOACODEC"; > + resets = <&clkc_audio AUD_RESET_TOACODEC>; > + status = "disabled"; > + }; > + > tohdmitx: audio-controller@744 { > compatible = "amlogic,sm1-tohdmitx", > "amlogic,g12a-tohdmitx"; > diff --git a/include/dt-bindings/clock/axg-clkc.h b/include/dt-bindings/clock/axg-clkc.h > index fd1f938c38..93752ea107 100644 > --- a/include/dt-bindings/clock/axg-clkc.h > +++ b/include/dt-bindings/clock/axg-clkc.h > @@ -70,7 +70,31 @@ > #define CLKID_HIFI_PLL 69 > #define CLKID_PCIE_CML_EN0 79 > #define CLKID_PCIE_CML_EN1 80 > -#define CLKID_MIPI_ENABLE 81 > #define CLKID_GEN_CLK 84 > +#define CLKID_VPU_0_SEL 92 > +#define CLKID_VPU_0 93 > +#define CLKID_VPU_1_SEL 95 > +#define CLKID_VPU_1 96 > +#define CLKID_VPU 97 > +#define CLKID_VAPB_0_SEL 99 > +#define CLKID_VAPB_0 100 > +#define CLKID_VAPB_1_SEL 102 > +#define CLKID_VAPB_1 103 > +#define CLKID_VAPB_SEL 104 > +#define CLKID_VAPB 105 > +#define CLKID_VCLK 106 > +#define CLKID_VCLK2 107 > +#define CLKID_VCLK_DIV1 122 > +#define CLKID_VCLK_DIV2 123 > +#define CLKID_VCLK_DIV4 124 > +#define CLKID_VCLK_DIV6 125 > +#define CLKID_VCLK_DIV12 126 > +#define CLKID_VCLK2_DIV1 127 > +#define CLKID_VCLK2_DIV2 128 > +#define CLKID_VCLK2_DIV4 129 > +#define CLKID_VCLK2_DIV6 130 > +#define CLKID_VCLK2_DIV12 131 > +#define CLKID_CTS_ENCL 133 > +#define CLKID_VDIN_MEAS 136 > > #endif /* __AXG_CLKC_H */ > diff --git a/include/dt-bindings/clock/g12a-clkc.h b/include/dt-bindings/clock/g12a-clkc.h > index 40d49940d8..a93b58c5e1 100644 > --- a/include/dt-bindings/clock/g12a-clkc.h > +++ b/include/dt-bindings/clock/g12a-clkc.h > @@ -147,5 +147,7 @@ > #define CLKID_SPICC1_SCLK 261 > #define CLKID_NNA_AXI_CLK 264 > #define CLKID_NNA_CORE_CLK 267 > +#define CLKID_MIPI_DSI_PXCLK_SEL 269 > +#define CLKID_MIPI_DSI_PXCLK 270 > > #endif /* __G12A_CLKC_H */ > Applied to u-boot-amlogic-next Neil