Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1645068ybz; Thu, 30 Apr 2020 03:02:40 -0700 (PDT) X-Google-Smtp-Source: APiQypJX8RmD5LpQCgdMLQAu5mhVnlPBqeoCuhFhQAv/7WgDoxhw2+913TZBPW8WAeidir1CN5ZJ X-Received: by 2002:a17:906:3d69:: with SMTP id r9mr1999976ejf.20.1588240960218; Thu, 30 Apr 2020 03:02:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588240960; cv=none; d=google.com; s=arc-20160816; b=fJifH1JIKCSG19CpoWnieVP1XJKefZNyrheNSgYJSxy+OChJrtpaLNDlrh85YZcbZF wJ6NkSHC0FMHAkSwmNia8gbM4arnV76Edliz8b3As0itQjLIespIeij03NNz8X+vxii+ jIR1//sfmEgahHIinQpU2hsG9NNnXlHNjQeUJz64DCW5wutv8Fy3vHgmQY2/n9YtENuR txR4B4SeT0hgv5i1QjJnP09d4lsD4T7U4rJdB6cB34226JugNiVd/CUmBvd59UlGd82Y ZpHgg5f0NO2CgURBi2XvFEIb3GINKGnUxw6CnICSbc5wpoMYzKT25pwzkrqm4cD6/xZp IqNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=KI2AtPyJLvrsFvH8h/qo1asrr1uW5LJxQpJkGaRznVE=; b=OvylVIzUwOyPKJwykhkrgbWRjG7c6ItXqblYmy+xL40ekk5QcpQlU7gUXN0VCzhI6k 3heZBi3qZRYlKw4Ij9UtBlJZaP6q12tguMstrIjmQ3XmDKtQvtddeX3SVEr3hvuMmEKI n523r8vFLpyzyJDoC9IFCuzMuzjZv+PeNhjX30KNBarftf+yr3WvvifyPOA6BMFFKnHx WJRPWhxelCjn/bOt2aIW2vWU93TFGsRx/gc3h7bYJJBDA9mfu4m9c/O5YONxQcptVHUk 4+X8DY1oSCEaF79tO26qJcUMmJNJoB8Ssq2p5WkcVvOfvjo6qNfN+kvmIpTda0k7L96Q kMFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@st.com header.s=STMicroelectronics header.b=GaOlqtsE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=st.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dk4si5805704ejb.529.2020.04.30.03.02.16; Thu, 30 Apr 2020 03:02:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@st.com header.s=STMicroelectronics header.b=GaOlqtsE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=st.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726626AbgD3J6T (ORCPT + 99 others); Thu, 30 Apr 2020 05:58:19 -0400 Received: from mx08-00178001.pphosted.com ([91.207.212.93]:60152 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726404AbgD3J6T (ORCPT ); Thu, 30 Apr 2020 05:58:19 -0400 Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 03U9qeKs000841; Thu, 30 Apr 2020 11:57:54 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=subject : to : cc : references : from : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=STMicroelectronics; bh=KI2AtPyJLvrsFvH8h/qo1asrr1uW5LJxQpJkGaRznVE=; b=GaOlqtsELyMr/+7rGu414BfW6XhtkUr2Y1ImtOwm0WNi5hRk4ERUs61pdsp8bf2FPeyU yOnOKmvq/63F8lZLFFZZNr1XJy1MdA4rwwGZT3Q9q/0te3ukYFBKp57EXupvhe4bLSvf 7fSFgXrWMfZa23dUJ5bMPDlq5JuAa7W97PV0iIsh2m1YzQiZSTqM+3505GuoiGUlw7ly yiNRlED4+rXqSJwz57Ea4YSu4PBhHbP68u3SDnhRtMo4RpERd3dyhRh9zaworeJEXPSN XoSO0mpF4FmiYasNUf71JbUB1nGekHvc4XbnftoiNdFLkauiU5heHekMuYflwJ8SwcAw oQ== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 30mhjx3grd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 30 Apr 2020 11:57:54 +0200 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 28DE410002A; Thu, 30 Apr 2020 11:57:54 +0200 (CEST) Received: from Webmail-eu.st.com (sfhdag3node2.st.com [10.75.127.8]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 126CA2B3BB8; Thu, 30 Apr 2020 11:57:54 +0200 (CEST) Received: from lmecxl0912.tpe.st.com (10.75.127.44) by SFHDAG3NODE2.st.com (10.75.127.8) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Thu, 30 Apr 2020 11:57:47 +0200 Subject: Re: [PATCH 1/4] add dts node for drm panel driver ili9341 add dts i2c3 for stmpe touch add dts spi5 for gyro & ili9341 To: CC: , , , , , , , , , , References: <1588239802-11442-1-git-send-email-dillon.minfei@gmail.com> From: Alexandre Torgue Message-ID: <33f928e7-3fde-99a2-b84d-d74a2d3f1186@st.com> Date: Thu, 30 Apr 2020 11:57:39 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <1588239802-11442-1-git-send-email-dillon.minfei@gmail.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.75.127.44] X-ClientProxiedBy: SFHDAG8NODE2.st.com (10.75.127.23) To SFHDAG3NODE2.st.com (10.75.127.8) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.676 definitions=2020-04-30_05:2020-04-30,2020-04-30 signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi On 4/30/20 11:43 AM, dillon.minfei@gmail.com wrote: > From: dillon min > > Signed-off-by: dillon min Commit title should be ARM: dts: stm32: bla bla on stm32f429 and please a commit message. > --- > .../bindings/display/panel/ilitek,ili9341.txt | 42 +++++++++++ > arch/arm/boot/dts/stm32f4-pinctrl.dtsi | 79 +++++++++++++++++++ > arch/arm/boot/dts/stm32f429-disco.dts | 88 ++++++++++++++++++++++ > arch/arm/boot/dts/stm32f429.dtsi | 12 +++ > 4 files changed, 221 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/panel/ilitek,ili9341.txt > > diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.txt b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.txt This binding description should be in a separate patch and you have to write in YAML format. > new file mode 100644 > index 0000000..f5a4e55 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.txt > @@ -0,0 +1,42 @@ > +Ilitek ILI9341 TFT panel driver with SPI control bus > + > +This is a driver for 240x320 TFT panels, accepting a rgb input > +streams that get adapted and scaled to the panel. > + > +Required properties: > + - compatible: "stm32f429-disco,ltdc-panel", "ilitek,ili9341" > + (full system-specific compatible is always required to look up configuration) > + - reg: address of the panel on the SPI bus > + > +Optional properties: > + - reset-gpios: a GPIO spec for the reset pin, see gpio/gpio.txt > + - dc-gpios: a GPIO spec for the dc pin, see gpio/gpio.txt > + > + The following optional properties only apply to RGB input mode: > + > + - pixelclk-active: see display/panel/display-timing.txt > + - de-active: see display/panel/display-timing.txt > + - hsync-active: see display/panel/display-timing.txt > + - vsync-active: see display/panel/display-timing.txt > + > +The panel must obey the rules for a SPI slave device as specified in > +spi/spi-bus.txt > + > +The device node can contain one 'port' child node with one child > +'endpoint' node, according to the bindings defined in > +media/video-interfaces.txt. This node should describe panel's video bus. > + > +Example: > + > +panel: display@0 { > + compatible = "stm32f429-disco,ltdc-panel", "ilitek,ili9341"; > + reg = <0>; > + spi-3wire; > + spi-max-frequency = <10000000>; > + dc-gpios = <&gpiod 13 0>; > + port { > + panel_in: endpoint { > + remote-endpoint = <&display_out>; > + }; > + }; > +}; > diff --git a/arch/arm/boot/dts/stm32f4-pinctrl.dtsi b/arch/arm/boot/dts/stm32f4-pinctrl.dtsi > index 392fa14..45b68f4 100644 > --- a/arch/arm/boot/dts/stm32f4-pinctrl.dtsi > +++ b/arch/arm/boot/dts/stm32f4-pinctrl.dtsi > @@ -316,6 +316,85 @@ > }; > }; > > + ltdc_pins_f429_disco: ltdc-1 { > + pins { > + pinmux = , > + /* LCD_HSYNC */ > + , > + /* LCD_VSYNC */ > + , > + /* LCD_CLK */ > + , > + /* LCD_R2 */ > + , > + /* LCD_R3 */ > + , > + /* LCD_R4 */ > + , > + /* LCD_R5 */ > + , > + /* LCD_R6*/ > + , > + /* LCD_R7 */ > + , > + /* LCD_G2 */ > + , > + /* LCD_G3 */ > + , > + /* LCD_G4 */ > + , > + /* LCD_B2 */ > + , > + /* LCD_B3*/ > + , > + /* LCD_G5 */ > + , > + /* LCD_G6 */ > + , > + /* LCD_G7 */ > + , > + /* LCD_B4 */ > + , > + /* LCD_B5 */ > + , > + /* LCD_B6 */ > + , > + /* LCD_B7 */ > + ; > + /* LCD_DE */ > + slew-rate = <2>; > + }; > + }; > + > + i2c3_pins: i2c3-0 { > + pins { > + pinmux = , > + /* I2C3_SDA */ > + ; > + /* I2C3_SCL */ > + bias-disable; > + drive-open-drain; > + slew-rate = <3>; > + }; > + }; > + > + spi5_pins: spi5-0 { > + pins1 { > + pinmux = , > + /* SPI5_CLK */ > + ; > + /* SPI5_MOSI */ > + bias-disable; > + drive-push-pull; > + slew-rate = <0>; > + }; > + pins2 { > + pinmux = ; > + /* SPI5_MISO */ > + bias-disable; > + }; > + }; > + > dcmi_pins: dcmi-0 { > pins { > pinmux = , /* DCMI_HSYNC */ > diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts > index 30c0f67..55eed05 100644 > --- a/arch/arm/boot/dts/stm32f429-disco.dts > +++ b/arch/arm/boot/dts/stm32f429-disco.dts > @@ -49,6 +49,8 @@ > #include "stm32f429.dtsi" > #include "stm32f429-pinctrl.dtsi" > #include > +#include > +#include > > / { > model = "STMicroelectronics STM32F429i-DISCO board"; > @@ -98,6 +100,14 @@ > regulator-name = "vcc5_host1"; > regulator-always-on; > }; > + > + reg_3p3v: regulator-3p3v { 3p3 ? > + compatible = "regulator-fixed"; > + regulator-name = "3P3V"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-always-on; > + }; > }; > > &clk_hse { > @@ -127,3 +137,81 @@ > pinctrl-names = "default"; > status = "okay"; > }; > + > +<dc { > + status = "okay"; > + pinctrl-0 = <<dc_pins_f429_disco>; > + pinctrl-names = "default"; > + > + port { > + ltdc_out_rgb: endpoint { > + remote-endpoint = <&panel_in_rgb>; > + }; > + }; > +}; > + > +&spi5 { > + status = "okay"; > + pinctrl-0 = <&spi5_pins>; > + pinctrl-names = "default"; > + #address-cells = <1>; > + #size-cells = <0>; > + cs-gpios = <&gpioc 1 GPIO_ACTIVE_LOW>,<&gpioc 2 GPIO_ACTIVE_LOW>; > + dmas = <&dma2 3 2 0x400 0x0>, > + <&dma2 4 2 0x400 0x0>; > + dma-names = "rx", "tx"; > + l3gd20: l3gd20@0 { > + compatible = "st,l3gd20-gyro"; > + spi-max-frequency = <10000000>; > + st,drdy-int-pin = <2>; > + interrupt-parent = <&gpioa>; > + interrupts = <1 IRQ_TYPE_EDGE_RISING>, > + <2 IRQ_TYPE_EDGE_RISING>; > + reg = <0>; > + vddio = <®_3p3v>; > + vdd = <®_3p3v>; > + status = "okay"; > + }; > + display: display@1{ > + /* Connect panel-ilitek-9341 to ltdc */ > + compatible = "stm32f429-disco,ltdc-panel", "ilitek,ili9341"; > + reg = <1>; > + spi-3wire; > + spi-max-frequency = <10000000>; > + dc-gpios = <&gpiod 13 0>; > + port { > + panel_in_rgb: endpoint { > + remote-endpoint = <<dc_out_rgb>; > + }; > + }; > + }; > +}; > + > +&i2c3 { Nodes are have to be ordered > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c3_pins>; > + status = "okay"; > + > + touch: stmpe811@41 { > + compatible = "st,stmpe811"; > + reg = <0x41>; > + interrupts = <15 IRQ_TYPE_EDGE_FALLING>; > + interrupt-parent = <&gpioa>; > + vio = <®_3p3v>; > + vcc = <®_3p3v>; > + status = "okay"; > + > + stmpe_touchscreen { > + compatible = "st,stmpe-ts"; > + st,sample-time = <4>; > + st,mod-12b = <1>; > + st,ref-sel = <0>; > + st,adc-freq = <1>; > + st,ave-ctrl = <1>; > + st,touch-det-delay = <2>; > + st,settling = <2>; > + st,fraction-z = <7>; > + st,i-drive = <1>; > + }; > + }; > +}; > diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi > index d777069..257b843 100644 > --- a/arch/arm/boot/dts/stm32f429.dtsi > +++ b/arch/arm/boot/dts/stm32f429.dtsi > @@ -402,6 +402,18 @@ Split Soc updates in a separate patch > status = "disabled"; > }; > > + i2c3: i2c@40005c00 { > + compatible = "st,stm32f4-i2c"; > + reg = <0x40005c00 0x400>; > + interrupts = <72>, > + <73>; > + resets = <&rcc STM32F4_APB1_RESET(I2C3)>; > + clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C3)>; > + #address-cells = <1>; > + #size-cells = <0>; > + status = "disabled"; > + }; > + > dac: dac@40007400 { > compatible = "st,stm32f4-dac-core"; > reg = <0x40007400 0x400>; >