From bb83031bcca4f234206cc428cb9c79d9ec652ba6 Mon Sep 17 00:00:00 2001 From: Lionel Vitte Date: Mon, 18 Oct 2021 17:14:59 +0200 Subject: [PATCH 10/11] ARM v2020.10-stm32mp-r2 DEVICETREE --- arch/arm/dts/stm32f746.dtsi | 4 +++ arch/arm/dts/stm32h743.dtsi | 4 +++ arch/arm/dts/stm32mp15-m4-srm.dtsi | 8 +++++- arch/arm/dts/stm32mp15-no-scmi.dtsi | 8 ++---- arch/arm/dts/stm32mp15-pinctrl.dtsi | 4 +-- arch/arm/dts/stm32mp151.dtsi | 35 ++++++++++++++++-------- arch/arm/dts/stm32mp157a-dk1-u-boot.dtsi | 4 +-- arch/arm/dts/stm32mp157a-dk1.dts | 6 ---- arch/arm/dts/stm32mp157a-ed1-u-boot.dtsi | 4 +-- arch/arm/dts/stm32mp157a-ev1.dts | 5 ---- arch/arm/dts/stm32mp157c-dk2.dts | 3 -- arch/arm/dts/stm32mp157c-ev1.dts | 5 ---- arch/arm/dts/stm32mp157d-dk1.dts | 6 ---- arch/arm/dts/stm32mp157d-ev1.dts | 5 ---- arch/arm/dts/stm32mp157f-dk2.dts | 3 -- arch/arm/dts/stm32mp157f-ev1.dts | 5 ---- arch/arm/dts/stm32mp15xx-dkx.dtsi | 23 ++++++++++++++-- arch/arm/dts/stm32mp15xx-edx.dtsi | 8 +++++- arch/arm/dts/stm32mp15xx-evx.dtsi | 12 +++++++- 19 files changed, 85 insertions(+), 67 deletions(-) diff --git a/arch/arm/dts/stm32f746.dtsi b/arch/arm/dts/stm32f746.dtsi index 3f312ab3a7..c32d2a81f1 100644 --- a/arch/arm/dts/stm32f746.dtsi +++ b/arch/arm/dts/stm32f746.dtsi @@ -315,6 +315,7 @@ clocks = <&rcc 1 CLK_I2C1>; #address-cells = <1>; #size-cells = <0>; + i2c-analog-filter; status = "disabled"; }; @@ -327,6 +328,7 @@ clocks = <&rcc 1 CLK_I2C2>; #address-cells = <1>; #size-cells = <0>; + i2c-analog-filter; status = "disabled"; }; @@ -339,6 +341,7 @@ clocks = <&rcc 1 CLK_I2C3>; #address-cells = <1>; #size-cells = <0>; + i2c-analog-filter; status = "disabled"; }; @@ -351,6 +354,7 @@ clocks = <&rcc 1 CLK_I2C4>; #address-cells = <1>; #size-cells = <0>; + i2c-analog-filter; status = "disabled"; }; diff --git a/arch/arm/dts/stm32h743.dtsi b/arch/arm/dts/stm32h743.dtsi index 4b4e7a99f7..5964f7b238 100644 --- a/arch/arm/dts/stm32h743.dtsi +++ b/arch/arm/dts/stm32h743.dtsi @@ -106,6 +106,7 @@ <32>; resets = <&rcc STM32H7_APB1L_RESET(I2C1)>; clocks = <&rcc I2C1_CK>; + i2c-analog-filter; status = "disabled"; }; @@ -118,6 +119,7 @@ <34>; resets = <&rcc STM32H7_APB1L_RESET(I2C2)>; clocks = <&rcc I2C2_CK>; + i2c-analog-filter; status = "disabled"; }; @@ -130,6 +132,7 @@ <73>; resets = <&rcc STM32H7_APB1L_RESET(I2C3)>; clocks = <&rcc I2C3_CK>; + i2c-analog-filter; status = "disabled"; }; @@ -349,6 +352,7 @@ <96>; resets = <&rcc STM32H7_APB4_RESET(I2C4)>; clocks = <&rcc I2C4_CK>; + i2c-analog-filter; status = "disabled"; }; diff --git a/arch/arm/dts/stm32mp15-m4-srm.dtsi b/arch/arm/dts/stm32mp15-m4-srm.dtsi index 60454aee41..3162c35950 100644 --- a/arch/arm/dts/stm32mp15-m4-srm.dtsi +++ b/arch/arm/dts/stm32mp15-m4-srm.dtsi @@ -177,7 +177,7 @@ reg = <0x40016000 0x400>; interrupt-parent = <&exti>; interrupts = <69 1>; - clocks = <&rcc CEC_K>, <&scmi0_clk CK_SCMI0_LSE>; + clocks = <&rcc CEC_K>, <&rcc CEC>; clock-names = "cec", "hdmi-cec"; status = "disabled"; }; @@ -415,6 +415,12 @@ clocks = <&rcc SAI4_K>; clock-names = "sai_ck"; status = "disabled"; + }; + m4_fmc: memory-controller@58002000 { + compatible = "rproc-srm-dev"; + reg = <0x5800200 0x1000>; + clocks = <&rcc FMC_K>; + status = "disabled"; }; m4_qspi: qspi@58003000 { compatible = "rproc-srm-dev"; diff --git a/arch/arm/dts/stm32mp15-no-scmi.dtsi b/arch/arm/dts/stm32mp15-no-scmi.dtsi index 94a10b86a1..c7d2d7c8f5 100644 --- a/arch/arm/dts/stm32mp15-no-scmi.dtsi +++ b/arch/arm/dts/stm32mp15-no-scmi.dtsi @@ -79,10 +79,6 @@ resets = <&rcc MCU_R>, <&rcc MCU_HOLD_BOOT_R>; m4_system_resources { - m4_cec: cec@40016000 { - clocks = <&rcc CEC_K>, <&rcc CK_LSE>; - }; - m4_m_can1: can@4400e000 { clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>; }; @@ -101,8 +97,8 @@ /delete-node/ sram@2ffff000; }; -&cec { - clocks = <&rcc CEC_K>, <&clk_lse>; +&bsec { + clocks = <&rcc BSEC>; }; &gpioz { diff --git a/arch/arm/dts/stm32mp15-pinctrl.dtsi b/arch/arm/dts/stm32mp15-pinctrl.dtsi index a0b76e238c..236d77e09c 100644 --- a/arch/arm/dts/stm32mp15-pinctrl.dtsi +++ b/arch/arm/dts/stm32mp15-pinctrl.dtsi @@ -1937,7 +1937,7 @@ ; /* USART2_RTS */ bias-disable; drive-push-pull; - slew-rate = <3>; + slew-rate = <0>; }; pins2 { pinmux = , /* USART2_RX */ @@ -1955,7 +1955,7 @@ pinmux = ; /* USART2_RTS */ bias-disable; drive-push-pull; - slew-rate = <3>; + slew-rate = <0>; }; pins3 { pinmux = ; /* USART2_RX */ diff --git a/arch/arm/dts/stm32mp151.dtsi b/arch/arm/dts/stm32mp151.dtsi index ca71139f3a..ab5723c472 100644 --- a/arch/arm/dts/stm32mp151.dtsi +++ b/arch/arm/dts/stm32mp151.dtsi @@ -647,7 +647,7 @@ compatible = "st,stm32-cec"; reg = <0x40016000 0x400>; interrupts = ; - clocks = <&rcc CEC_K>, <&scmi0_clk CK_SCMI0_LSE>; + clocks = <&rcc CEC_K>, <&rcc CEC>; clock-names = "cec", "hdmi-cec"; status = "disabled"; }; @@ -1181,6 +1181,8 @@ interrupts = <1>; dmas = <&dmamux1 10 0x400 0x80000001>; dma-names = "rx"; + nvmem-cells = <&vrefint>; + nvmem-cell-names = "vrefint"; status = "disabled"; }; }; @@ -1212,6 +1214,7 @@ g-np-tx-fifo-size = <32>; g-tx-fifo-size = <256 16 16 16 16 16 16 16>; dr_mode = "otg"; + otg-rev = <0x200>; usb33d-supply = <&usb33>; power-domains = <&pd_core>; wakeup-source; @@ -1266,6 +1269,7 @@ <&scmi0_clk CK_SCMI0_CSI>, <&scmi0_clk CK_SCMI0_LSE>, <&scmi0_clk CK_SCMI0_LSI>; + clocks-boot-on = ; }; pwr_regulators: pwr@50001000 { @@ -1574,8 +1578,8 @@ reg = <0x58003000 0x1000>, <0x70000000 0x10000000>; reg-names = "qspi", "qspi_mm"; interrupts = ; - dmas = <&mdma1 22 0x2 0x100002 0x0 0x0 0x0>, - <&mdma1 22 0x2 0x100008 0x0 0x0 0x0>; + dmas = <&mdma1 22 0x2 0x10100002 0x0 0x0 0x0>, + <&mdma1 22 0x2 0x10100008 0x0 0x0 0x0>; dma-names = "tx", "rx"; clocks = <&rcc QSPI_K>; resets = <&rcc QSPI_R>; @@ -1621,12 +1625,6 @@ status = "disabled"; }; - stmmac_axi_config_0: stmmac-axi-config { - snps,wr_osr_lmt = <0x7>; - snps,rd_osr_lmt = <0x7>; - snps,blen = <0 0 0 0 16 8 4>; - }; - ethernet0: ethernet@5800a000 { compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a"; reg = <0x5800a000 0x2000>; @@ -1639,12 +1637,14 @@ "mac-clk-tx", "mac-clk-rx", "eth-ck", - "ethstp"; + "ethstp", + "ptp_ref"; clocks = <&rcc ETHMAC>, <&rcc ETHTX>, <&rcc ETHRX>, <&rcc ETHCK_K>, - <&rcc ETHSTP>; + <&rcc ETHSTP>, + <&rcc ETHPTP_K>; st,syscon = <&syscfg 0x4>; snps,mixed-burst; snps,pbl = <2>; @@ -1653,12 +1653,18 @@ snps,tso; power-domains = <&pd_core>; status = "disabled"; + + stmmac_axi_config_0: stmmac-axi-config { + snps,wr_osr_lmt = <0x7>; + snps,rd_osr_lmt = <0x7>; + snps,blen = <0 0 0 0 16 8 4>; + }; }; usbh_ohci: usbh-ohci@5800c000 { compatible = "generic-ohci"; reg = <0x5800c000 0x1000>; - clocks = <&rcc USBH>; + clocks = <&rcc USBH>, <&usbphyc>; resets = <&rcc USBH_R>; interrupts = ; status = "disabled"; @@ -1728,6 +1734,7 @@ reg = <0x5a007000 0x400>; clocks = <&rcc DDRPERFM>; resets = <&rcc DDRPERFM_R>; + status = "disabled"; }; usart1: serial@5c000000 { @@ -1789,11 +1796,15 @@ bsec: efuse@5c005000 { compatible = "st,stm32mp15-bsec"; reg = <0x5c005000 0x400>; + clocks = <&scmi0_clk CK_SCMI0_BSEC>; #address-cells = <1>; #size-cells = <1>; part_number_otp: part_number_otp@4 { reg = <0x4 0x1>; }; + vrefint: calib@52 { + reg = <0x52 0x2>; + }; ts_cal1: calib@5c { reg = <0x5c 0x2>; }; diff --git a/arch/arm/dts/stm32mp157a-dk1-u-boot.dtsi b/arch/arm/dts/stm32mp157a-dk1-u-boot.dtsi index 8553570642..06267f2917 100644 --- a/arch/arm/dts/stm32mp157a-dk1-u-boot.dtsi +++ b/arch/arm/dts/stm32mp157a-dk1-u-boot.dtsi @@ -18,8 +18,8 @@ u-boot,error-led = "error"; u-boot,mmc-env-partition = "fip"; st,adc_usb_pd = <&adc1 18>, <&adc1 19>; - st,fastboot-gpios = <&gpioa 13 GPIO_ACTIVE_LOW>; - st,stm32prog-gpios = <&gpioa 14 GPIO_ACTIVE_LOW>; + st,fastboot-gpios = <&gpioa 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + st,stm32prog-gpios = <&gpioa 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; }; #ifdef CONFIG_STM32MP15x_STM32IMAGE diff --git a/arch/arm/dts/stm32mp157a-dk1.dts b/arch/arm/dts/stm32mp157a-dk1.dts index f415e581a6..f48207dad5 100644 --- a/arch/arm/dts/stm32mp157a-dk1.dts +++ b/arch/arm/dts/stm32mp157a-dk1.dts @@ -16,12 +16,6 @@ model = "STMicroelectronics STM32MP157A-DK1 Discovery Board"; compatible = "st,stm32mp157a-dk1", "st,stm32mp157"; - aliases { - serial0 = &uart4; - serial1 = &usart3; - serial2 = &uart7; - }; - chosen { stdout-path = "serial0:115200n8"; }; diff --git a/arch/arm/dts/stm32mp157a-ed1-u-boot.dtsi b/arch/arm/dts/stm32mp157a-ed1-u-boot.dtsi index f0761901a6..5b9772a0a9 100644 --- a/arch/arm/dts/stm32mp157a-ed1-u-boot.dtsi +++ b/arch/arm/dts/stm32mp157a-ed1-u-boot.dtsi @@ -18,8 +18,8 @@ u-boot,boot-led = "heartbeat"; u-boot,error-led = "error"; u-boot,mmc-env-partition = "fip"; - st,fastboot-gpios = <&gpioa 13 GPIO_ACTIVE_LOW>; - st,stm32prog-gpios = <&gpioa 14 GPIO_ACTIVE_LOW>; + st,fastboot-gpios = <&gpioa 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + st,stm32prog-gpios = <&gpioa 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; }; led { diff --git a/arch/arm/dts/stm32mp157a-ev1.dts b/arch/arm/dts/stm32mp157a-ev1.dts index 11bd88a82f..85c73a916c 100644 --- a/arch/arm/dts/stm32mp157a-ev1.dts +++ b/arch/arm/dts/stm32mp157a-ev1.dts @@ -15,11 +15,6 @@ chosen { stdout-path = "serial0:115200n8"; }; - - aliases { - serial0 = &uart4; - serial1 = &usart3; - }; }; <dc { diff --git a/arch/arm/dts/stm32mp157c-dk2.dts b/arch/arm/dts/stm32mp157c-dk2.dts index 1c894f288c..53d75e1c25 100644 --- a/arch/arm/dts/stm32mp157c-dk2.dts +++ b/arch/arm/dts/stm32mp157c-dk2.dts @@ -18,9 +18,6 @@ compatible = "st,stm32mp157c-dk2", "st,stm32mp157"; aliases { - serial0 = &uart4; - serial1 = &usart3; - serial2 = &uart7; serial3 = &usart2; }; diff --git a/arch/arm/dts/stm32mp157c-ev1.dts b/arch/arm/dts/stm32mp157c-ev1.dts index e84897ef44..3dd1244121 100644 --- a/arch/arm/dts/stm32mp157c-ev1.dts +++ b/arch/arm/dts/stm32mp157c-ev1.dts @@ -15,11 +15,6 @@ chosen { stdout-path = "serial0:115200n8"; }; - - aliases { - serial0 = &uart4; - serial1 = &usart3; - }; }; <dc { diff --git a/arch/arm/dts/stm32mp157d-dk1.dts b/arch/arm/dts/stm32mp157d-dk1.dts index bcc012cfff..d54dcf16a7 100644 --- a/arch/arm/dts/stm32mp157d-dk1.dts +++ b/arch/arm/dts/stm32mp157d-dk1.dts @@ -16,12 +16,6 @@ model = "STMicroelectronics STM32MP157D-DK1 Discovery Board"; compatible = "st,stm32mp157d-dk1", "st,stm32mp157"; - aliases { - serial0 = &uart4; - serial1 = &usart3; - serial2 = &uart7; - }; - chosen { stdout-path = "serial0:115200n8"; }; diff --git a/arch/arm/dts/stm32mp157d-ev1.dts b/arch/arm/dts/stm32mp157d-ev1.dts index 5cb08c7079..dbb2b3e059 100644 --- a/arch/arm/dts/stm32mp157d-ev1.dts +++ b/arch/arm/dts/stm32mp157d-ev1.dts @@ -15,11 +15,6 @@ chosen { stdout-path = "serial0:115200n8"; }; - - aliases { - serial0 = &uart4; - serial1 = &usart3; - }; }; <dc { diff --git a/arch/arm/dts/stm32mp157f-dk2.dts b/arch/arm/dts/stm32mp157f-dk2.dts index 15a397c4cf..1244ae1841 100644 --- a/arch/arm/dts/stm32mp157f-dk2.dts +++ b/arch/arm/dts/stm32mp157f-dk2.dts @@ -18,9 +18,6 @@ compatible = "st,stm32mp157f-dk2", "st,stm32mp157"; aliases { - serial0 = &uart4; - serial1 = &usart3; - serial2 = &uart7; serial3 = &usart2; }; diff --git a/arch/arm/dts/stm32mp157f-ev1.dts b/arch/arm/dts/stm32mp157f-ev1.dts index 6fe600f813..0ef17cdc63 100644 --- a/arch/arm/dts/stm32mp157f-ev1.dts +++ b/arch/arm/dts/stm32mp157f-ev1.dts @@ -16,11 +16,6 @@ chosen { stdout-path = "serial0:115200n8"; }; - - aliases { - serial0 = &uart4; - serial1 = &usart3; - }; }; <dc { diff --git a/arch/arm/dts/stm32mp15xx-dkx.dtsi b/arch/arm/dts/stm32mp15xx-dkx.dtsi index acff8755d3..884c538fcb 100644 --- a/arch/arm/dts/stm32mp15xx-dkx.dtsi +++ b/arch/arm/dts/stm32mp15xx-dkx.dtsi @@ -12,6 +12,9 @@ / { aliases { ethernet0 = ðernet0; + serial0 = &uart4; + serial1 = &usart3; + serial2 = &uart7; }; memory@c0000000 { @@ -48,6 +51,12 @@ no-map; }; + mcu_rsc_table: mcu_rsc_table@10048000 { + compatible = "shared-dma-pool"; + reg = <0x10048000 0x8000>; + no-map; + }; + mcuram: mcuram@30000000 { compatible = "shared-dma-pool"; reg = <0x30000000 0x40000>; @@ -284,7 +293,7 @@ stusb1600@28 { compatible = "st,stusb1600"; reg = <0x28>; - interrupts = <11 IRQ_TYPE_EDGE_FALLING>; + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&gpioi>; pinctrl-names = "default"; pinctrl-0 = <&stusb1600_pins_a>; @@ -505,7 +514,7 @@ &m4_rproc { memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, - <&vdev0vring1>, <&vdev0buffer>; + <&vdev0vring1>, <&vdev0buffer>, <&mcu_rsc_table>; mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; mbox-names = "vq0", "vq1", "shutdown"; interrupt-parent = <&exti>; @@ -755,6 +764,16 @@ &usbphyc_port0 { phy-supply = <&vdd_usb>; st,phy-tuning = <&usb_phy_tuning>; + + /* + * Hack to keep hub active until all connected devices are suspended + * otherwise the hub will be powered off as soon as the v3v3 is disabled + * and it can disturb connected devices. + */ + connector { + compatible = "usb-a-connector"; + vbus-supply = <&v3v3>; + }; }; &usbphyc_port1 { diff --git a/arch/arm/dts/stm32mp15xx-edx.dtsi b/arch/arm/dts/stm32mp15xx-edx.dtsi index 3662f449de..817982009c 100644 --- a/arch/arm/dts/stm32mp15xx-edx.dtsi +++ b/arch/arm/dts/stm32mp15xx-edx.dtsi @@ -44,6 +44,12 @@ no-map; }; + mcu_rsc_table: mcu_rsc_table@10048000 { + compatible = "shared-dma-pool"; + reg = <0x10048000 0x8000>; + no-map; + }; + mcuram: mcuram@30000000 { compatible = "shared-dma-pool"; reg = <0x30000000 0x40000>; @@ -315,7 +321,7 @@ &m4_rproc { memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, - <&vdev0vring1>, <&vdev0buffer>; + <&vdev0vring1>, <&vdev0buffer>, <&mcu_rsc_table>; mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; mbox-names = "vq0", "vq1", "shutdown"; interrupt-parent = <&exti>; diff --git a/arch/arm/dts/stm32mp15xx-evx.dtsi b/arch/arm/dts/stm32mp15xx-evx.dtsi index 47a2c8e5ea..a7589d9d73 100644 --- a/arch/arm/dts/stm32mp15xx-evx.dtsi +++ b/arch/arm/dts/stm32mp15xx-evx.dtsi @@ -10,6 +10,7 @@ / { aliases { ethernet0 = ðernet0; + serial1 = &usart3; }; clocks { @@ -678,7 +679,16 @@ &usbphyc_port0 { st,phy-tuning = <&usb_phy_tuning>; - vbus-supply = <&vbus_sw>; + + /* + * Hack to keep hub active until all connected devices are suspended + * otherwise the hub will be powered off as soon as the v3v3 is disabled + * and it can disturb connected devices. + */ + connector { + compatible = "usb-a-connector"; + vbus-supply = <&v3v3>; + }; }; &usbphyc_port1 { -- 2.25.1