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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A6D09C4828D for ; Tue, 6 Feb 2024 07:03:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=WV+huhcb8XlF1AyTBLtFkwe7id66HfrbdoX7t62mrbE=; b=fNREuZspB4LLp9 fGgrvJvtOIFcojqaZ0MXIqO3IZ/ymzY+g9xbZkYnaYhw2avmOC++dDBkM+Cu5ghzB5tBma0Xzu3u/ hRRpZiHrXbK5PwuCip2UhV6SX1mADtwtfin9aBwA1bgOdSLtLzUswgd8tcxhXGZ9RiEzda6tcuAzx i5HFj4OhYuGge69kbhZNE9YbcU4gCXV/Ffv9Q2nbnPqc43C5ZggVmSEcyLthPcRpx8s8SgEhXwmhJ 1O829we4gXT2pDJUToRyp/1e80qn4DlL9qwAUlO61tzsz83bs4M80BqYhW3hbHARMIT9pEnICByEJ ocy6HcsEEIREqIgBwfmA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rXFU0-00000006EdD-3B17; Tue, 06 Feb 2024 07:03:04 +0000 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rXFTx-00000006Ebu-3mKY for linux-arm-kernel@lists.infradead.org; Tue, 06 Feb 2024 07:03:03 +0000 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1d7858a469aso38733975ad.2 for ; Mon, 05 Feb 2024 23:02:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707202969; x=1707807769; darn=lists.infradead.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=vayU1hILRcb1eUwFrsJvE8/gSAPnkBJkvUMLq6o6GsA=; b=Kqf4Pne9JDt49H9eqTk5ZzNPnohtvvd6J3duxWwPMYUgshaZjtdWTuKQ58a37eI+zn uvgy6+L6jUpz8VwVyo3ZRj23WWedPrthUu1ju15PV5YJYlPq3y46Ox0l+rKmISrDgj33 cbDg0IQXAFSARxEko6xm0iMCUVRYCS7iMRYsf+W4dRsMbFDBWua7rF+IvOId7BJ94eK4 0BgcM6BTr1+xmZIrEp0UEAkYdyJCp/CdBDrAGzO9D/habsWWye/gUYOgsYrhn8iW4ABW ct3HXcsX6vNfuUJeNsjJiWdxcChFXK5oG/0niJnap5U9UeRb1OzCg05qK6XJG+Usr7Rd GNgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707202969; x=1707807769; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=vayU1hILRcb1eUwFrsJvE8/gSAPnkBJkvUMLq6o6GsA=; b=ND1lBqG0E1DiCseslpyPxBkz2q1RSFn6o8oILlsC9R1vwiNEfXbS5ApFBRNMOlzki5 qDXv8flAtIc5e2Nm0dXrQwAhnEibjlklKEiHrMmQ0tHCEDnNpSomYyoMMEPw5cjOfomu +O2wk8fY2gGPeCvoWww+i0hfFNPLL0CQUWH57CLMRWXf7vI9LBZSKylnt0ChobS3I25k U56+AWF+KLDTbwxrf43eHSsSt0RDAUzbjPSkXIN73Vims4yrh0R5haxiAwU/jmPCqqZW gBGyCrafVoh7RzXco9t+UwwNbhscgnFVZ4tMy+BwUDQyMHn3mvof64KHZSd2mu+08usg +KEQ== X-Gm-Message-State: AOJu0YyF5voXyw9c4ugwywOyj1XzDF87X+yvU+RAyI7WbocUt90aVvTU L3r7odfqUkfpQJet6kc830Z2aVKYlRqMXIbqlEhBFittB7t+RhVg X-Google-Smtp-Source: AGHT+IFP+BKEsAtEU3i+y0ZkUB0ljFuu1/6DiPNVLIGiyFqSHrD7JGOLSpeWPHxbrOgfieEfRTanXQ== X-Received: by 2002:a17:902:cec8:b0:1d7:88de:cff1 with SMTP id d8-20020a170902cec800b001d788decff1mr868787plg.53.1707202968694; Mon, 05 Feb 2024 23:02:48 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCVpp0M5Kwn9Z+OpZBU3HxxP9oV6zweJs6WhUvseH5GhObCAfTOC4tA67KdrljTW9k2RHOWnfH/l8c5QZkArrwEHhT1TMCkbHTKivHI4UniHZlSCwr4J4vz9lelgdxLQc7CjlmE+liK4ugbfhPYu6dI3kWx89tF4HMK2Os/igwEc50EGjhswStS8vmUUj7mN36cjRkQKsPigaBXiJPtyWQA8csZhtl6dQMnaaVCKNMJtZs1xy1FbCyDSePBp36+19aIgX7VxjyWJCmWFdlPQcZXTOkn+M81/sO7XVedPvja5X3Q1Ay+sUqao8BEX50PVWJGZRCxmGXRg3cqvGNganyFZmQ== Received: from dragon (144.34.186.27.16clouds.com. [144.34.186.27]) by smtp.gmail.com with ESMTPSA id iy15-20020a170903130f00b001d92db44c9bsm1082394plb.17.2024.02.05.23.02.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Feb 2024 23:02:47 -0800 (PST) Date: Tue, 6 Feb 2024 15:02:35 +0800 From: Shawn Guo To: Marek Vasut Cc: linux-arm-kernel@lists.infradead.org, Conor Dooley , Fabio Estevam , Krzysztof Kozlowski , NXP Linux Team , Pengutronix Kernel Team , Rob Herring , Sascha Hauer , Shawn Guo , devicetree@vger.kernel.org Subject: Re: [PATCH] arm64: dts: imx8mp: Enable SAI audio on Data Modul i.MX8M Plus eDM SBC Message-ID: References: <20240122144359.169899-1-marex@denx.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240122144359.169899-1-marex@denx.de> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240205_230301_965194_A43AAF3B X-CRM114-Status: GOOD ( 26.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, Jan 22, 2024 at 03:43:51PM +0100, Marek Vasut wrote: > Add SAI I2S and audio bindings to Data Modul i.MX8M Plus eDM SBC. > > The SGTL5000 is attached to SAI3, however the SGTL5000 codec MCLK > must be supplied even if the SAI3 is not in use and is controlled > separately by the codec. The MCLK is also used to drive the codec > I2C block, so without MCLK, I2C access to the codec would not be > possible. > > To provide such flexible MCLK control, use PWM4 with period 1 and > duty cycle 50% as 12 MHz clock source, as there is no direct way > to route MX8MP CCM clock to the MCLK pin. Use codec as bitclock > and frame clock master, so that the SGTL5000 PLL can be used to > generate derived clock. > > Signed-off-by: Marek Vasut > --- > Cc: Conor Dooley > Cc: Fabio Estevam > Cc: Krzysztof Kozlowski > Cc: NXP Linux Team > Cc: Pengutronix Kernel Team > Cc: Rob Herring > Cc: Sascha Hauer > Cc: Shawn Guo > Cc: devicetree@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > --- > .../freescale/imx8mp-data-modul-edm-sbc.dts | 64 ++++++++++++++++++- > 1 file changed, 63 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-data-modul-edm-sbc.dts b/arch/arm64/boot/dts/freescale/imx8mp-data-modul-edm-sbc.dts > index 5828c9d7821de..433b2c9468f89 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mp-data-modul-edm-sbc.dts > +++ b/arch/arm64/boot/dts/freescale/imx8mp-data-modul-edm-sbc.dts > @@ -45,6 +45,19 @@ clk_xtal25: clock-xtal25 { > clock-frequency = <25000000>; > }; > > + clk_pwm4: clock-pwm4 { > + compatible = "pwm-clock"; > + #clock-cells = <0>; > + clock-frequency = <12000000>; > + clock-output-names = "codec-pwm4"; > + /* > + * 1 / 83 ns ~= 12 MHz , but since the PWM input clock is 24 MHz > + * and the calculated PWM period is 1 and duty cycle is 50%, the > + * result is exactly 12 MHz, which is fine for SGTL5000 MCLK. > + */ > + pwms = <&pwm4 0 83 0>; > + }; > + > panel: panel { > /* Compatible string is filled in by panel board DT Overlay. */ > backlight = <&backlight>; > @@ -82,6 +95,24 @@ reg_usdhc2_vmmc: regulator-usdhc2-vmmc { > vin-supply = <&buck4>; > }; > > + sound { > + compatible = "simple-audio-card"; > + simple-audio-card,name = "SGTL5000-Card"; > + simple-audio-card,format = "i2s"; > + simple-audio-card,bitclock-master = <&codec_dai>; > + simple-audio-card,frame-master = <&codec_dai>; > + simple-audio-card,widgets = "Headphone", "Headphone Jack"; > + simple-audio-card,routing = "Headphone Jack", "HP_OUT"; > + > + cpu_dai: simple-audio-card,cpu { > + sound-dai = <&sai3>; > + }; > + > + codec_dai: simple-audio-card,codec { > + sound-dai = <&sgtl5000>; > + }; > + }; > + > watchdog { /* TPS3813 */ > compatible = "linux,wdt-gpio"; > pinctrl-names = "default"; > @@ -288,6 +319,15 @@ &i2c1 { > sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > status = "okay"; > > + sgtl5000: codec@a { audio-codec > + #sound-dai-cells = <0>; > + clocks = <&clk_pwm4>; > + compatible = "fsl,sgtl5000"; > + reg = <0x0a>; Could you follow the "Order of Properties in Device Node" recommendation from Documentation/devicetree/bindings/dts-coding-style.rst? Shawn > + VDDA-supply = <&buck4>; > + VDDIO-supply = <&buck4>; > + }; > + > usb-hub@2c { > compatible = "microchip,usb2514bi"; > reg = <0x2c>; > @@ -436,6 +476,23 @@ &pwm1 { > status = "disabled"; > }; > > +&pwm4 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm4>; > + status = "okay"; > +}; > + > +&sai3 { > + #clock-cells = <0>; > + #sound-dai-cells = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_sai3>; > + assigned-clocks = <&clk IMX8MP_CLK_SAI3>; > + assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; > + assigned-clock-rates = <12288000>; > + status = "okay"; > +}; > + > /* SD slot */ > &usdhc2 { > pinctrl-names = "default", "state_100mhz", "state_200mhz"; > @@ -785,6 +842,12 @@ MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x40000090 > >; > }; > > + pinctrl_pwm4: pwm4-grp { > + fsl,pins = < > + MX8MP_IOMUXC_SAI3_MCLK__PWM4_OUT 0xd6 > + >; > + }; > + > pinctrl_rtc: rtc-grp { > fsl,pins = < > /* RTC_IRQ# */ > @@ -816,7 +879,6 @@ pinctrl_sai3: sai3-grp { > MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC 0xd6 > MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00 0xd6 > MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK 0xd6 > - MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK 0xd6 > MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00 0xd6 > >; > }; > -- > 2.43.0 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel