12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730 |
- From ad8ef01e630f1c60ac9fa22a1e05af61ce1c0569 Mon Sep 17 00:00:00 2001
- From: "neeraj.dantu" <neeraj.dantu@octavosystems.com>
- Date: Sun, 31 Jan 2021 21:03:30 -0600
- Subject: [PATCH 1/2] Add OSD32MP1-RED Device Tree support
- Signed-off-by: neeraj.dantu <neeraj.dantu@octavosystems.com>
- [Kory: from https://github.com/octavosystems/osd32mp1-build-tools/tree/395ebd1f4832353c2bc66bbf3346b07d5243e44d/patches/u-boot-2018.11]
- Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
- ---
- arch/arm/dts/osd32mp1-red-u-boot.dtsi | 242 +++
- arch/arm/dts/osd32mp1-red.dts | 1311 +++++++++++++++++
- ...m32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi | 119 ++
- arch/arm/dts/stm32mp157c.dtsi | 4 +
- 4 files changed, 1676 insertions(+)
- create mode 100644 arch/arm/dts/osd32mp1-red-u-boot.dtsi
- create mode 100644 arch/arm/dts/osd32mp1-red.dts
- create mode 100644 arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi
- diff --git a/arch/arm/dts/osd32mp1-red-u-boot.dtsi b/arch/arm/dts/osd32mp1-red-u-boot.dtsi
- new file mode 100644
- index 0000000000..801b021145
- --- /dev/null
- +++ b/arch/arm/dts/osd32mp1-red-u-boot.dtsi
- @@ -0,0 +1,242 @@
- +/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause*/
- +/*
- + * Copyright (C) 2020, STMicroelectronics - All Rights Reserved
- + * Author: STM32CubeMX code generation for STMicroelectronics.
- + */
- +
- +/* For more information on Device Tree configuration, please refer to
- + * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration
- + */
- +
- +#include <dt-bindings/clock/stm32mp1-clksrc.h>
- +#include "stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi"
- +
- +#include "stm32mp157-u-boot.dtsi"
- +#include "stm32mp15-ddr.dtsi"
- +
- +
- +
- +
- +/ {
- +
- +
- + aliases {
- + i2c3 = &i2c4;
- + mmc0 = &sdmmc1; //orig
- + //mmc0 = &sdmmc2; //custom
- + };
- + config {
- + u-boot,boot-led = "heartbeat";
- + u-boot,error-led = "error";
- + st,adc_usb_pd = <&adc1 18>, <&adc1 19>;
- + //st,fastboot-gpios = <&gpioa 13 GPIO_ACTIVE_LOW>; //custom
- + //st,stm32prog-gpios = <&gpioa 14 GPIO_ACTIVE_LOW>; //custom
- + };
- + led {
- + red {
- + label = "error";
- + gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
- + default-state = "off";
- + status = "okay";
- + };
- +
- + blue {
- + default-state = "on";
- + };
- + };
- +
- +
- + clocks {
- + u-boot,dm-pre-reloc;
- +
- +
- +
- +
- + clk_lsi: clk-lsi {
- + u-boot,dm-pre-reloc;
- +
- +
- +
- + };
- +
- + clk_hsi: clk-hsi {
- + u-boot,dm-pre-reloc;
- +
- +
- +
- + };
- +
- + clk_csi: clk-csi {
- + u-boot,dm-pre-reloc;
- + status = "disabled";
- +
- +
- +
- + };
- +
- + clk_lse: clk-lse {
- + u-boot,dm-pre-reloc;
- + st,drive = < LSEDRV_MEDIUM_HIGH >;
- +
- +
- +
- + };
- +
- + clk_hse: clk-hse {
- + u-boot,dm-pre-reloc;
- + st,digbypass;
- +
- +
- +
- + };
- + };
- +
- +}; /*root*/
- +
- +&rcc {
- + u-boot,dm-pre-reloc;
- + st,clksrc = <
- + CLK_MPU_PLL1P
- + CLK_AXI_PLL2P
- + CLK_MCU_PLL3P
- + CLK_PLL12_HSE
- + CLK_PLL3_HSE
- + CLK_PLL4_HSE
- + CLK_RTC_LSE
- + CLK_MCO1_DISABLED
- + CLK_MCO2_DISABLED
- + >;
- + st,clkdiv = <
- + 1 /*MPU*/
- + 0 /*AXI*/
- + 0 /*MCU*/
- + 1 /*APB1*/
- + 1 /*APB2*/
- + 1 /*APB3*/
- + 1 /*APB4*/
- + 2 /*APB5*/
- + 23 /*RTC*/
- + 0 /*MCO1*/
- + 0 /*MCO2*/
- + >;
- + st,pkcs = <
- + CLK_CKPER_DISABLED
- + CLK_ETH_PLL3Q
- + CLK_SDMMC12_PLL4P
- + CLK_DSI_DSIPLL
- + CLK_STGEN_HSE
- + CLK_USBPHY_DISABLED
- + CLK_SPI2S1_DISABLED
- + CLK_SPI2S23_PLL3Q
- + CLK_SPI45_DISABLED
- + CLK_SPI6_DISABLED
- + CLK_I2C46_HSI
- + CLK_SDMMC3_PLL4P
- + CLK_ADC_DISABLED
- + CLK_CEC_DISABLED
- + CLK_I2C12_HSI
- + CLK_I2C35_DISABLED
- + CLK_UART1_DISABLED
- + CLK_UART24_HSI
- + CLK_UART35_DISABLED
- + CLK_UART6_DISABLED
- + CLK_UART78_DISABLED
- + CLK_SPDIF_DISABLED
- + CLK_SAI2_CKPER
- + CLK_SAI2_DISABLED
- + CLK_SAI3_DISABLED
- + CLK_SAI4_DISABLED
- + CLK_RNG1_LSI
- + CLK_LPTIM1_DISABLED
- + CLK_LPTIM23_DISABLED
- + CLK_LPTIM45_DISABLED
- + >;
- + pll1:st,pll@0 {
- + cfg = < 2 80 0 1 1 PQR(1,0,0) >;
- + frac = < 0x800>;
- + u-boot,dm-pre-reloc;
- + };
- + pll2:st,pll@1 {
- + cfg = < 2 65 1 0 0 PQR(1,1,1) >;
- + frac = < 0x1400>;
- + u-boot,dm-pre-reloc;
- + };
- + pll3:st,pll@2 {
- + cfg = < 1 61 3 5 36 PQR(1,1,0) >;
- + frac = < 0x1000 >;
- + u-boot,dm-pre-reloc;
- + };
- + pll4:st,pll@3 {
- + cfg = < 3 98 5 7 7 PQR(1,1,1) >;
- + u-boot,dm-pre-reloc;
- + };
- +};
- +
- +&i2c4{
- + u-boot,dm-pre-reloc;
- +
- +
- +
- +};
- +
- +&rcc{
- + u-boot,dm-pre-reloc;
- +
- +
- +
- +};
- +
- +&sdmmc1{
- + u-boot,dm-pre-reloc;
- +
- +
- +
- +};
- +
- +&sdmmc2{
- + u-boot,dm-pre-reloc;
- +
- +
- +
- +};
- +
- +&sdmmc3{
- + u-boot,dm-pre-reloc;
- +
- +
- +
- +};
- +
- +&uart4{
- + u-boot,dm-pre-reloc;
- +
- +
- +
- +};
- +
- +
- +&pmic {
- + u-boot,dm-pre-reloc;
- +};
- +
- +&v3v3 {
- + regulator-always-on;
- +};
- +
- +&uart4_pins_mx {
- + u-boot,dm-pre-reloc;
- + pins1 {
- + u-boot,dm-pre-reloc;
- + /* pull-up on rx to avoid floating level */
- + bias-pull-up;
- + };
- + pins2 {
- + u-boot,dm-pre-reloc;
- + };
- +};
- +
- +&adc {
- + status = "okay";
- +};
- +
- +
- diff --git a/arch/arm/dts/osd32mp1-red.dts b/arch/arm/dts/osd32mp1-red.dts
- new file mode 100644
- index 0000000000..2cc1961d08
- --- /dev/null
- +++ b/arch/arm/dts/osd32mp1-red.dts
- @@ -0,0 +1,1311 @@
- +/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
- +/*
- + * Copyright (C) STMicroelectronics 2020 - All Rights Reserved
- + * Author: STM32CubeMX code generation for STMicroelectronics.
- + */
- +
- +/* For more information on Device Tree configuration, please refer to
- + * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration
- + */
- +
- +/dts-v1/;
- +#include "stm32mp157c.dtsi"
- +#include "stm32mp157cac-pinctrl.dtsi"
- +#include "stm32mp157c-m4-srm.dtsi"
- +
- +
- +#include <dt-bindings/input/input.h>
- +#include <dt-bindings/mfd/st,stpmic1.h>
- +#include <dt-bindings/rtc/rtc-stm32.h>
- +
- +
- +/ {
- + model = "Octavo OSD32MP1-RED board";
- + compatible = "octavo,osd32mp1-red", "st,stm32mp157";
- +
- + memory@c0000000 {
- + reg = <0xc0000000 0x20000000>;
- +
- +
- + wifi_pwrseq: wifi-pwrseq {
- + compatible = "mmc-pwrseq-simple";
- + reset-gpios = <&gpiog 5 GPIO_ACTIVE_LOW>; //custom
- + };
- +
- + };
- +
- + reserved-memory {
- + #address-cells = <1>;
- + #size-cells = <1>;
- + ranges;
- +
- +
- +
- + retram: retram@0x38000000 {
- + compatible = "shared-dma-pool";
- + reg = <0x38000000 0x10000>;
- + no-map;
- + };
- +
- + mcuram: mcuram@0x30000000 {
- + compatible = "shared-dma-pool";
- + reg = <0x30000000 0x40000>;
- + no-map;
- + };
- +
- + mcuram2: mcuram2@0x10000000 {
- + compatible = "shared-dma-pool";
- + reg = <0x10000000 0x40000>;
- + no-map;
- + };
- +
- + vdev0vring0: vdev0vring0@10040000 {
- + compatible = "shared-dma-pool";
- + reg = <0x10040000 0x2000>;
- + no-map;
- + };
- +
- + vdev0vring1: vdev0vring1@10042000 {
- + compatible = "shared-dma-pool";
- + reg = <0x10042000 0x2000>;
- + no-map;
- + };
- +
- + vdev0buffer: vdev0buffer@10044000 {
- + compatible = "shared-dma-pool";
- + reg = <0x10044000 0x4000>;
- + no-map;
- + };
- +
- +
- + gpu_reserved: gpu@d4000000 {
- + reg = <0xd4000000 0x4000000>;
- + no-map;
- + };
- + };
- +
- +
- + aliases {
- + ethernet0 = ðernet0;
- + serial0 = &uart4;
- + serial1 = &usart3;
- + serial2 = &uart7;
- + serial3 = &usart2;
- + };
- +
- + chosen {
- + stdout-path = "serial0:115200n8";
- + };
- +
- + sram: sram@10050000 {
- + compatible = "mmio-sram";
- + reg = <0x10050000 0x10000>;
- + #address-cells = <1>;
- + #size-cells = <1>;
- + ranges = <0 0x10050000 0x10000>;
- +
- + dma_pool: dma_pool@0 {
- + reg = <0x0 0x10000>;
- + pool;
- + };
- + };
- +
- + led {
- + compatible = "gpio-leds";
- + blue {
- + label = "heartbeat";
- + gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
- + linux,default-trigger = "heartbeat";
- + default-state = "off";
- + };
- +
- + //custom_gpios{ //custom
- + //gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
- + //default-state = "on";
- + //};
- + };
- +
- + /*sound {
- + compatible = "audio-graph-card";
- + label = "STM32MP1-DK";
- + routing =
- + "Playback" , "MCLK",
- + "Capture" , "MCLK",
- + "MICL" , "Mic Bias";
- + dais = <&sai2a_port &sai2b_port &i2s2_port>;
- + status = "okay";
- + }; */
- +
- + usb_phy_tuning: usb-phy-tuning {
- + st,hs-dc-level = <2>;
- + st,fs-rftime-tuning;
- + st,hs-rftime-reduction;
- + st,hs-current-trim = <15>;
- + st,hs-impedance-trim = <1>;
- + st,squelch-level = <3>;
- + st,hs-rx-offset = <2>;
- + st,no-lsfs-sc;
- + };
- +
- +
- +
- + clocks {
- +
- + clk_ext_camera: clk-ext-camera {
- + #clock-cells = <0>;
- + compatible = "fixed-clock";
- + clock-frequency = <24000000>;
- + };
- +
- +
- + clk_lsi: clk-lsi {
- + clock-frequency = <32000>;
- + };
- +
- + clk_hsi: clk-hsi {
- + clock-frequency = <64000000>;
- + };
- +
- + clk_csi: clk-csi {
- + clock-frequency = <4000000>;
- + };
- +
- + clk_lse: clk-lse {
- + clock-frequency = <32768>;
- + };
- +
- + clk_hse: clk-hse {
- + clock-frequency = <24000000>;
- + };
- + };
- +
- +}; /*root*/
- +
- +&pinctrl {
- + u-boot,dm-pre-reloc;
- +
- + dcmi_pins_mx: dcmi_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('A', 4, AF13)>, /* DCMI_HSYNC */
- + <STM32_PINMUX('A', 6, AF13)>, /* DCMI_PIXCLK */
- + <STM32_PINMUX('A', 10, AF13)>, /* DCMI_D1 */
- + <STM32_PINMUX('B', 9, AF13)>, /* DCMI_D7 */
- + <STM32_PINMUX('C', 6, AF13)>, /* DCMI_D0 */
- + <STM32_PINMUX('E', 0, AF13)>, /* DCMI_D2 */
- + <STM32_PINMUX('E', 1, AF13)>, /* DCMI_D3 */
- + <STM32_PINMUX('E', 4, AF13)>, /* DCMI_D4 */
- + <STM32_PINMUX('E', 13, AF13)>, /* DCMI_D6 */
- + <STM32_PINMUX('G', 9, AF13)>, /* DCMI_VSYNC */
- + <STM32_PINMUX('H', 6, AF13)>, /* DCMI_D8 */
- + <STM32_PINMUX('H', 7, AF13)>, /* DCMI_D9 */
- + <STM32_PINMUX('H', 15, AF13)>, /* DCMI_D11 */
- + <STM32_PINMUX('I', 3, AF13)>, /* DCMI_D10 */
- + <STM32_PINMUX('I', 4, AF13)>; /* DCMI_D5 */
- + bias-disable;
- + };
- + };
- +
- + dcmi_sleep_pins_mx: dcmi_sleep_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* DCMI_HSYNC */
- + <STM32_PINMUX('A', 6, ANALOG)>, /* DCMI_PIXCLK */
- + <STM32_PINMUX('A', 10, ANALOG)>, /* DCMI_D1 */
- + <STM32_PINMUX('B', 9, ANALOG)>, /* DCMI_D7 */
- + <STM32_PINMUX('C', 6, ANALOG)>, /* DCMI_D0 */
- + <STM32_PINMUX('E', 0, ANALOG)>, /* DCMI_D2 */
- + <STM32_PINMUX('E', 1, ANALOG)>, /* DCMI_D3 */
- + <STM32_PINMUX('E', 4, ANALOG)>, /* DCMI_D4 */
- + <STM32_PINMUX('E', 13, ANALOG)>, /* DCMI_D6 */
- + <STM32_PINMUX('G', 9, ANALOG)>, /* DCMI_VSYNC */
- + <STM32_PINMUX('H', 6, ANALOG)>, /* DCMI_D8 */
- + <STM32_PINMUX('H', 7, ANALOG)>, /* DCMI_D9 */
- + <STM32_PINMUX('H', 15, ANALOG)>, /* DCMI_D11 */
- + <STM32_PINMUX('I', 3, ANALOG)>, /* DCMI_D10 */
- + <STM32_PINMUX('I', 4, ANALOG)>; /* DCMI_D5 */
- + };
- + };
- +
- + eth1_pins_mx: eth1_mx-0 {
- + pins1 {
- + pinmux = <STM32_PINMUX('A', 1, AF11)>, /* ETH1_RX_CLK */
- + <STM32_PINMUX('A', 7, AF11)>, /* ETH1_RX_CTL */
- + <STM32_PINMUX('B', 0, AF11)>, /* ETH1_RXD2 */
- + <STM32_PINMUX('B', 1, AF11)>, /* ETH1_RXD3 */
- + <STM32_PINMUX('C', 4, AF11)>, /* ETH1_RXD0 */
- + <STM32_PINMUX('C', 5, AF11)>; /* ETH1_RXD1 */
- + bias-disable;
- + };
- + pins2 {
- + pinmux = <STM32_PINMUX('A', 2, AF11)>; /* ETH1_MDIO */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <0>;
- + };
- + pins3 {
- + pinmux = <STM32_PINMUX('B', 11, AF11)>, /* ETH1_TX_CTL */
- + <STM32_PINMUX('C', 1, AF11)>, /* ETH1_MDC */
- + <STM32_PINMUX('C', 2, AF11)>, /* ETH1_TXD2 */
- + <STM32_PINMUX('E', 2, AF11)>, /* ETH1_TXD3 */
- + <STM32_PINMUX('G', 4, AF11)>, /* ETH1_GTX_CLK */
- + <STM32_PINMUX('G', 13, AF11)>, /* ETH1_TXD0 */
- + <STM32_PINMUX('G', 14, AF11)>; /* ETH1_TXD1 */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <2>;
- + };
- + };
- +
- + eth1_sleep_pins_mx: eth1_sleep_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('A', 1, ANALOG)>, /* ETH1_RX_CLK */
- + <STM32_PINMUX('A', 2, ANALOG)>, /* ETH1_MDIO */
- + <STM32_PINMUX('A', 7, ANALOG)>, /* ETH1_RX_CTL */
- + <STM32_PINMUX('B', 0, ANALOG)>, /* ETH1_RXD2 */
- + <STM32_PINMUX('B', 1, ANALOG)>, /* ETH1_RXD3 */
- + <STM32_PINMUX('B', 11, ANALOG)>, /* ETH1_TX_CTL */
- + <STM32_PINMUX('C', 1, ANALOG)>, /* ETH1_MDC */
- + <STM32_PINMUX('C', 2, ANALOG)>, /* ETH1_TXD2 */
- + <STM32_PINMUX('C', 4, ANALOG)>, /* ETH1_RXD0 */
- + <STM32_PINMUX('C', 5, ANALOG)>, /* ETH1_RXD1 */
- + <STM32_PINMUX('E', 2, ANALOG)>, /* ETH1_TXD3 */
- + <STM32_PINMUX('G', 4, ANALOG)>, /* ETH1_GTX_CLK */
- + <STM32_PINMUX('G', 13, ANALOG)>, /* ETH1_TXD0 */
- + <STM32_PINMUX('G', 14, ANALOG)>; /* ETH1_TXD1 */
- + };
- + };
- +
- + i2c1_pins_mx: i2c1_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */
- + <STM32_PINMUX('F', 15, AF5)>; /* I2C1_SDA */
- + bias-disable;
- + drive-open-drain;
- + slew-rate = <0>;
- + };
- + };
- +
- + i2c1_sleep_pins_mx: i2c1_sleep_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('D', 12, ANALOG)>, /* I2C1_SCL */
- + <STM32_PINMUX('F', 15, ANALOG)>; /* I2C1_SDA */
- + };
- + };
- +
- + i2c2_pins_mx: i2c2_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('H', 5, AF4)>; /* I2C2_SDA */
- + bias-disable;
- + drive-open-drain;
- + slew-rate = <0>;
- + };
- + };
- +
- + i2c2_sleep_pins_mx: i2c2_sleep_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('H', 5, ANALOG)>; /* I2C2_SDA */
- + };
- + };
- +
- + i2s2_pins_mx: i2s2_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('B', 12, AF5)>, /* I2S2_WS */
- + <STM32_PINMUX('B', 13, AF5)>, /* I2S2_CK */
- + <STM32_PINMUX('C', 3, AF5)>; /* I2S2_SDO */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <1>;
- + };
- + };
- +
- + i2s2_sleep_pins_mx: i2s2_sleep_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('B', 12, ANALOG)>, /* I2S2_WS */
- + <STM32_PINMUX('B', 13, ANALOG)>, /* I2S2_CK */
- + <STM32_PINMUX('C', 3, ANALOG)>; /* I2S2_SDO */
- + };
- + };
- +
- + ltdc_pins_mx: ltdc_mx-0 {
- + pins1 {
- + pinmux = <STM32_PINMUX('A', 3, AF14)>, /* LTDC_B5 */
- + <STM32_PINMUX('B', 8, AF14)>, /* LTDC_B6 */
- + <STM32_PINMUX('C', 0, AF14)>, /* LTDC_R5 */
- + <STM32_PINMUX('D', 8, AF14)>, /* LTDC_B7 */
- + <STM32_PINMUX('D', 9, AF14)>, /* LTDC_B0 */
- + <STM32_PINMUX('D', 10, AF14)>, /* LTDC_B3 */
- + <STM32_PINMUX('E', 6, AF14)>, /* LTDC_G1 */
- + <STM32_PINMUX('E', 12, AF14)>, /* LTDC_B4 */
- + <STM32_PINMUX('E', 14, AF13)>, /* LTDC_G0 */
- + <STM32_PINMUX('E', 15, AF14)>, /* LTDC_R7 */
- + <STM32_PINMUX('F', 10, AF14)>, /* LTDC_DE */
- + <STM32_PINMUX('G', 10, AF14)>, /* LTDC_B2 */
- + <STM32_PINMUX('G', 12, AF14)>, /* LTDC_B1 */
- + <STM32_PINMUX('H', 2, AF14)>, /* LTDC_R0 */
- + <STM32_PINMUX('H', 3, AF14)>, /* LTDC_R1 */
- + <STM32_PINMUX('H', 4, AF14)>, /* LTDC_G4 */
- + <STM32_PINMUX('H', 8, AF14)>, /* LTDC_R2 */
- + <STM32_PINMUX('H', 9, AF14)>, /* LTDC_R3 */
- + <STM32_PINMUX('H', 10, AF14)>, /* LTDC_R4 */
- + <STM32_PINMUX('H', 12, AF14)>, /* LTDC_R6 */
- + <STM32_PINMUX('H', 13, AF14)>, /* LTDC_G2 */
- + <STM32_PINMUX('H', 14, AF14)>, /* LTDC_G3 */
- + <STM32_PINMUX('I', 0, AF14)>, /* LTDC_G5 */
- + <STM32_PINMUX('I', 1, AF14)>, /* LTDC_G6 */
- + <STM32_PINMUX('I', 2, AF14)>, /* LTDC_G7 */
- + <STM32_PINMUX('I', 9, AF14)>, /* LTDC_VSYNC */
- + <STM32_PINMUX('I', 10, AF14)>; /* LTDC_HSYNC */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <0>;
- + };
- + pins2 {
- + pinmux = <STM32_PINMUX('G', 7, AF14)>; /* LTDC_CLK */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <1>;
- + };
- + };
- +
- + ltdc_sleep_pins_mx: ltdc_sleep_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('A', 3, ANALOG)>, /* LTDC_B5 */
- + <STM32_PINMUX('B', 8, ANALOG)>, /* LTDC_B6 */
- + <STM32_PINMUX('C', 0, ANALOG)>, /* LTDC_R5 */
- + <STM32_PINMUX('D', 8, ANALOG)>, /* LTDC_B7 */
- + <STM32_PINMUX('D', 9, ANALOG)>, /* LTDC_B0 */
- + <STM32_PINMUX('D', 10, ANALOG)>, /* LTDC_B3 */
- + <STM32_PINMUX('E', 6, ANALOG)>, /* LTDC_G1 */
- + <STM32_PINMUX('E', 12, ANALOG)>, /* LTDC_B4 */
- + <STM32_PINMUX('E', 14, ANALOG)>, /* LTDC_G0 */
- + <STM32_PINMUX('E', 15, ANALOG)>, /* LTDC_R7 */
- + <STM32_PINMUX('F', 10, ANALOG)>, /* LTDC_DE */
- + <STM32_PINMUX('G', 7, ANALOG)>, /* LTDC_CLK */
- + <STM32_PINMUX('G', 10, ANALOG)>, /* LTDC_B2 */
- + <STM32_PINMUX('G', 12, ANALOG)>, /* LTDC_B1 */
- + <STM32_PINMUX('H', 2, ANALOG)>, /* LTDC_R0 */
- + <STM32_PINMUX('H', 3, ANALOG)>, /* LTDC_R1 */
- + <STM32_PINMUX('H', 4, ANALOG)>, /* LTDC_G4 */
- + <STM32_PINMUX('H', 8, ANALOG)>, /* LTDC_R2 */
- + <STM32_PINMUX('H', 9, ANALOG)>, /* LTDC_R3 */
- + <STM32_PINMUX('H', 10, ANALOG)>, /* LTDC_R4 */
- + <STM32_PINMUX('H', 12, ANALOG)>, /* LTDC_R6 */
- + <STM32_PINMUX('H', 13, ANALOG)>, /* LTDC_G2 */
- + <STM32_PINMUX('H', 14, ANALOG)>, /* LTDC_G3 */
- + <STM32_PINMUX('I', 0, ANALOG)>, /* LTDC_G5 */
- + <STM32_PINMUX('I', 1, ANALOG)>, /* LTDC_G6 */
- + <STM32_PINMUX('I', 2, ANALOG)>, /* LTDC_G7 */
- + <STM32_PINMUX('I', 9, ANALOG)>, /* LTDC_VSYNC */
- + <STM32_PINMUX('I', 10, ANALOG)>; /* LTDC_HSYNC */
- + };
- + };
- +
- + sdmmc1_pins_mx: sdmmc1_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins1 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
- + <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
- + <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
- + <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
- + <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <1>;
- + };
- + pins2 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <3>;
- + };
- + };
- +
- + sdmmc1_opendrain_pins_mx: sdmmc1_opendrain_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins1 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
- + <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
- + <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
- + <STM32_PINMUX('C', 11, AF12)>; /* SDMMC1_D3 */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <1>;
- + };
- + pins2 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <3>;
- + };
- + pins3 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
- + bias-disable;
- + drive-open-drain;
- + slew-rate = <1>;
- + };
- + };
- +
- + sdmmc1_sleep_pins_mx: sdmmc1_sleep_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('C', 8, ANALOG)>, /* SDMMC1_D0 */
- + <STM32_PINMUX('C', 9, ANALOG)>, /* SDMMC1_D1 */
- + <STM32_PINMUX('C', 10, ANALOG)>, /* SDMMC1_D2 */
- + <STM32_PINMUX('C', 11, ANALOG)>, /* SDMMC1_D3 */
- + <STM32_PINMUX('C', 12, ANALOG)>, /* SDMMC1_CK */
- + <STM32_PINMUX('D', 2, ANALOG)>; /* SDMMC1_CMD */
- + };
- + };
- +
- + sdmmc2_pins_mx: sdmmc2_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins1 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
- + <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
- + <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
- + <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
- + <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
- + <STM32_PINMUX('B', 15, AF9)>, /* SDMMC2_D1 */
- + <STM32_PINMUX('C', 7, AF10)>, /* SDMMC2_D7 */
- + <STM32_PINMUX('E', 5, AF9)>, /* SDMMC2_D6 */
- + <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
- + bias-pull-up;
- + drive-push-pull;
- + slew-rate = <1>;
- + };
- + pins2 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('E', 3, AF9)>; /* SDMMC2_CK */
- + bias-pull-up;
- + drive-push-pull;
- + slew-rate = <2>;
- + };
- + };
- +
- + sdmmc2_opendrain_pins_mx: sdmmc2_opendrain_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins1 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
- + <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
- + <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
- + <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
- + <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
- + <STM32_PINMUX('B', 15, AF9)>, /* SDMMC2_D1 */
- + <STM32_PINMUX('C', 7, AF10)>, /* SDMMC2_D7 */
- + <STM32_PINMUX('E', 5, AF9)>; /* SDMMC2_D6 */
- + bias-pull-up;
- + drive-push-pull;
- + slew-rate = <1>;
- + };
- + pins2 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('E', 3, AF9)>; /* SDMMC2_CK */
- + bias-pull-up;
- + drive-push-pull;
- + slew-rate = <2>;
- + };
- + pins3 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
- + bias-pull-up;
- + drive-open-drain;
- + slew-rate = <1>;
- + };
- + };
- +
- + sdmmc2_sleep_pins_mx: sdmmc2_sleep_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* SDMMC2_D4 */
- + <STM32_PINMUX('A', 9, ANALOG)>, /* SDMMC2_D5 */
- + <STM32_PINMUX('B', 3, ANALOG)>, /* SDMMC2_D2 */
- + <STM32_PINMUX('B', 4, ANALOG)>, /* SDMMC2_D3 */
- + <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC2_D0 */
- + <STM32_PINMUX('B', 15, ANALOG)>, /* SDMMC2_D1 */
- + <STM32_PINMUX('C', 7, ANALOG)>, /* SDMMC2_D7 */
- + <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC2_CK */
- + <STM32_PINMUX('E', 5, ANALOG)>, /* SDMMC2_D6 */
- + <STM32_PINMUX('G', 6, ANALOG)>; /* SDMMC2_CMD */
- + };
- + };
- +
- + sdmmc3_pins_mx: sdmmc3_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins1 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */
- + <STM32_PINMUX('F', 0, AF9)>, /* SDMMC3_D0 */
- + <STM32_PINMUX('F', 1, AF9)>, /* SDMMC3_CMD */
- + <STM32_PINMUX('F', 4, AF9)>, /* SDMMC3_D1 */
- + <STM32_PINMUX('F', 5, AF9)>; /* SDMMC3_D2 */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <1>;
- + };
- + pins2 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('G', 15, AF10)>; /* SDMMC3_CK */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <2>;
- + };
- + };
- +
- + sdmmc3_opendrain_pins_mx: sdmmc3_opendrain_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins1 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */
- + <STM32_PINMUX('F', 0, AF9)>, /* SDMMC3_D0 */
- + <STM32_PINMUX('F', 4, AF9)>, /* SDMMC3_D1 */
- + <STM32_PINMUX('F', 5, AF9)>; /* SDMMC3_D2 */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <1>;
- + };
- + pins2 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('F', 1, AF9)>; /* SDMMC3_CMD */
- + bias-disable;
- + drive-open-drain;
- + slew-rate = <1>;
- + };
- + pins3 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('G', 15, AF10)>; /* SDMMC3_CK */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <2>;
- + };
- + };
- +
- + sdmmc3_sleep_pins_mx: sdmmc3_sleep_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('D', 7, ANALOG)>, /* SDMMC3_D3 */
- + <STM32_PINMUX('F', 0, ANALOG)>, /* SDMMC3_D0 */
- + <STM32_PINMUX('F', 1, ANALOG)>, /* SDMMC3_CMD */
- + <STM32_PINMUX('F', 4, ANALOG)>, /* SDMMC3_D1 */
- + <STM32_PINMUX('F', 5, ANALOG)>, /* SDMMC3_D2 */
- + <STM32_PINMUX('G', 15, ANALOG)>; /* SDMMC3_CK */
- + };
- + };
- +
- + uart4_pins_mx: uart4_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins1 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
- + bias-disable;
- + };
- + pins2 {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <0>;
- + };
- + };
- +
- + uart4_sleep_pins_mx: uart4_sleep_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('B', 2, ANALOG)>, /* UART4_RX */
- + <STM32_PINMUX('G', 11, ANALOG)>; /* UART4_TX */
- + };
- + };
- +
- + usart2_pins_mx: usart2_mx-0 {
- + pins1 {
- + pinmux = <STM32_PINMUX('D', 3, AF7)>, /* USART2_CTS */
- + <STM32_PINMUX('D', 6, AF7)>; /* USART2_RX */
- + bias-disable;
- + };
- + pins2 {
- + pinmux = <STM32_PINMUX('D', 4, AF7)>, /* USART2_RTS */
- + <STM32_PINMUX('D', 5, AF7)>; /* USART2_TX */
- + bias-disable;
- + drive-push-pull;
- + slew-rate = <0>;
- + };
- + };
- +
- + usart2_sleep_pins_mx: usart2_sleep_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('D', 3, ANALOG)>, /* USART2_CTS */
- + <STM32_PINMUX('D', 4, ANALOG)>, /* USART2_RTS */
- + <STM32_PINMUX('D', 5, ANALOG)>, /* USART2_TX */
- + <STM32_PINMUX('D', 6, ANALOG)>; /* USART2_RX */
- + };
- + };
- +
- +
- +
- +};
- +
- +&pinctrl_z {
- + u-boot,dm-pre-reloc;
- +
- + i2c2_pins_z_mx: i2c2_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('Z', 6, AF3)>; /* I2C2_SCL */
- + bias-disable;
- + drive-open-drain;
- + slew-rate = <0>;
- + };
- + };
- +
- + i2c2_sleep_pins_z_mx: i2c2_sleep_mx-0 {
- + pins {
- + pinmux = <STM32_PINMUX('Z', 6, ANALOG)>; /* I2C2_SCL */
- + };
- + };
- +
- + i2c4_pins_z_mx: i2c4_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('Z', 4, AF6)>, /* I2C4_SCL */
- + <STM32_PINMUX('Z', 5, AF6)>; /* I2C4_SDA */
- + bias-disable;
- + drive-open-drain;
- + slew-rate = <0>;
- + };
- + };
- +
- + i2c4_sleep_pins_z_mx: i2c4_sleep_mx-0 {
- + u-boot,dm-pre-reloc;
- + pins {
- + u-boot,dm-pre-reloc;
- + pinmux = <STM32_PINMUX('Z', 4, ANALOG)>, /* I2C4_SCL */
- + <STM32_PINMUX('Z', 5, ANALOG)>; /* I2C4_SDA */
- + };
- + };
- +
- +
- +
- +};
- +
- +&m4_rproc{
- + /*Restriction: "memory-region" property is not managed - please to use User-Section if needed*/
- + mboxes = <&ipcc 2>;
- + mbox-names = "shutdown";
- + recovery;
- + status = "okay";
- +
- +
- + interrupt-parent = <&exti>;
- + interrupts = <68 1>;
- + interrupt-names = "wdg";
- + wakeup-source;
- +
- +};
- +
- +&bsec{
- + status = "okay";
- +
- +
- +
- +};
- +
- +&dcmi{
- + pinctrl-names = "default", "sleep";
- + pinctrl-0 = <&dcmi_pins_mx>;
- + pinctrl-1 = <&dcmi_sleep_pins_mx>;
- + status = "okay";
- +
- +
- +
- + port {
- + dcmi_0: endpoint {
- + remote-endpoint = <&ov5640_0>;
- + bus-width = <8>;
- + hsync-active = <0>;
- + vsync-active = <0>;
- + pclk-sample = <1>;
- + pclk-max-frequency = <77000000>;
- + };
- + };
- +
- +
- +};
- +
- +&dsi{
- + status = "okay";
- +
- +
- +
- + #address-cells = <1>;
- + #size-cells = <0>;
- + status = "okay";
- +
- + ports {
- + #address-cells = <1>;
- + #size-cells = <0>;
- +
- + port@0 {
- + reg = <0>;
- + dsi_in: endpoint {
- + remote-endpoint = <<dc_ep1_out>;
- + };
- + };
- +
- + port@1 {
- + reg = <1>;
- + dsi_out: endpoint {
- + remote-endpoint = <&panel_in>;
- + };
- + };
- + };
- +
- + panel@0 {
- + compatible = "orisetech,otm8009a";
- + reg = <0>;
- + reset-gpios = <&gpioe 9 GPIO_ACTIVE_LOW>;
- + power-supply = <&v3v3>;
- + status = "okay";
- +
- + port {
- + panel_in: endpoint {
- + remote-endpoint = <&dsi_out>;
- + };
- + };
- + };
- +
- +
- +};
- +
- +ðernet0{
- + pinctrl-names = "default", "sleep";
- + pinctrl-0 = <ð1_pins_mx>;
- + pinctrl-1 = <ð1_sleep_pins_mx>;
- + status = "okay";
- +
- +
- + st,eth_clk_sel = <1>; //custom
- + phy-mode = "rgmii-id";
- + max-speed = <1000>;
- + phy-handle = <&phy0>;
- +
- + mdio0 {
- + #address-cells = <1>;
- + #size-cells = <0>;
- + compatible = "snps,dwmac-mdio";
- + phy0: ethernet-phy@0 {
- + reg = <0>;
- + };
- + };
- +
- +
- +};
- +
- +&gpu{
- + status = "okay";
- +
- +
- + contiguous-area = <&gpu_reserved>;
- +
- +};
- +
- +&hsem{
- + status = "okay";
- +
- +
- +
- +};
- +
- +&i2c1{
- + pinctrl-names = "default", "sleep";
- + pinctrl-0 = <&i2c1_pins_mx>;
- + pinctrl-1 = <&i2c1_sleep_pins_mx>;
- + status = "okay";
- +
- +
- +
- + i2c-scl-rising-time-ns = <100>;
- + i2c-scl-falling-time-ns = <7>;
- +
- + /delete-property/dmas;
- + /delete-property/dma-names;
- +
- +
- + touchscreen@2a {
- + compatible = "focaltech,ft6236";
- + reg = <0x2a>;
- + interrupts = <2 2>;
- + interrupt-parent = <&gpiof>;
- + interrupt-controller;
- + touchscreen-size-x = <480>;
- + touchscreen-size-y = <800>;
- + status = "okay";
- + };
- + touchscreen@38 {
- + compatible = "focaltech,ft6336";
- + reg = <0x38>;
- + interrupts = <2 2>;
- + interrupt-parent = <&gpiof>;
- + interrupt-controller;
- + touchscreen-size-x = <480>;
- + touchscreen-size-y = <800>;
- + status = "okay";
- + };
- +
- +
- +};
- +
- +&i2c2{
- + pinctrl-names = "default", "sleep";
- + pinctrl-0 = <&i2c2_pins_mx &i2c2_pins_z_mx>;
- + pinctrl-1 = <&i2c2_sleep_pins_mx &i2c2_sleep_pins_z_mx>;
- + status = "okay";
- +
- +
- +
- + i2c-scl-rising-time-ns = <185>;
- + i2c-scl-falling-time-ns = <20>;
- +
- + /delete-property/dmas;
- + /delete-property/dma-names;
- +
- + ov5640: camera@3c {
- + compatible = "ovti,ov5640";
- + reg = <0x3c>;
- + clocks = <&clk_ext_camera>;
- + clock-names = "xclk";
- + DOVDD-supply = <&v3v3>;
- + //powerdown-gpios = <&stmfx_pinctrl 18 (GPIO_ACTIVE_HIGH | GPIO_PUSH_PULL)>;
- + //reset-gpios = <&stmfx_pinctrl 19 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
- + //powerdown-gpios = <&gpioc 3 GPIO_ACTIVE_HIGH>; //custom
- + //reset-gpios = <&gpioa 14 GPIO_ACTIVE_LOW>; //custom
- + rotation = <180>;
- + status = "okay";
- +
- + port {
- + ov5640_0: endpoint {
- + remote-endpoint = <&dcmi_0>;
- + bus-width = <8>;
- + data-shift = <2>; /* lines 9:2 are used */
- + hsync-active = <0>;
- + vsync-active = <0>;
- + pclk-sample = <1>;
- + pclk-max-frequency = <77000000>;
- + };
- + };
- + };
- +
- +
- +};
- +
- +&i2c4{
- + u-boot,dm-pre-reloc;
- + pinctrl-names = "default", "sleep";
- + pinctrl-0 = <&i2c4_pins_z_mx>;
- + pinctrl-1 = <&i2c4_sleep_pins_z_mx>;
- + status = "okay";
- +
- +
- + i2c-scl-rising-time-ns = <185>;
- + i2c-scl-falling-time-ns = <20>;
- + /delete-property/dmas;
- + /delete-property/dma-names;
- +
- + typec: stusb1600@28 {
- + compatible = "st,stusb1600";
- + reg = <0x28>;
- + interrupt-parent = <&gpioe>;
- + interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
- + pinctrl-0 = <&stusb1600_pins_a>;
- + pinctrl-names = "default";
- + status = "okay";
- +
- + typec_con: connector {
- + compatible = "usb-c-connector";
- + label = "USB-C";
- + power-role = "dual";
- + power-opmode = "default";
- + };
- + };
- +
- + pmic: stpmic@33 {
- + compatible = "st,stpmic1";
- + reg = <0x33>;
- + interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>;
- + interrupt-controller;
- + #interrupt-cells = <2>;
- + status = "okay";
- +
- + st,main-control-register = <0x04>;
- + st,vin-control-register = <0xc0>;
- + st,usb-control-register = <0x20>;
- +
- + regulators {
- + compatible = "st,stpmic1-regulators";
- +
- + ldo1-supply = <&v3v3>;
- + ldo3-supply = <&vdd_ddr>;
- + ldo6-supply = <&v3v3>;
- + pwr_sw1-supply = <&bst_out>;
- + pwr_sw2-supply = <&bst_out>;
- +
- + vddcore: buck1 {
- + regulator-name = "vddcore";
- + regulator-min-microvolt = <1200000>;
- + regulator-max-microvolt = <1350000>;
- + regulator-always-on;
- + regulator-initial-mode = <0>;
- + regulator-over-current-protection;
- + };
- +
- + vdd_ddr: buck2 {
- + regulator-name = "vdd_ddr";
- + regulator-min-microvolt = <1350000>;
- + regulator-max-microvolt = <1350000>;
- + regulator-always-on;
- + regulator-initial-mode = <0>;
- + regulator-over-current-protection;
- + };
- +
- + vdd: buck3 {
- + regulator-name = "vdd";
- + regulator-min-microvolt = <3300000>;
- + regulator-max-microvolt = <3300000>;
- + regulator-always-on;
- + st,mask-reset;
- + regulator-initial-mode = <0>;
- + regulator-over-current-protection;
- + };
- +
- + v3v3: buck4 {
- + regulator-name = "v3v3";
- + regulator-min-microvolt = <3300000>;
- + regulator-max-microvolt = <3300000>;
- + regulator-always-on;
- + regulator-over-current-protection;
- + regulator-initial-mode = <0>;
- + };
- +
- + v1v8_audio: ldo1 {
- + regulator-name = "v1v8_audio";
- + regulator-min-microvolt = <1800000>;
- + regulator-max-microvolt = <1800000>;
- + regulator-always-on;
- + interrupts = <IT_CURLIM_LDO1 0>;
- +
- + };
- +
- + v3v3_hdmi: ldo2 {
- + regulator-name = "v3v3_hdmi";
- + regulator-min-microvolt = <3300000>;
- + regulator-max-microvolt = <3300000>;
- + regulator-always-on;
- + interrupts = <IT_CURLIM_LDO2 0>;
- +
- + };
- +
- + vtt_ddr: ldo3 {
- + regulator-name = "vtt_ddr";
- + regulator-min-microvolt = <500000>;
- + regulator-max-microvolt = <750000>;
- + regulator-always-on;
- + regulator-over-current-protection;
- + };
- +
- + vdd_usb: ldo4 {
- + regulator-name = "vdd_usb";
- + regulator-min-microvolt = <3300000>;
- + regulator-max-microvolt = <3300000>;
- + interrupts = <IT_CURLIM_LDO4 0>;
- + };
- +
- + v3v3_eth: ldo5 { //custom
- + regulator-name = "v3v3_eth";
- + regulator-min-microvolt = <3300000>;
- + regulator-max-microvolt = <3300000>;
- + interrupts = <IT_CURLIM_LDO5 0>;
- + regulator-boot-on;
- + };
- +
- + v3v3_dsi: ldo6 { //custom
- + regulator-name = "v3v3_dsi";
- + regulator-min-microvolt = <3300000>;
- + regulator-max-microvolt = <3300000>;
- + regulator-always-on;
- + interrupts = <IT_CURLIM_LDO6 0>;
- +
- + };
- +
- + vref_ddr: vref_ddr {
- + regulator-name = "vref_ddr";
- + regulator-always-on;
- + regulator-over-current-protection;
- + };
- +
- + bst_out: boost {
- + regulator-name = "bst_out";
- + interrupts = <IT_OCP_BOOST 0>;
- + regulator-always-on; //custom
- + };
- +
- + vbus_otg: pwr_sw1 {
- + regulator-name = "vbus_otg";
- + interrupts = <IT_OCP_OTG 0>;
- + regulator-active-discharge;
- + regulator-always-on; //custom
- + };
- +
- + vbus_sw: pwr_sw2 {
- + regulator-name = "vbus_sw";
- + interrupts = <IT_OCP_SWOUT 0>;
- + regulator-active-discharge;
- + regulator-always-on; //custom
- + };
- + };
- +
- + onkey {
- + compatible = "st,stpmic1-onkey";
- + interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
- + interrupt-names = "onkey-falling", "onkey-rising";
- + status = "okay";
- + };
- +
- + watchdog {
- + compatible = "st,stpmic1-wdt";
- + status = "disabled";
- + };
- + };
- +
- +};
- +
- +&i2s2{
- + pinctrl-names = "default", "sleep";
- + pinctrl-0 = <&i2s2_pins_mx>;
- + pinctrl-1 = <&i2s2_sleep_pins_mx>;
- + status = "okay";
- +
- +
- +
- +};
- +
- +&ipcc{
- + status = "okay";
- +
- +
- +
- +};
- +
- +&iwdg2{
- + status = "okay";
- +
- +
- + timeout-sec = <32>;
- +
- +};
- +
- +<dc{
- + pinctrl-names = "default", "sleep";
- + pinctrl-0 = <<dc_pins_mx>;
- + pinctrl-1 = <<dc_sleep_pins_mx>;
- + status = "okay";
- +
- +
- +
- + port {
- + #address-cells = <1>;
- + #size-cells = <0>;
- +
- + ltdc_ep1_out: endpoint@1 {
- + reg = <1>;
- + remote-endpoint = <&dsi_in>;
- + };
- + };
- +
- +
- +
- +};
- +
- +&pwr{
- + status = "okay";
- +
- +
- + pwr-regulators {
- + vdd-supply = <&vdd>;
- + vdd_3v3_usbfs-supply = <&vdd_usb>;
- + };
- +
- +};
- +
- +&rcc{
- + u-boot,dm-pre-reloc;
- + status = "okay";
- +
- +
- +
- +};
- +
- +&rng1{
- + status = "okay";
- +
- +
- +
- +};
- +
- +&rtc{
- + status = "okay";
- +
- +
- + st,lsco = <RTC_OUT2_RMP>;
- +
- +};
- +
- +&sdmmc1{
- + u-boot,dm-pre-reloc;
- + pinctrl-names = "default", "opendrain", "sleep";
- + pinctrl-0 = <&sdmmc1_pins_mx>;
- + pinctrl-1 = <&sdmmc1_opendrain_pins_mx>;
- + pinctrl-2 = <&sdmmc1_sleep_pins_mx>;
- + status = "okay";
- +
- +
- + broken-cd;
- + st,neg-edge;
- + bus-width = <4>;
- + vmmc-supply = <&v3v3>;
- +
- +};
- +
- +&sdmmc2{
- + u-boot,dm-pre-reloc;
- + pinctrl-names = "default", "opendrain", "sleep";
- + pinctrl-0 = <&sdmmc2_pins_mx>;
- + pinctrl-1 = <&sdmmc2_opendrain_pins_mx>;
- + pinctrl-2 = <&sdmmc2_sleep_pins_mx>;
- + status = "okay";
- +
- +
- + non-removable;
- + no-sd;
- + no-sdio;
- + st,neg-edge;
- + bus-width = <8>;
- + vmmc-supply = <&v3v3>;
- + vqmmc-supply = <&v3v3>;
- + mmc-ddr-3_3v;
- +
- +
- +};
- +
- +&sdmmc3{
- + u-boot,dm-pre-reloc;
- + pinctrl-names = "default", "opendrain", "sleep";
- + pinctrl-0 = <&sdmmc3_pins_mx>;
- + pinctrl-1 = <&sdmmc3_opendrain_pins_mx>;
- + pinctrl-2 = <&sdmmc3_sleep_pins_mx>;
- + //status = "okay";
- +
- +
- + arm,primecell-periphid = <0x10153180>;
- + non-removable;
- + st,neg-edge;
- + bus-width = <4>;
- + vmmc-supply = <&v3v3>;
- + //mmc-pwrseq = <&wifi_pwrseq>; //messes up sdmmc alias shifting when used
- + #address-cells = <1>;
- + #size-cells = <0>;
- + keep-power-in-suspend;
- + //status = "okay";
- +
- + brcmf: bcrmf@1 {
- + reg = <1>;
- + compatible = "brcm,bcm4329-fmac";
- + };
- +
- +
- +};
- +
- +&tamp{
- + status = "okay";
- +
- +
- +
- +};
- +
- +&uart4{
- + u-boot,dm-pre-reloc;
- + pinctrl-names = "default", "sleep";
- + pinctrl-0 = <&uart4_pins_mx>;
- + pinctrl-1 = <&uart4_sleep_pins_mx>;
- + status = "okay";
- +
- +
- +
- +};
- +
- +&usart2{
- + pinctrl-names = "default", "sleep";
- + pinctrl-0 = <&usart2_pins_mx>;
- + pinctrl-1 = <&usart2_sleep_pins_mx>;
- + status = "okay";
- +
- +
- + bluetooth {
- + shutdown-gpios = <&gpioe 10 GPIO_ACTIVE_HIGH>;
- + compatible = "brcm,bcm43438-bt";
- + max-speed = <3000000>;
- + };
- +
- +};
- +
- +
- +&m4_rproc {
- +memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
- + <&vdev0vring1>, <&vdev0buffer>;
- +};
- +
- +&dma1 {
- + sram = <&dma_pool>;
- +};
- +
- +&dma2 {
- + sram = <&dma_pool>;
- +};
- +
- +&adc {
- + status = "disabled";
- +};
- +
- +
- +&usbh_ehci {
- + phys = <&usbphyc_port0>;
- + phy-names = "usb";
- + status = "okay";
- +};
- +
- +&usbotg_hs {
- + extcon = <&typec>;
- + phys = <&usbphyc_port1 0>;
- + phy-names = "usb2-phy";
- + status = "okay";
- +};
- +
- +&usbphyc {
- + vdd3v3-supply = <&vdd_usb>;
- + status = "okay";
- +};
- +
- +&usbphyc_port0 {
- + st,phy-tuning = <&usb_phy_tuning>;
- +};
- +
- +&usbphyc_port1 {
- + st,phy-tuning = <&usb_phy_tuning>;
- +};
- diff --git a/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi b/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi
- new file mode 100644
- index 0000000000..f33886f2b4
- --- /dev/null
- +++ b/arch/arm/dts/stm32mp15-osd32mp1-ddr3-1x4Gb-1066-binG.dtsi
- @@ -0,0 +1,119 @@
- +/*
- + * Copyright (C) 2015-2018, STMicroelectronics - All Rights Reserved
- + *
- + * SPDX-License-Identifier: GPL-2.0+ BSD-3-Clause
- + *
- + */
- +
- +/*
- + * File generated by STMicroelectronics STM32CubeMX DDR Tool for MPUs
- + * DDR type: DDR3 / DDR3L
- + * DDR width: 16bits
- + * DDR density: 4Gb
- + * System frequency: 533000Khz
- + * Relaxed Timing Mode: false
- + * Address mapping type: RBC
- + *
- + * Save Date: 2020.02.08, save Time: 23:22:33
- + */
- +
- +#define DDR_MEM_NAME "DDR3-DDR3L 16bits 533000Khz"
- +#define DDR_MEM_SPEED 533000
- +#define DDR_MEM_SIZE 0x20000000
- +
- +#define DDR_MSTR 0x00041401
- +#define DDR_MRCTRL0 0x00000010
- +#define DDR_MRCTRL1 0x00000000
- +#define DDR_DERATEEN 0x00000000
- +#define DDR_DERATEINT 0x00800000
- +#define DDR_PWRCTL 0x00000000
- +#define DDR_PWRTMG 0x00400010
- +#define DDR_HWLPCTL 0x00000000
- +#define DDR_RFSHCTL0 0x00210000
- +#define DDR_RFSHCTL3 0x00000000
- +#define DDR_RFSHTMG 0x0081008B
- +#define DDR_CRCPARCTL0 0x00000000
- +#define DDR_DRAMTMG0 0x121B2414
- +#define DDR_DRAMTMG1 0x000A041C
- +#define DDR_DRAMTMG2 0x0608090F
- +#define DDR_DRAMTMG3 0x0050400C
- +#define DDR_DRAMTMG4 0x08040608
- +#define DDR_DRAMTMG5 0x06060403
- +#define DDR_DRAMTMG6 0x02020002
- +#define DDR_DRAMTMG7 0x00000202
- +#define DDR_DRAMTMG8 0x00001005
- +#define DDR_DRAMTMG14 0x000000A0
- +#define DDR_ZQCTL0 0xC2000040
- +#define DDR_DFITMG0 0x02060105
- +#define DDR_DFITMG1 0x00000202
- +#define DDR_DFILPCFG0 0x07000000
- +#define DDR_DFIUPD0 0xC0400003
- +#define DDR_DFIUPD1 0x00000000
- +#define DDR_DFIUPD2 0x00000000
- +#define DDR_DFIPHYMSTR 0x00000000
- +#define DDR_ODTCFG 0x06000600
- +#define DDR_ODTMAP 0x00000001
- +#define DDR_SCHED 0x00000C01
- +#define DDR_SCHED1 0x00000000
- +#define DDR_PERFHPR1 0x01000001
- +#define DDR_PERFLPR1 0x08000200
- +#define DDR_PERFWR1 0x08000400
- +#define DDR_DBG0 0x00000000
- +#define DDR_DBG1 0x00000000
- +#define DDR_DBGCMD 0x00000000
- +#define DDR_POISONCFG 0x00000000
- +#define DDR_PCCFG 0x00000010
- +#define DDR_PCFGR_0 0x00010000
- +#define DDR_PCFGW_0 0x00000000
- +#define DDR_PCFGQOS0_0 0x02100C03
- +#define DDR_PCFGQOS1_0 0x00800100
- +#define DDR_PCFGWQOS0_0 0x01100C03
- +#define DDR_PCFGWQOS1_0 0x01000200
- +#define DDR_PCFGR_1 0x00010000
- +#define DDR_PCFGW_1 0x00000000
- +#define DDR_PCFGQOS0_1 0x02100C03
- +#define DDR_PCFGQOS1_1 0x00800040
- +#define DDR_PCFGWQOS0_1 0x01100C03
- +#define DDR_PCFGWQOS1_1 0x01000200
- +#define DDR_ADDRMAP1 0x00070707
- +#define DDR_ADDRMAP2 0x00000000
- +#define DDR_ADDRMAP3 0x1F000000
- +#define DDR_ADDRMAP4 0x00001F1F
- +#define DDR_ADDRMAP5 0x06060606
- +#define DDR_ADDRMAP6 0x0F060606
- +#define DDR_ADDRMAP9 0x00000000
- +#define DDR_ADDRMAP10 0x00000000
- +#define DDR_ADDRMAP11 0x00000000
- +#define DDR_PGCR 0x01442E02
- +#define DDR_PTR0 0x0022AA5B
- +#define DDR_PTR1 0x04841104
- +#define DDR_PTR2 0x042DA068
- +#define DDR_ACIOCR 0x10400812
- +#define DDR_DXCCR 0x00000C40
- +#define DDR_DSGCR 0xF200011F
- +#define DDR_DCR 0x0000000B
- +#define DDR_DTPR0 0x38D488D0
- +#define DDR_DTPR1 0x098B00D8
- +#define DDR_DTPR2 0x10023600
- +#define DDR_MR0 0x00000840
- +#define DDR_MR1 0x00000000
- +#define DDR_MR2 0x00000208
- +#define DDR_MR3 0x00000000
- +#define DDR_ODTCR 0x00010000
- +#define DDR_ZQ0CR1 0x00000038
- +#define DDR_DX0GCR 0x0000CE81
- +#define DDR_DX0DLLCR 0x40000000
- +#define DDR_DX0DQTR 0xFFFFFFFF
- +#define DDR_DX0DQSTR 0x3DB02000
- +#define DDR_DX1GCR 0x0000CE81
- +#define DDR_DX1DLLCR 0x40000000
- +#define DDR_DX1DQTR 0xFFFFFFFF
- +#define DDR_DX1DQSTR 0x3DB02000
- +#define DDR_DX2GCR 0x0000CE80
- +#define DDR_DX2DLLCR 0x40000000
- +#define DDR_DX2DQTR 0xFFFFFFFF
- +#define DDR_DX2DQSTR 0x3DB02000
- +#define DDR_DX3GCR 0x0000CE80
- +#define DDR_DX3DLLCR 0x40000000
- +#define DDR_DX3DQTR 0xFFFFFFFF
- +#define DDR_DX3DQSTR 0x3DB02000
- diff --git a/arch/arm/dts/stm32mp157c.dtsi b/arch/arm/dts/stm32mp157c.dtsi
- index 80081dde4e..0463e8813c 100644
- --- a/arch/arm/dts/stm32mp157c.dtsi
- +++ b/arch/arm/dts/stm32mp157c.dtsi
- @@ -1775,10 +1775,14 @@
- clock-names = "stmmaceth",
- "mac-clk-tx",
- "mac-clk-rx",
- + "eth-ck", //custom
- + "syscfg-clk", //custom
- "ethstp";
- clocks = <&rcc ETHMAC>,
- <&rcc ETHTX>,
- <&rcc ETHRX>,
- + <&rcc ETHCK_K>, //custom
- + <&rcc SYSCFG>, //custom
- <&rcc ETHSTP>;
- st,syscon = <&syscfg 0x4>;
- snps,mixed-burst;
- --
- 2.25.1
|