mirror of https://gitee.com/openkylin/linux.git
STM32 DT updates for v5.2, round 1
Highlights: ---------- MPU part: -Add initial support of stm32mp157a-dk1 board: This board embeds a STM32MP157a SOC with AC package (TFBGA361, 148 ios) and 512MB of DDR3. Several connections are available on this boards: 4*USB2.0, 1*USB2.0 typeC, SDcard, RJ45, HDMI, Arduino connector, ... -Add initial support of stm32mp157c-dk2 board: This board is a "super-set" of stm32mp157a-dk1. It embeds a STM32MP157c SOC with AC package (TFBGA361, 148 ios) and 512MB of DDR3. Same connections than stm32mp157a-dk1 board are available. Display panel (otm8009a) and Murata wifi/BT combo is added. -Add and enable SD card support (MMCI variant) on stm32mp157c-ed1/ev1 and on stm32mp157a-dk1/dk2 boards. -Add and enable PMIC support (STPMIC1 chip) on stm32mp157c-ed1/ev1 and on stm32mp157a-dk1/dk2 boards. -Add and enable IPCC mailbox support on stm32mp157c-ed1/ev1 and on stm32mp157a-dk1/dk2 boards. -Add sysconfig clock support on stm32mp157c. -Add romem and temperature calibration support on stm32mp157c. -Add SPDIFRX support on stm32mp157c. -Enable CEC on stm32mp157a-dk1/dk2. MCU part: -Add and enable SD card support (MMCI variant) on stm32h743 eval and disco boards. -Add romem and temperature calibration support on stm32f429 (and so stm32f469). -Enable stm32f769 clock driver -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJcrzgEAAoJEH+ayWryHnCFhDMP/iRTr5Wcsj21zwv7vi4ntuCR jkJ3820EGx2kVdxeNuCfMGwZKnCVefqca3AsjAgoD9FskUzdi82JQ2Tdl8B4MxFQ lDuySiQs+7kkJuXccnOppz+ZcQRj3Ff0I5GlS3tvlAn1Ld6JqhBVEQ6DY6R8XBFx ICkpoPKCpjkeZliOejNU7syY0vFrUoSjMz9tMncFJ8DkuioYISHNlj4f5P+MpWRZ g8dbavXfQi/41yRH9KIvQiEy5ko5uDJxCac+JL7bkF522UJG93rEGn4K66JjYRX/ /vZ5ktE8oA6GUidPSbz/ETqlAwUQgzMFtI4mZo/lYjnf4bJ0VDJA0PEZmQn4RSb1 0JOiKROK6x/OPlDZ5qgrmtyW9HGEwWBl3UnmE8nrOA6tlqVICs7eK6meZuON/bBI 0xZiw6LQ5/ceiV2Lgpl8+n8tW8Plz9eRwDHvYKiBIxIqkY0j4U2tB6uggIfBjO1a zLVE82ukIWN2brv5kZmf0cR0eLRrITetCMsQJnCUOhZpqbOcRq5WaUtrWqAiPI17 PBNv4UxyRwC4QjcslLBNPdYuoSyrFBw6ByOovsSde7TK3J0tuNAHa4JJULyjFTw+ YOTJz5a+One/weflamNb+FSzSW+lzcMiXjsMMU3z70CfdOqAxXE8l1/4Peg0hD/f OKyq8WL/agAlfr1zgaj2 =k9wQ -----END PGP SIGNATURE----- Merge tag 'stm32-dt-for-v5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into arm/dt STM32 DT updates for v5.2, round 1 Highlights: ---------- MPU part: - Add initial support of stm32mp157a-dk1 board: This board embeds a STM32MP157a SOC with AC package (TFBGA361, 148 ios) and 512MB of DDR3. Several connections are available on this boards: 4*USB2.0, 1*USB2.0 typeC, SDcard, RJ45, HDMI, Arduino connector, ... - Add initial support of stm32mp157c-dk2 board: This board is a "super-set" of stm32mp157a-dk1. It embeds a STM32MP157c SOC with AC package (TFBGA361, 148 ios) and 512MB of DDR3. Same connections than stm32mp157a-dk1 board are available. Display panel (otm8009a) and Murata wifi/BT combo is added. - Add and enable SD card support (MMCI variant) on stm32mp157c-ed1/ev1 and on stm32mp157a-dk1/dk2 boards. - Add and enable PMIC support (STPMIC1 chip) on stm32mp157c-ed1/ev1 and on stm32mp157a-dk1/dk2 boards. - Add and enable IPCC mailbox support on stm32mp157c-ed1/ev1 and on stm32mp157a-dk1/dk2 boards. - Add sysconfig clock support on stm32mp157c. - Add romem and temperature calibration support on stm32mp157c. - Add SPDIFRX support on stm32mp157c. - Enable CEC on stm32mp157a-dk1/dk2. MCU part: - Add and enable SD card support (MMCI variant) on stm32h743 eval and disco boards. - Add romem and temperature calibration support on stm32f429 (and so stm32f469). - Enable stm32f769 clock driver * tag 'stm32-dt-for-v5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32: (24 commits) ARM: dts: stm32: enable cec on stm32mp157a-dk1 board ARM: dts: stm32: add cec pins muxing on stm32mp157 ARM: dts: stm32: add ltdc pins muxing on stm32mp157 ARM: dts: stm32: add I2C sleep pins muxing on stm32mp157 ARM: dts: stm32: add power supply of otm8009a on stm32mp157c-dk2 ARM: dts: stm32: Enable STM32F769 clock driver ARM: dts: stm32: add stpmic1 support on stm32mp157a dk1 board ARM: dts: stm32: add stpmic1 support on stm32mp157c ed1 board ARM: dts: stm32: add spdfirx pins to stm32mp157c ARM: dts: stm32: add spdifrx support on stm32mp157c ARM: dts: stm32: Add romem and temperature calibration on stm32f429 ARM: dts: stm32: Add romem and temperature calibration on stm32mp157c ARM: dts: stm32: Add clock on stm32mp157c syscfg ARM: dts: stm32: enable IPCC mailbox support on STM32MP157a-dk1 ARM: dts: stm32: enable IPCC mailbox support on STM32MP157c-ed1 ARM: dts: stm32: add IPCC mailbox support on STM32MP157c ARM: dts: stm32: add sdmmc1 support on stm32mp157a dk1 board ARM: dts: stm32: add sdmmc1 support on stm32mp157c ed1 board ARM: dts: stm32: add sdmmc1 support on stm32mp157c ARM: dts: stm32: add sdmmc1 support on stm32h743i disco board ... Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
2140eaf2f4
|
@ -965,6 +965,8 @@ dtb-$(CONFIG_ARCH_STM32) += \
|
||||||
stm32746g-eval.dtb \
|
stm32746g-eval.dtb \
|
||||||
stm32h743i-eval.dtb \
|
stm32h743i-eval.dtb \
|
||||||
stm32h743i-disco.dtb \
|
stm32h743i-disco.dtb \
|
||||||
|
stm32mp157a-dk1.dtb \
|
||||||
|
stm32mp157c-dk2.dtb \
|
||||||
stm32mp157c-ed1.dtb \
|
stm32mp157c-ed1.dtb \
|
||||||
stm32mp157c-ev1.dtb
|
stm32mp157c-ev1.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN4I) += \
|
dtb-$(CONFIG_MACH_SUN4I) += \
|
||||||
|
|
|
@ -80,6 +80,19 @@ clk_i2s_ckin: i2s-ckin {
|
||||||
};
|
};
|
||||||
|
|
||||||
soc {
|
soc {
|
||||||
|
romem: nvmem@1fff7800 {
|
||||||
|
compatible = "st,stm32f4-otp";
|
||||||
|
reg = <0x1fff7800 0x400>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ts_cal1: calib@22c {
|
||||||
|
reg = <0x22c 0x2>;
|
||||||
|
};
|
||||||
|
ts_cal2: calib@22e {
|
||||||
|
reg = <0x22e 0x2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
timer2: timer@40000000 {
|
timer2: timer@40000000 {
|
||||||
compatible = "st,stm32-timer";
|
compatible = "st,stm32-timer";
|
||||||
reg = <0x40000000 0x400>;
|
reg = <0x40000000 0x400>;
|
||||||
|
|
|
@ -102,6 +102,10 @@ mmc_vcard: mmc_vcard {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&rcc {
|
||||||
|
compatible = "st,stm32f769-rcc", "st,stm32f746-rcc", "st,stm32-rcc";
|
||||||
|
};
|
||||||
|
|
||||||
&cec {
|
&cec {
|
||||||
pinctrl-0 = <&cec_pins_a>;
|
pinctrl-0 = <&cec_pins_a>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
|
|
|
@ -188,6 +188,74 @@ pins {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sdmmc1_b4_pins_a: sdmmc1-b4-0 {
|
||||||
|
pins {
|
||||||
|
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('C', 12, AF12)>, /* SDMMC1_CK */
|
||||||
|
<STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
|
||||||
|
slew-rate = <3>;
|
||||||
|
drive-push-pull;
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sdmmc1_b4_od_pins_a: sdmmc1-b4-od-0 {
|
||||||
|
pins1 {
|
||||||
|
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('C', 12, AF12)>; /* SDMMC1_CK */
|
||||||
|
slew-rate = <3>;
|
||||||
|
drive-push-pull;
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
pins2{
|
||||||
|
pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
|
||||||
|
slew-rate = <3>;
|
||||||
|
drive-open-drain;
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sdmmc1_b4_sleep_pins_a: sdmmc1-b4-sleep-0 {
|
||||||
|
pins {
|
||||||
|
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 */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sdmmc1_dir_pins_a: sdmmc1-dir-0 {
|
||||||
|
pins1 {
|
||||||
|
pinmux = <STM32_PINMUX('C', 6, AF8)>, /* SDMMC1_D0DIR */
|
||||||
|
<STM32_PINMUX('C', 7, AF8)>, /* SDMMC1_D123DIR */
|
||||||
|
<STM32_PINMUX('B', 9, AF7)>; /* SDMMC1_CDIR */
|
||||||
|
slew-rate = <3>;
|
||||||
|
drive-push-pull;
|
||||||
|
bias-pull-up;
|
||||||
|
};
|
||||||
|
pins2{
|
||||||
|
pinmux = <STM32_PINMUX('B', 8, AF7)>; /* SDMMC1_CKIN */
|
||||||
|
bias-pull-up;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sdmmc1_dir_sleep_pins_a: sdmmc1-dir-sleep-0 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('C', 6, ANALOG)>, /* SDMMC1_D0DIR */
|
||||||
|
<STM32_PINMUX('C', 7, ANALOG)>, /* SDMMC1_D123DIR */
|
||||||
|
<STM32_PINMUX('B', 9, ANALOG)>, /* SDMMC1_CDIR */
|
||||||
|
<STM32_PINMUX('B', 8, ANALOG)>; /* SDMMC1_CKIN */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
usart1_pins: usart1@0 {
|
usart1_pins: usart1@0 {
|
||||||
pins1 {
|
pins1 {
|
||||||
pinmux = <STM32_PINMUX('B', 14, AF4)>; /* USART1_TX */
|
pinmux = <STM32_PINMUX('B', 14, AF4)>; /* USART1_TX */
|
||||||
|
|
|
@ -339,6 +339,20 @@ mdma1: dma@52000000 {
|
||||||
dma-requests = <32>;
|
dma-requests = <32>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sdmmc1: sdmmc@52007000 {
|
||||||
|
compatible = "arm,pl18x", "arm,primecell";
|
||||||
|
arm,primecell-periphid = <0x10153180>;
|
||||||
|
reg = <0x52007000 0x1000>;
|
||||||
|
interrupts = <49>;
|
||||||
|
interrupt-names = "cmd_irq";
|
||||||
|
clocks = <&rcc SDMMC1_CK>;
|
||||||
|
clock-names = "apb_pclk";
|
||||||
|
resets = <&rcc STM32H7_AHB3_RESET(SDMMC1)>;
|
||||||
|
cap-sd-highspeed;
|
||||||
|
cap-mmc-highspeed;
|
||||||
|
max-frequency = <120000000>;
|
||||||
|
};
|
||||||
|
|
||||||
exti: interrupt-controller@58000000 {
|
exti: interrupt-controller@58000000 {
|
||||||
compatible = "st,stm32h7-exti";
|
compatible = "st,stm32h7-exti";
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
|
|
|
@ -61,6 +61,14 @@ memory {
|
||||||
aliases {
|
aliases {
|
||||||
serial0 = &usart2;
|
serial0 = &usart2;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
v3v3: regulator-v3v3 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "v3v3";
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&clk_hse {
|
&clk_hse {
|
||||||
|
@ -84,6 +92,18 @@ phy0: ethernet-phy@0 {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&sdmmc1 {
|
||||||
|
pinctrl-names = "default", "opendrain", "sleep";
|
||||||
|
pinctrl-0 = <&sdmmc1_b4_pins_a>;
|
||||||
|
pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
|
||||||
|
pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
|
||||||
|
broken-cd;
|
||||||
|
st,neg-edge;
|
||||||
|
bus-width = <4>;
|
||||||
|
vmmc-supply = <&v3v3>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&usart2 {
|
&usart2 {
|
||||||
pinctrl-0 = <&usart2_pins>;
|
pinctrl-0 = <&usart2_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
|
|
|
@ -70,13 +70,20 @@ vdda: regulator-vdda {
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
v2v9_sd: regulator-v2v9_sd {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "v2v9_sd";
|
||||||
|
regulator-min-microvolt = <2900000>;
|
||||||
|
regulator-max-microvolt = <2900000>;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
usbotg_hs_phy: usb-phy {
|
usbotg_hs_phy: usb-phy {
|
||||||
#phy-cells = <0>;
|
#phy-cells = <0>;
|
||||||
compatible = "usb-nop-xceiv";
|
compatible = "usb-nop-xceiv";
|
||||||
clocks = <&rcc USB1ULPI_CK>;
|
clocks = <&rcc USB1ULPI_CK>;
|
||||||
clock-names = "main_clk";
|
clock-names = "main_clk";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&adc_12 {
|
&adc_12 {
|
||||||
|
@ -122,6 +129,20 @@ phy0: ethernet-phy@0 {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&sdmmc1 {
|
||||||
|
pinctrl-names = "default", "opendrain", "sleep";
|
||||||
|
pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
|
||||||
|
pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
|
||||||
|
pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
|
||||||
|
broken-cd;
|
||||||
|
st,sig-dir;
|
||||||
|
st,neg-edge;
|
||||||
|
st,use-ckin;
|
||||||
|
bus-width = <4>;
|
||||||
|
vmmc-supply = <&v2v9_sd>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&usart1 {
|
&usart1 {
|
||||||
pinctrl-0 = <&usart1_pins>;
|
pinctrl-0 = <&usart1_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
|
|
|
@ -157,6 +157,27 @@ pins {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
cec_pins_sleep_a: cec-sleep-0 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('A', 15, ANALOG)>; /* HDMI_CEC */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cec_pins_b: cec-1 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('B', 6, AF5)>;
|
||||||
|
bias-disable;
|
||||||
|
drive-open-drain;
|
||||||
|
slew-rate = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cec_pins_sleep_b: cec-sleep-1 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('B', 6, ANALOG)>; /* HDMI_CEC */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
ethernet0_rgmii_pins_a: rgmii-0 {
|
ethernet0_rgmii_pins_a: rgmii-0 {
|
||||||
pins1 {
|
pins1 {
|
||||||
pinmux = <STM32_PINMUX('G', 5, AF11)>, /* ETH_RGMII_CLK125 */
|
pinmux = <STM32_PINMUX('G', 5, AF11)>, /* ETH_RGMII_CLK125 */
|
||||||
|
@ -213,6 +234,13 @@ pins {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
i2c1_pins_sleep_a: i2c1-1 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('D', 12, ANALOG)>, /* I2C1_SCL */
|
||||||
|
<STM32_PINMUX('F', 15, ANALOG)>; /* I2C1_SDA */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
i2c2_pins_a: i2c2-0 {
|
i2c2_pins_a: i2c2-0 {
|
||||||
pins {
|
pins {
|
||||||
pinmux = <STM32_PINMUX('H', 4, AF4)>, /* I2C2_SCL */
|
pinmux = <STM32_PINMUX('H', 4, AF4)>, /* I2C2_SCL */
|
||||||
|
@ -223,6 +251,13 @@ pins {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
i2c2_pins_sleep_a: i2c2-1 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('H', 4, ANALOG)>, /* I2C2_SCL */
|
||||||
|
<STM32_PINMUX('H', 5, ANALOG)>; /* I2C2_SDA */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
i2c5_pins_a: i2c5-0 {
|
i2c5_pins_a: i2c5-0 {
|
||||||
pins {
|
pins {
|
||||||
pinmux = <STM32_PINMUX('A', 11, AF4)>, /* I2C5_SCL */
|
pinmux = <STM32_PINMUX('A', 11, AF4)>, /* I2C5_SCL */
|
||||||
|
@ -233,6 +268,152 @@ pins {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
i2c5_pins_sleep_a: i2c5-1 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('A', 11, ANALOG)>, /* I2C5_SCL */
|
||||||
|
<STM32_PINMUX('A', 12, ANALOG)>; /* I2C5_SDA */
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ltdc_pins_a: ltdc-a-0 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('G', 7, AF14)>, /* LCD_CLK */
|
||||||
|
<STM32_PINMUX('I', 10, AF14)>, /* LCD_HSYNC */
|
||||||
|
<STM32_PINMUX('I', 9, AF14)>, /* LCD_VSYNC */
|
||||||
|
<STM32_PINMUX('F', 10, AF14)>, /* LCD_DE */
|
||||||
|
<STM32_PINMUX('H', 2, AF14)>, /* LCD_R0 */
|
||||||
|
<STM32_PINMUX('H', 3, AF14)>, /* LCD_R1 */
|
||||||
|
<STM32_PINMUX('H', 8, AF14)>, /* LCD_R2 */
|
||||||
|
<STM32_PINMUX('H', 9, AF14)>, /* LCD_R3 */
|
||||||
|
<STM32_PINMUX('H', 10, AF14)>, /* LCD_R4 */
|
||||||
|
<STM32_PINMUX('C', 0, AF14)>, /* LCD_R5 */
|
||||||
|
<STM32_PINMUX('H', 12, AF14)>, /* LCD_R6 */
|
||||||
|
<STM32_PINMUX('E', 15, AF14)>, /* LCD_R7 */
|
||||||
|
<STM32_PINMUX('E', 5, AF14)>, /* LCD_G0 */
|
||||||
|
<STM32_PINMUX('E', 6, AF14)>, /* LCD_G1 */
|
||||||
|
<STM32_PINMUX('H', 13, AF14)>, /* LCD_G2 */
|
||||||
|
<STM32_PINMUX('H', 14, AF14)>, /* LCD_G3 */
|
||||||
|
<STM32_PINMUX('H', 15, AF14)>, /* LCD_G4 */
|
||||||
|
<STM32_PINMUX('I', 0, AF14)>, /* LCD_G5 */
|
||||||
|
<STM32_PINMUX('I', 1, AF14)>, /* LCD_G6 */
|
||||||
|
<STM32_PINMUX('I', 2, AF14)>, /* LCD_G7 */
|
||||||
|
<STM32_PINMUX('D', 9, AF14)>, /* LCD_B0 */
|
||||||
|
<STM32_PINMUX('G', 12, AF14)>, /* LCD_B1 */
|
||||||
|
<STM32_PINMUX('G', 10, AF14)>, /* LCD_B2 */
|
||||||
|
<STM32_PINMUX('D', 10, AF14)>, /* LCD_B3 */
|
||||||
|
<STM32_PINMUX('I', 4, AF14)>, /* LCD_B4 */
|
||||||
|
<STM32_PINMUX('A', 3, AF14)>, /* LCD_B5 */
|
||||||
|
<STM32_PINMUX('B', 8, AF14)>, /* LCD_B6 */
|
||||||
|
<STM32_PINMUX('D', 8, AF14)>; /* LCD_B7 */
|
||||||
|
bias-disable;
|
||||||
|
drive-push-pull;
|
||||||
|
slew-rate = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ltdc_pins_sleep_a: ltdc-a-1 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('G', 7, ANALOG)>, /* LCD_CLK */
|
||||||
|
<STM32_PINMUX('I', 10, ANALOG)>, /* LCD_HSYNC */
|
||||||
|
<STM32_PINMUX('I', 9, ANALOG)>, /* LCD_VSYNC */
|
||||||
|
<STM32_PINMUX('F', 10, ANALOG)>, /* LCD_DE */
|
||||||
|
<STM32_PINMUX('H', 2, ANALOG)>, /* LCD_R0 */
|
||||||
|
<STM32_PINMUX('H', 3, ANALOG)>, /* LCD_R1 */
|
||||||
|
<STM32_PINMUX('H', 8, ANALOG)>, /* LCD_R2 */
|
||||||
|
<STM32_PINMUX('H', 9, ANALOG)>, /* LCD_R3 */
|
||||||
|
<STM32_PINMUX('H', 10, ANALOG)>, /* LCD_R4 */
|
||||||
|
<STM32_PINMUX('C', 0, ANALOG)>, /* LCD_R5 */
|
||||||
|
<STM32_PINMUX('H', 12, ANALOG)>, /* LCD_R6 */
|
||||||
|
<STM32_PINMUX('E', 15, ANALOG)>, /* LCD_R7 */
|
||||||
|
<STM32_PINMUX('E', 5, ANALOG)>, /* LCD_G0 */
|
||||||
|
<STM32_PINMUX('E', 6, ANALOG)>, /* LCD_G1 */
|
||||||
|
<STM32_PINMUX('H', 13, ANALOG)>, /* LCD_G2 */
|
||||||
|
<STM32_PINMUX('H', 14, ANALOG)>, /* LCD_G3 */
|
||||||
|
<STM32_PINMUX('H', 15, ANALOG)>, /* LCD_G4 */
|
||||||
|
<STM32_PINMUX('I', 0, ANALOG)>, /* LCD_G5 */
|
||||||
|
<STM32_PINMUX('I', 1, ANALOG)>, /* LCD_G6 */
|
||||||
|
<STM32_PINMUX('I', 2, ANALOG)>, /* LCD_G7 */
|
||||||
|
<STM32_PINMUX('D', 9, ANALOG)>, /* LCD_B0 */
|
||||||
|
<STM32_PINMUX('G', 12, ANALOG)>, /* LCD_B1 */
|
||||||
|
<STM32_PINMUX('G', 10, ANALOG)>, /* LCD_B2 */
|
||||||
|
<STM32_PINMUX('D', 10, ANALOG)>, /* LCD_B3 */
|
||||||
|
<STM32_PINMUX('I', 4, ANALOG)>, /* LCD_B4 */
|
||||||
|
<STM32_PINMUX('A', 3, ANALOG)>, /* LCD_B5 */
|
||||||
|
<STM32_PINMUX('B', 8, ANALOG)>, /* LCD_B6 */
|
||||||
|
<STM32_PINMUX('D', 8, ANALOG)>; /* LCD_B7 */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ltdc_pins_b: ltdc-b-0 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('I', 14, AF14)>, /* LCD_CLK */
|
||||||
|
<STM32_PINMUX('I', 12, AF14)>, /* LCD_HSYNC */
|
||||||
|
<STM32_PINMUX('I', 13, AF14)>, /* LCD_VSYNC */
|
||||||
|
<STM32_PINMUX('K', 7, AF14)>, /* LCD_DE */
|
||||||
|
<STM32_PINMUX('I', 15, AF14)>, /* LCD_R0 */
|
||||||
|
<STM32_PINMUX('J', 0, AF14)>, /* LCD_R1 */
|
||||||
|
<STM32_PINMUX('J', 1, AF14)>, /* LCD_R2 */
|
||||||
|
<STM32_PINMUX('J', 2, AF14)>, /* LCD_R3 */
|
||||||
|
<STM32_PINMUX('J', 3, AF14)>, /* LCD_R4 */
|
||||||
|
<STM32_PINMUX('J', 4, AF14)>, /* LCD_R5 */
|
||||||
|
<STM32_PINMUX('J', 5, AF14)>, /* LCD_R6 */
|
||||||
|
<STM32_PINMUX('J', 6, AF14)>, /* LCD_R7 */
|
||||||
|
<STM32_PINMUX('J', 7, AF14)>, /* LCD_G0 */
|
||||||
|
<STM32_PINMUX('J', 8, AF14)>, /* LCD_G1 */
|
||||||
|
<STM32_PINMUX('J', 9, AF14)>, /* LCD_G2 */
|
||||||
|
<STM32_PINMUX('J', 10, AF14)>, /* LCD_G3 */
|
||||||
|
<STM32_PINMUX('J', 11, AF14)>, /* LCD_G4 */
|
||||||
|
<STM32_PINMUX('K', 0, AF14)>, /* LCD_G5 */
|
||||||
|
<STM32_PINMUX('K', 1, AF14)>, /* LCD_G6 */
|
||||||
|
<STM32_PINMUX('K', 2, AF14)>, /* LCD_G7 */
|
||||||
|
<STM32_PINMUX('J', 12, AF14)>, /* LCD_B0 */
|
||||||
|
<STM32_PINMUX('J', 13, AF14)>, /* LCD_B1 */
|
||||||
|
<STM32_PINMUX('J', 14, AF14)>, /* LCD_B2 */
|
||||||
|
<STM32_PINMUX('J', 15, AF14)>, /* LCD_B3 */
|
||||||
|
<STM32_PINMUX('K', 3, AF14)>, /* LCD_B4 */
|
||||||
|
<STM32_PINMUX('K', 4, AF14)>, /* LCD_B5 */
|
||||||
|
<STM32_PINMUX('K', 5, AF14)>, /* LCD_B6 */
|
||||||
|
<STM32_PINMUX('K', 6, AF14)>; /* LCD_B7 */
|
||||||
|
bias-disable;
|
||||||
|
drive-push-pull;
|
||||||
|
slew-rate = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ltdc_pins_sleep_b: ltdc-b-1 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('I', 14, ANALOG)>, /* LCD_CLK */
|
||||||
|
<STM32_PINMUX('I', 12, ANALOG)>, /* LCD_HSYNC */
|
||||||
|
<STM32_PINMUX('I', 13, ANALOG)>, /* LCD_VSYNC */
|
||||||
|
<STM32_PINMUX('K', 7, ANALOG)>, /* LCD_DE */
|
||||||
|
<STM32_PINMUX('I', 15, ANALOG)>, /* LCD_R0 */
|
||||||
|
<STM32_PINMUX('J', 0, ANALOG)>, /* LCD_R1 */
|
||||||
|
<STM32_PINMUX('J', 1, ANALOG)>, /* LCD_R2 */
|
||||||
|
<STM32_PINMUX('J', 2, ANALOG)>, /* LCD_R3 */
|
||||||
|
<STM32_PINMUX('J', 3, ANALOG)>, /* LCD_R4 */
|
||||||
|
<STM32_PINMUX('J', 4, ANALOG)>, /* LCD_R5 */
|
||||||
|
<STM32_PINMUX('J', 5, ANALOG)>, /* LCD_R6 */
|
||||||
|
<STM32_PINMUX('J', 6, ANALOG)>, /* LCD_R7 */
|
||||||
|
<STM32_PINMUX('J', 7, ANALOG)>, /* LCD_G0 */
|
||||||
|
<STM32_PINMUX('J', 8, ANALOG)>, /* LCD_G1 */
|
||||||
|
<STM32_PINMUX('J', 9, ANALOG)>, /* LCD_G2 */
|
||||||
|
<STM32_PINMUX('J', 10, ANALOG)>, /* LCD_G3 */
|
||||||
|
<STM32_PINMUX('J', 11, ANALOG)>, /* LCD_G4 */
|
||||||
|
<STM32_PINMUX('K', 0, ANALOG)>, /* LCD_G5 */
|
||||||
|
<STM32_PINMUX('K', 1, ANALOG)>, /* LCD_G6 */
|
||||||
|
<STM32_PINMUX('K', 2, ANALOG)>, /* LCD_G7 */
|
||||||
|
<STM32_PINMUX('J', 12, ANALOG)>, /* LCD_B0 */
|
||||||
|
<STM32_PINMUX('J', 13, ANALOG)>, /* LCD_B1 */
|
||||||
|
<STM32_PINMUX('J', 14, ANALOG)>, /* LCD_B2 */
|
||||||
|
<STM32_PINMUX('J', 15, ANALOG)>, /* LCD_B3 */
|
||||||
|
<STM32_PINMUX('K', 3, ANALOG)>, /* LCD_B4 */
|
||||||
|
<STM32_PINMUX('K', 4, ANALOG)>, /* LCD_B5 */
|
||||||
|
<STM32_PINMUX('K', 5, ANALOG)>, /* LCD_B6 */
|
||||||
|
<STM32_PINMUX('K', 6, ANALOG)>; /* LCD_B7 */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
m_can1_pins_a: m-can1-0 {
|
m_can1_pins_a: m-can1-0 {
|
||||||
pins1 {
|
pins1 {
|
||||||
pinmux = <STM32_PINMUX('H', 13, AF9)>; /* CAN1_TX */
|
pinmux = <STM32_PINMUX('H', 13, AF9)>; /* CAN1_TX */
|
||||||
|
@ -325,6 +506,87 @@ pins2 {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sdmmc1_b4_pins_a: sdmmc1-b4-0 {
|
||||||
|
pins {
|
||||||
|
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('C', 12, AF12)>, /* SDMMC1_CK */
|
||||||
|
<STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
|
||||||
|
slew-rate = <3>;
|
||||||
|
drive-push-pull;
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sdmmc1_b4_od_pins_a: sdmmc1-b4-od-0 {
|
||||||
|
pins1 {
|
||||||
|
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('C', 12, AF12)>; /* SDMMC1_CK */
|
||||||
|
slew-rate = <3>;
|
||||||
|
drive-push-pull;
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
pins2{
|
||||||
|
pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
|
||||||
|
slew-rate = <3>;
|
||||||
|
drive-open-drain;
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sdmmc1_b4_sleep_pins_a: sdmmc1-b4-sleep-0 {
|
||||||
|
pins {
|
||||||
|
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 */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sdmmc1_dir_pins_a: sdmmc1-dir-0 {
|
||||||
|
pins1 {
|
||||||
|
pinmux = <STM32_PINMUX('F', 2, AF11)>, /* SDMMC1_D0DIR */
|
||||||
|
<STM32_PINMUX('C', 7, AF8)>, /* SDMMC1_D123DIR */
|
||||||
|
<STM32_PINMUX('B', 9, AF11)>; /* SDMMC1_CDIR */
|
||||||
|
slew-rate = <3>;
|
||||||
|
drive-push-pull;
|
||||||
|
bias-pull-up;
|
||||||
|
};
|
||||||
|
pins2{
|
||||||
|
pinmux = <STM32_PINMUX('E', 4, AF8)>; /* SDMMC1_CKIN */
|
||||||
|
bias-pull-up;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sdmmc1_dir_sleep_pins_a: sdmmc1-dir-sleep-0 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('F', 2, ANALOG)>, /* SDMMC1_D0DIR */
|
||||||
|
<STM32_PINMUX('C', 7, ANALOG)>, /* SDMMC1_D123DIR */
|
||||||
|
<STM32_PINMUX('B', 9, ANALOG)>, /* SDMMC1_CDIR */
|
||||||
|
<STM32_PINMUX('E', 4, ANALOG)>; /* SDMMC1_CKIN */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
spdifrx_pins_a: spdifrx-0 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('G', 12, AF8)>; /* SPDIF_IN1 */
|
||||||
|
bias-disable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
spdifrx_sleep_pins_a: spdifrx-1 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('G', 12, ANALOG)>; /* SPDIF_IN1 */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
uart4_pins_a: uart4-0 {
|
uart4_pins_a: uart4-0 {
|
||||||
pins1 {
|
pins1 {
|
||||||
pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
|
pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
|
||||||
|
@ -371,6 +633,13 @@ pins {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
i2c4_pins_sleep_a: i2c4-1 {
|
||||||
|
pins {
|
||||||
|
pinmux = <STM32_PINMUX('Z', 4, ANALOG)>, /* I2C4_SCL */
|
||||||
|
<STM32_PINMUX('Z', 5, ANALOG)>; /* I2C4_SDA */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
spi1_pins_a: spi1-0 {
|
spi1_pins_a: spi1-0 {
|
||||||
pins1 {
|
pins1 {
|
||||||
pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* SPI1_SCK */
|
pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* SPI1_SCK */
|
||||||
|
|
|
@ -0,0 +1,250 @@
|
||||||
|
// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
|
||||||
|
/*
|
||||||
|
* Copyright (C) STMicroelectronics 2019 - All Rights Reserved
|
||||||
|
* Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "stm32mp157c.dtsi"
|
||||||
|
#include "stm32mp157-pinctrl.dtsi"
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/mfd/st,stpmic1.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "STMicroelectronics STM32MP157A-DK1 Discovery Board";
|
||||||
|
compatible = "st,stm32mp157a-dk1", "st,stm32mp157";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
ethernet0 = ðernet0;
|
||||||
|
serial0 = &uart4;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
memory@c0000000 {
|
||||||
|
reg = <0xc0000000 0x20000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
blue {
|
||||||
|
label = "heartbeat";
|
||||||
|
gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "heartbeat";
|
||||||
|
default-state = "off";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&cec {
|
||||||
|
pinctrl-names = "default", "sleep";
|
||||||
|
pinctrl-0 = <&cec_pins_b>;
|
||||||
|
pinctrl-1 = <&cec_pins_sleep_b>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
ðernet0 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <ðernet0_rgmii_pins_a>;
|
||||||
|
pinctrl-1 = <ðernet0_rgmii_pins_sleep_a>;
|
||||||
|
pinctrl-names = "default", "sleep";
|
||||||
|
phy-mode = "rgmii";
|
||||||
|
max-speed = <1000>;
|
||||||
|
phy-handle = <&phy0>;
|
||||||
|
|
||||||
|
mdio0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
compatible = "snps,dwmac-mdio";
|
||||||
|
phy0: ethernet-phy@0 {
|
||||||
|
reg = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
&i2c4 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2c4_pins_a>;
|
||||||
|
i2c-scl-rising-time-ns = <185>;
|
||||||
|
i2c-scl-falling-time-ns = <20>;
|
||||||
|
status = "okay";
|
||||||
|
/* spare dmas for other usage */
|
||||||
|
/delete-property/dmas;
|
||||||
|
/delete-property/dma-names;
|
||||||
|
|
||||||
|
pmic: stpmic@33 {
|
||||||
|
compatible = "st,stpmic1";
|
||||||
|
reg = <0x33>;
|
||||||
|
interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
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 = <800000>;
|
||||||
|
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>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vdda: ldo5 {
|
||||||
|
regulator-name = "vdda";
|
||||||
|
regulator-min-microvolt = <2900000>;
|
||||||
|
regulator-max-microvolt = <2900000>;
|
||||||
|
interrupts = <IT_CURLIM_LDO5 0>;
|
||||||
|
regulator-boot-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
v1v2_hdmi: ldo6 {
|
||||||
|
regulator-name = "v1v2_hdmi";
|
||||||
|
regulator-min-microvolt = <1200000>;
|
||||||
|
regulator-max-microvolt = <1200000>;
|
||||||
|
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>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vbus_otg: pwr_sw1 {
|
||||||
|
regulator-name = "vbus_otg";
|
||||||
|
interrupts = <IT_OCP_OTG 0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vbus_sw: pwr_sw2 {
|
||||||
|
regulator-name = "vbus_sw";
|
||||||
|
interrupts = <IT_OCP_SWOUT 0>;
|
||||||
|
regulator-active-discharge;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
onkey {
|
||||||
|
compatible = "st,stpmic1-onkey";
|
||||||
|
interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
|
||||||
|
interrupt-names = "onkey-falling", "onkey-rising";
|
||||||
|
power-off-time-sec = <10>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
watchdog {
|
||||||
|
compatible = "st,stpmic1-wdt";
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&ipcc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&iwdg2 {
|
||||||
|
timeout-sec = <32>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&rng1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&rtc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdmmc1 {
|
||||||
|
pinctrl-names = "default", "opendrain", "sleep";
|
||||||
|
pinctrl-0 = <&sdmmc1_b4_pins_a>;
|
||||||
|
pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
|
||||||
|
pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
|
||||||
|
broken-cd;
|
||||||
|
st,neg-edge;
|
||||||
|
bus-width = <4>;
|
||||||
|
vmmc-supply = <&v3v3>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart4 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&uart4_pins_a>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
|
@ -0,0 +1,76 @@
|
||||||
|
// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
|
||||||
|
/*
|
||||||
|
* Copyright (C) STMicroelectronics 2019 - All Rights Reserved
|
||||||
|
* Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "stm32mp157a-dk1.dts"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "STMicroelectronics STM32MP157C-DK2 Discovery Board";
|
||||||
|
compatible = "st,stm32mp157c-dk2", "st,stm32mp157";
|
||||||
|
|
||||||
|
reg18: reg18 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "reg18";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&dsi {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
status = "okay";
|
||||||
|
phy-dsi-supply = <®18>;
|
||||||
|
|
||||||
|
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 4 GPIO_ACTIVE_LOW>;
|
||||||
|
power-supply = <&v3v3>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
port {
|
||||||
|
panel_in: endpoint {
|
||||||
|
remote-endpoint = <&dsi_out>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
<dc {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
port {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
ltdc_ep1_out: endpoint@1 {
|
||||||
|
reg = <1>;
|
||||||
|
remote-endpoint = <&dsi_in>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -7,6 +7,8 @@
|
||||||
|
|
||||||
#include "stm32mp157c.dtsi"
|
#include "stm32mp157c.dtsi"
|
||||||
#include "stm32mp157-pinctrl.dtsi"
|
#include "stm32mp157-pinctrl.dtsi"
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/mfd/st,stpmic1.h>
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "STMicroelectronics STM32MP157C eval daughter";
|
model = "STMicroelectronics STM32MP157C eval daughter";
|
||||||
|
@ -41,12 +43,17 @@ reg18: reg18 {
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
};
|
};
|
||||||
|
|
||||||
vdd_usb: vdd-usb {
|
sd_switch: regulator-sd_switch {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-gpio";
|
||||||
regulator-name = "vdd_usb";
|
regulator-name = "sd_switch";
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <1800000>;
|
||||||
regulator-max-microvolt = <3300000>;
|
regulator-max-microvolt = <2900000>;
|
||||||
|
regulator-type = "voltage";
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
|
|
||||||
|
gpios = <&gpiof 14 GPIO_ACTIVE_HIGH>;
|
||||||
|
gpios-states = <0>;
|
||||||
|
states = <1800000 0x1 2900000 0x0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -60,6 +67,149 @@ &i2c4 {
|
||||||
i2c-scl-rising-time-ns = <185>;
|
i2c-scl-rising-time-ns = <185>;
|
||||||
i2c-scl-falling-time-ns = <20>;
|
i2c-scl-falling-time-ns = <20>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
/* spare dmas for other usage */
|
||||||
|
/delete-property/dmas;
|
||||||
|
/delete-property/dma-names;
|
||||||
|
|
||||||
|
pmic: stpmic@33 {
|
||||||
|
compatible = "st,stpmic1";
|
||||||
|
reg = <0x33>;
|
||||||
|
interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
regulators {
|
||||||
|
compatible = "st,stpmic1-regulators";
|
||||||
|
ldo1-supply = <&v3v3>;
|
||||||
|
ldo2-supply = <&v3v3>;
|
||||||
|
ldo3-supply = <&vdd_ddr>;
|
||||||
|
ldo5-supply = <&v3v3>;
|
||||||
|
ldo6-supply = <&v3v3>;
|
||||||
|
pwr_sw1-supply = <&bst_out>;
|
||||||
|
pwr_sw2-supply = <&bst_out>;
|
||||||
|
|
||||||
|
vddcore: buck1 {
|
||||||
|
regulator-name = "vddcore";
|
||||||
|
regulator-min-microvolt = <800000>;
|
||||||
|
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>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vdda: ldo1 {
|
||||||
|
regulator-name = "vdda";
|
||||||
|
regulator-min-microvolt = <2900000>;
|
||||||
|
regulator-max-microvolt = <2900000>;
|
||||||
|
interrupts = <IT_CURLIM_LDO1 0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
v2v8: ldo2 {
|
||||||
|
regulator-name = "v2v8";
|
||||||
|
regulator-min-microvolt = <2800000>;
|
||||||
|
regulator-max-microvolt = <2800000>;
|
||||||
|
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>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vdd_sd: ldo5 {
|
||||||
|
regulator-name = "vdd_sd";
|
||||||
|
regulator-min-microvolt = <2900000>;
|
||||||
|
regulator-max-microvolt = <2900000>;
|
||||||
|
interrupts = <IT_CURLIM_LDO5 0>;
|
||||||
|
regulator-boot-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
v1v8: ldo6 {
|
||||||
|
regulator-name = "v1v8";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
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>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vbus_otg: pwr_sw1 {
|
||||||
|
regulator-name = "vbus_otg";
|
||||||
|
interrupts = <IT_OCP_OTG 0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vbus_sw: pwr_sw2 {
|
||||||
|
regulator-name = "vbus_sw";
|
||||||
|
interrupts = <IT_OCP_SWOUT 0>;
|
||||||
|
regulator-active-discharge;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
onkey {
|
||||||
|
compatible = "st,stpmic1-onkey";
|
||||||
|
interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
|
||||||
|
interrupt-names = "onkey-falling", "onkey-rising";
|
||||||
|
power-off-time-sec = <10>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
watchdog {
|
||||||
|
compatible = "st,stpmic1-wdt";
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&ipcc {
|
||||||
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&iwdg2 {
|
&iwdg2 {
|
||||||
|
@ -75,6 +225,21 @@ &rtc {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&sdmmc1 {
|
||||||
|
pinctrl-names = "default", "opendrain", "sleep";
|
||||||
|
pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
|
||||||
|
pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
|
||||||
|
pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
|
||||||
|
broken-cd;
|
||||||
|
st,sig-dir;
|
||||||
|
st,neg-edge;
|
||||||
|
st,use-ckin;
|
||||||
|
bus-width = <4>;
|
||||||
|
vmmc-supply = <&vdd_sd>;
|
||||||
|
vqmmc-supply = <&sd_switch>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&timers6 {
|
&timers6 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
/* spare dmas for other usage */
|
/* spare dmas for other usage */
|
||||||
|
|
|
@ -379,6 +379,19 @@ spi3: spi@4000c000 {
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
spdifrx: audio-controller@4000d000 {
|
||||||
|
compatible = "st,stm32h7-spdifrx";
|
||||||
|
#sound-dai-cells = <0>;
|
||||||
|
reg = <0x4000d000 0x400>;
|
||||||
|
clocks = <&rcc SPDIF_K>;
|
||||||
|
clock-names = "kclk";
|
||||||
|
interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
dmas = <&dmamux1 93 0x400 0x01>,
|
||||||
|
<&dmamux1 94 0x400 0x01>;
|
||||||
|
dma-names = "rx", "rx-ctrl";
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
usart2: serial@4000e000 {
|
usart2: serial@4000e000 {
|
||||||
compatible = "st,stm32h7-uart";
|
compatible = "st,stm32h7-uart";
|
||||||
reg = <0x4000e000 0x400>;
|
reg = <0x4000e000 0x400>;
|
||||||
|
@ -886,6 +899,21 @@ usbotg_hs: usb-otg@49000000 {
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ipcc: mailbox@4c001000 {
|
||||||
|
compatible = "st,stm32mp1-ipcc";
|
||||||
|
#mbox-cells = <1>;
|
||||||
|
reg = <0x4c001000 0x400>;
|
||||||
|
st,proc-id = <0>;
|
||||||
|
interrupts-extended =
|
||||||
|
<&intc GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<&exti 61 1>;
|
||||||
|
interrupt-names = "rx", "tx", "wakeup";
|
||||||
|
clocks = <&rcc IPCC>;
|
||||||
|
wakeup-source;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
rcc: rcc@50000000 {
|
rcc: rcc@50000000 {
|
||||||
compatible = "st,stm32mp1-rcc", "syscon";
|
compatible = "st,stm32mp1-rcc", "syscon";
|
||||||
reg = <0x50000000 0x1000>;
|
reg = <0x50000000 0x1000>;
|
||||||
|
@ -903,6 +931,7 @@ exti: interrupt-controller@5000d000 {
|
||||||
syscfg: syscon@50020000 {
|
syscfg: syscon@50020000 {
|
||||||
compatible = "st,stm32mp157-syscfg", "syscon";
|
compatible = "st,stm32mp157-syscfg", "syscon";
|
||||||
reg = <0x50020000 0x400>;
|
reg = <0x50020000 0x400>;
|
||||||
|
clocks = <&rcc SYSCFG>;
|
||||||
};
|
};
|
||||||
|
|
||||||
lptimer2: timer@50021000 {
|
lptimer2: timer@50021000 {
|
||||||
|
@ -1050,6 +1079,20 @@ qspi: spi@58003000 {
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sdmmc1: sdmmc@58005000 {
|
||||||
|
compatible = "arm,pl18x", "arm,primecell";
|
||||||
|
arm,primecell-periphid = <0x10153180>;
|
||||||
|
reg = <0x58005000 0x1000>;
|
||||||
|
interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
interrupt-names = "cmd_irq";
|
||||||
|
clocks = <&rcc SDMMC1_K>;
|
||||||
|
clock-names = "apb_pclk";
|
||||||
|
resets = <&rcc SDMMC1_R>;
|
||||||
|
cap-sd-highspeed;
|
||||||
|
cap-mmc-highspeed;
|
||||||
|
max-frequency = <120000000>;
|
||||||
|
};
|
||||||
|
|
||||||
crc1: crc@58009000 {
|
crc1: crc@58009000 {
|
||||||
compatible = "st,stm32f7-crc";
|
compatible = "st,stm32f7-crc";
|
||||||
reg = <0x58009000 0x400>;
|
reg = <0x58009000 0x400>;
|
||||||
|
@ -1199,6 +1242,19 @@ rtc: rtc@5c004000 {
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bsec: nvmem@5c005000 {
|
||||||
|
compatible = "st,stm32mp15-bsec";
|
||||||
|
reg = <0x5c005000 0x400>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ts_cal1: calib@5c {
|
||||||
|
reg = <0x5c 0x2>;
|
||||||
|
};
|
||||||
|
ts_cal2: calib@5e {
|
||||||
|
reg = <0x5e 0x2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
i2c6: i2c@5c009000 {
|
i2c6: i2c@5c009000 {
|
||||||
compatible = "st,stm32f7-i2c";
|
compatible = "st,stm32f7-i2c";
|
||||||
reg = <0x5c009000 0x400>;
|
reg = <0x5c009000 0x400>;
|
||||||
|
|
Loading…
Reference in New Issue