/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
/*
 * Copyright (C) Octavo Systems LLC 2020 - All Rights Reserved
 */

/* For more information on Device Tree configuration, please refer to
 * https://wiki.st.com/stm32mpu/wiki/Category:Device_tree_configuration
 */

/dts-v1/;
#include <dt-bindings/pinctrl/stm32-pinfunc.h>
#include "stm32mp157.dtsi"
#include "stm32mp15xc.dtsi"
#include "stm32mp15xxac-pinctrl.dtsi"
#include "stm32mp15-m4-srm.dtsi"
#include <dt-bindings/mfd/st,stpmic1.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/rtc/rtc-stm32.h>

/ {
	model = "Octavo OSD32MP1 BRK board";
	compatible = "st,stm32mp157c-osd32mp1-brk", "st,stm32mp157";

	memory@c0000000 {
		device_type = "memory";
		reg = <0xc0000000 0x20000000>;
	};

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		mcuram2:mcuram2@10000000{
			compatible = "shared-dma-pool";
			reg = <0x10000000 0x40000>;
			no-map;
		};

		vdev0vring0:vdev0vring0@10040000{
			compatible = "shared-dma-pool";
			reg = <0x10040000 0x1000>;
			no-map;
		};

		vdev0vring1:vdev0vring1@10041000{
			compatible = "shared-dma-pool";
			reg = <0x10041000 0x1000>;
			no-map;
		};

		vdev0buffer:vdev0buffer@10042000{
			compatible = "shared-dma-pool";
			reg = <0x10042000 0x4000>;
			no-map;
		};

		mcuram:mcuram@30000000{
			compatible = "shared-dma-pool";
			reg = <0x30000000 0x40000>;
			no-map;
		};

		retram:retram@38000000{
			compatible = "shared-dma-pool";
			reg = <0x38000000 0x10000>;
			no-map;
		};

		gpu_reserved:gpu@d4000000{
			reg = <0xd4000000 0x4000000>;
			no-map;
		};
	};

	led{
		compatible = "gpio-leds";

		red1{
			label = "LED1_RED";
			gpios = <&gpioz 6 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "heartbeat";
			status = "okay";
			default-state = "off";
		};

		green1{
			label = "LED1_GRN";
			gpios = <&gpioz 7 GPIO_ACTIVE_LOW>;
			status = "okay";
			default-state = "on";
		};

		red2{
			label = "LED2_RED";
			gpios = <&gpioi 8 GPIO_ACTIVE_LOW>;
			status = "okay";
			default-state = "off";
		};

		green2{
			label = "LED2_GRN";
			gpios = <&gpioi 9 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};
	};

	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;
	};

	vin:vin{
		compatible = "regulator-fixed";
		regulator-name = "vin";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
	};

	aliases{
		serial0 = &uart4;
    		serial2 = &usart2;
    		serial5 = &uart5;
    		serial7 = &uart7;
    		serial1 = &uart8;
	};

	chosen{
		stdout-path = "serial0:115200n8";
	};

}; /*root*/

&pinctrl {
	u-boot,dm-pre-reloc;
	i2c1_pins_mx: i2c1-0 {
		pins {
			pinmux = <STM32_PINMUX('H', 11, AF5)>, /* I2C1_SCL */
				 <STM32_PINMUX('H', 12, AF5)>; /* I2C1_SDA */
			bias-disable;
			drive-open-drain;
			slew-rate = <0>;
		};
	};

	i2c1_pins_sleep_mx: i2c1-1 {
		pins {
			pinmux = <STM32_PINMUX('H', 11, ANALOG)>, /* I2C1_SCL */
				 <STM32_PINMUX('H', 12, ANALOG)>; /* I2C1_SDA */
		};
	};

	i2c2_pins_mx: i2c2-0 {
		pins {
			pinmux = <STM32_PINMUX('F', 1, AF4)>, /* I2C2_SCL */
				 <STM32_PINMUX('G', 15, AF4)>; /* I2C2_SDA */
			bias-disable;
			drive-open-drain;
			slew-rate = <0>;
		};
	};

	i2c2_pins_sleep_mx: i2c2-1 {
		pins {
			pinmux = <STM32_PINMUX('F', 1, ANALOG)>, /* I2C2_SCL */
				 <STM32_PINMUX('G', 15, ANALOG)>; /* I2C2_SDA */
		};
	};

	i2c5_pins_mx: i2c5-0 {
		pins {
			pinmux = <STM32_PINMUX('D', 1, AF4)>, /* I2C5_SCL */
				 <STM32_PINMUX('D', 0, AF4)>; /* I2C5_SDA */
			bias-disable;
			drive-open-drain;
			slew-rate = <0>;
		};
	};

	i2c5_pins_sleep_mx: i2c5-1 {
		pins {
			pinmux = <STM32_PINMUX('D', 1, ANALOG)>, /* I2C5_SCL */
				 <STM32_PINMUX('D', 0, ANALOG)>; /* I2C5_SDA */
		};
	};

	spi2_pins_mx: spi2-0 {
		pins1 {
			pinmux = <STM32_PINMUX('I', 1, AF5)>, /* SPI2_SCK */
				 <STM32_PINMUX('I', 3, AF5)>; /* SPI2_MOSI */
			bias-disable;
			drive-push-pull;
			slew-rate = <1>;
		};

		pins2 {
			pinmux = <STM32_PINMUX('I', 2, AF5)>; /* SPI2_MISO */
			bias-disable;
		};
	};

	spi2_sleep_pins_mx: spi2-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('I', 1, ANALOG)>, /* SPI2_SCK */
				 <STM32_PINMUX('I', 2, ANALOG)>, /* SPI2_MISO */
				 <STM32_PINMUX('I', 3, ANALOG)>; /* SPI2_MOSI */
		};
	};

	spi4_pins_mx: spi4-0 {
		pins1 {
			pinmux = <STM32_PINMUX('E', 12, AF5)>, /* SPI4_SCK */
				 <STM32_PINMUX('E', 14, AF5)>; /* SPI4_MOSI */
			bias-disable;
			drive-push-pull;
			slew-rate = <1>;
		};

		pins2 {
			pinmux = <STM32_PINMUX('E', 13, AF5)>; /* SPI4_MISO */
			bias-disable;
		};
	};

	spi4_sleep_pins_mx: spi4-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('E', 12, ANALOG)>, /* SPI2_SCK */
				 <STM32_PINMUX('E', 13, ANALOG)>, /* SPI2_MISO */
				 <STM32_PINMUX('E', 14, ANALOG)>; /* SPI2_MOSI */
		};
	};

	usart2_pins_mx: usart2-0 {
		pins1 {
			pinmux = <STM32_PINMUX('F', 5, AF7)>; /* USART2_TX */
			bias-disable;
			drive-push-pull;
			slew-rate = <0>;
		};
		pins2 {
			pinmux = <STM32_PINMUX('F', 4, AF7)>; /* USART2_RX */
			bias-disable;
		};
	};

	usart2_idle_pins_mx: usart2-idle-0 {
		pins1 {
			pinmux = <STM32_PINMUX('F', 5, ANALOG)>; /* USART2_TX */
		};
		pins2 {
			pinmux = <STM32_PINMUX('F', 4, AF7)>; /* USART2_RX */
			bias-disable;
		};
	};

	usart2_sleep_pins_mx: usart2-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('F', 5, ANALOG)>, /* USART2_TX */
				 <STM32_PINMUX('F', 4, ANALOG)>; /* USART2_RX */
		};
	};

	uart5_pins_mx: uart5-0 {
		pins1 {
			pinmux = <STM32_PINMUX('B', 13, AF14)>; /* USART5_TX */
			bias-disable;
			drive-push-pull;
			slew-rate = <0>;
		};
		pins2 {
			pinmux = <STM32_PINMUX('B', 12, AF14)>; /* USART5_RX */
			bias-disable;
		};
	};

	uart5_idle_pins_mx: uart5-idle-0 {
		pins1 {
			pinmux = <STM32_PINMUX('B', 13, ANALOG)>; /* USART5_TX */
		};
		pins2 {
			pinmux = <STM32_PINMUX('B', 12, AF14)>; /* USART5_RX */
			bias-disable;
		};
	};

	uart5_sleep_pins_mx: uart5-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('B', 13, ANALOG)>, /* USART5_TX */
				 <STM32_PINMUX('B', 12, ANALOG)>; /* USART5_RX */
		};
	};

	uart7_pins_mx: uart7-0 {
		pins1 {
			pinmux = <STM32_PINMUX('A', 15, AF13)>; /* USART7_TX */
			bias-disable;
			drive-push-pull;
			slew-rate = <0>;
		};
		pins2 {
			pinmux = <STM32_PINMUX('B', 3, AF13)>; /* USART7_RX */
			bias-disable;
		};
	};

	uart7_idle_pins_mx: uart7-idle-0 {
		pins1 {
			pinmux = <STM32_PINMUX('A', 15, ANALOG)>; /* USART7_TX */
		};
		pins2 {
			pinmux = <STM32_PINMUX('B', 3, AF13)>; /* USART7_RX */
			bias-disable;
		};
	};

	uart7_sleep_pins_mx: uart7-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('A', 15, ANALOG)>, /* USART7_TX */
				 <STM32_PINMUX('B', 3, ANALOG)>; /* USART7_RX */
		};
	};

	uart8_pins_mx: uart8-0 {
		pins1 {
			pinmux = <STM32_PINMUX('E', 1, AF8)>; /* USART8_TX */
			bias-disable;
			drive-push-pull;
			slew-rate = <0>;
		};
		pins2 {
			pinmux = <STM32_PINMUX('E', 0, AF8)>; /* USART8_RX */
			bias-disable;
		};
	};

	uart8_idle_pins_mx: uart8-idle-0 {
		pins1 {
			pinmux = <STM32_PINMUX('E', 1, ANALOG)>; /* USART8_TX */
		};
		pins2 {
			pinmux = <STM32_PINMUX('E', 0, AF8)>; /* USART8_RX */
			bias-disable;
		};
	};

	uart8_sleep_pins_mx: uart8-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('E', 1, ANALOG)>, /* USART8_TX */
				 <STM32_PINMUX('E', 0, ANALOG)>; /* USART8_RX */
		};
	};

	m_can1_pins_mx: m-can1-0 {
		pins1 {
			pinmux = <STM32_PINMUX('H', 13, AF9)>; /* CAN1_TX */
			slew-rate = <0>;
			drive-push-pull;
			bias-disable;
		};
		pins2 {
			pinmux = <STM32_PINMUX('H', 14, AF9)>; /* CAN1_RX */
			bias-disable;
		};
	};

	m_can1_sleep_pins_mx: m_can1-sleep@0 {
		pins {
			pinmux = <STM32_PINMUX('H', 13, ANALOG)>, /* CAN1_TX */
				 <STM32_PINMUX('H', 14, ANALOG)>; /* CAN1_RX */
		};
	};

	pwm1_pins_mx: pwm1-0 {
		pins {
			pinmux = <STM32_PINMUX('A', 9, AF1)>; /* TIM1_CH2 */
			bias-pull-down;
			drive-push-pull;
			slew-rate = <0>;
		};
	};

	pwm1_sleep_pins_mx: pwm1-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('A', 9, ANALOG)>; /* TIM1_CH1 */
		};
	};

	pwm3_pins_mx: pwm3-0 {
		pins {
			pinmux = <STM32_PINMUX('B', 5, AF2)>; /* TIM3_CH2 */
			bias-pull-down;
			drive-push-pull;
			slew-rate = <0>;
		};
	};

	pwm3_sleep_pins_mx: pwm3-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('B', 5, ANALOG)>; /* TIM3_CH2 */
		};
	};

	pwm4_pins_mx: pwm4-0 {
		pins {
			pinmux = <STM32_PINMUX('B', 7, AF2)>; /* TIM4_CH2 */
			bias-pull-down;
			drive-push-pull;
			slew-rate = <0>;
		};
	};

	pwm4_sleep_pins_mx: pwm4-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('B', 7, ANALOG)>; /* TIM4_CH2 */
		};
	};

	pwm8_pins_mx: pwm8-0 {
		pins {
			pinmux = <STM32_PINMUX('I', 6, AF3)>; /* TIM8_CH2 */
			bias-pull-down;
			drive-push-pull;
			slew-rate = <0>;
		};
	};

	pwm8_sleep_pins_mx: pwm8-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('I', 6, ANALOG)>; /* TIM8_CH2 */
		};
	};


	pwm12_pins_mx: pwm12-0 {
		pins {
			pinmux = <STM32_PINMUX('H', 9, AF2)>; /* TIM12_CH2 */
			bias-pull-down;
			drive-push-pull;
			slew-rate = <0>;
		};
	};

	pwm12_sleep_pins_mx: pwm12-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('H', 9, ANALOG)>; /* TIM12_CH2 */
		};
	};

	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 = <2>;
		};
	};

	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 = <2>;
		};
		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 */
		};
	};

	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 */
      /* pull-up on rx to avoid floating level */
      bias-pull-up;
		};
		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 */
		};
	};
};

&pinctrl_z {
	u-boot,dm-pre-reloc;

	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 */
		};
	};

	spi6_pins_mx: spi6-0 {
		pins1 {
			pinmux = <STM32_PINMUX('Z', 0, AF8)>, /* SPI6_SCK */
				 <STM32_PINMUX('Z', 2, AF8)>; /* SPI6_MOSI */
			bias-disable;
			drive-push-pull;
			slew-rate = <1>;
		};

		pins2 {
			pinmux = <STM32_PINMUX('Z', 1, AF8)>; /* SPI6_MISO */
			bias-disable;
		};
	};

	spi6_sleep_pins_mx: spi6-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('Z', 0, ANALOG)>, /* SPI6_SCK */
				 <STM32_PINMUX('Z', 1, ANALOG)>, /* SPI6_MISO */
				 <STM32_PINMUX('Z', 2, ANALOG)>; /* SPI6_MOSI */
		};
	};
};

&m4_rproc{
	memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
			<&vdev0vring1>, <&vdev0buffer>;
	mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
	mbox-names = "vq0", "vq1", "shutdown";
	interrupt-parent = <&exti>;
	interrupts = <68 1>;
	wakeup-source;
	status = "okay";
};

&pwr_regulators {
	vdd-supply = <&vdd>;
	vdd_3v3_usbfs-supply = <&vdd_usb>;
};


&crc1{
	status = "okay";
};

&cryp1{
	u-boot,dm-pre-reloc;
	status = "okay";
};

&dma1{
	status = "okay";
	sram = <&dma_pool>;
};

&dma2{
	status = "okay";
	sram = <&dma_pool>;
};

&dts{
	status = "okay";
};

&gpu{
	status = "okay";
	contiguous-area = <&gpu_reserved>;
};

&hash1{
	u-boot,dm-pre-reloc;
	status = "okay";
};

&hsem{
	status = "okay";
};

&i2c1 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&i2c1_pins_mx>;
	pinctrl-1 = <&i2c1_pins_sleep_mx>;
	i2c-scl-rising-time-ns = <100>;
	i2c-scl-falling-time-ns = <7>;
	status = "okay";
	/delete-property/dmas;
	/delete-property/dma-names;
};

&i2c2 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&i2c2_pins_mx>;
	pinctrl-1 = <&i2c2_pins_sleep_mx>;
	i2c-scl-rising-time-ns = <100>;
	i2c-scl-falling-time-ns = <7>;
	status = "okay";
	/delete-property/dmas;
	/delete-property/dma-names;
};

&i2c5 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&i2c5_pins_mx>;
	pinctrl-1 = <&i2c5_pins_sleep_mx>;
	i2c-scl-rising-time-ns = <100>;
	i2c-scl-falling-time-ns = <7>;
	status = "okay";
	/delete-property/dmas;
	/delete-property/dma-names;
};

&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>;
	clock-frequency = <400000>;
	/delete-property/ dmas;
	/delete-property/ dma-names;

	pmic:stpmic@33{
		compatible = "st,stpmic1";
		reg = <0x33>;
		interrupts-extended = <&exti_pwr 55 IRQ_TYPE_EDGE_FALLING>;
		interrupt-controller;
		#interrupt-cells = <2>;
		status = "okay";

		regulators{
			compatible = "st,stpmic1-regulators";
			buck1-supply = <&vin>;
			buck2-supply = <&vin>;
			buck3-supply = <&vin>;
			buck4-supply = <&vin>;
			ldo1-supply = <&v3v3>;
			ldo2-supply = <&vin>;
			ldo3-supply = <&vdd_ddr>;
			ldo4-supply = <&vin>;
			ldo5-supply = <&vin>;
			ldo6-supply = <&v3v3>;
			vref_ddr-supply = <&vin>;
			boost-supply = <&vin>;
			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";
				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 = <1>;
			};
		};

		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";
		};
	};
	eeprom@50 {
		compatible = "atmel,24c02";
		reg = <0x50>;
		pagesize = <16>;
	};
};

&ipcc{
	status = "okay";
};

&iwdg2{
	status = "okay";
	timeout-sec = <32>;
};

&mdma1{
	status = "okay";
};

&rcc{
	u-boot,dm-pre-reloc;
	status = "okay";
};

&rng1{
	status = "okay";
};

&rtc{
	status = "okay";
};

&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";

	cd-gpios = <&gpiog 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
	disable-wp;
	st,neg-edge;
	bus-width = <4>;
	vmmc-supply = <&v3v3>;
};

&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";

	/delete-property/ dmas;
	/delete-property/ dma-names;
};

&usbh_ehci{
	status = "okay";
	phys = <&usbphyc_port0>;
};

&usbh_ohci{
	status = "okay";
};

&usbotg_hs{
	u-boot,dm-pre-reloc;
	status = "okay";
	phys = <&usbphyc_port1 0>;
	phy-names = "usb2-phy";
};

&usbphyc{
	u-boot,dm-pre-reloc;
	status = "okay";
};

&usbphyc_port0{
	u-boot,dm-pre-reloc;
	status = "okay";
	phy-supply = <&vdd_usb>;
	st,phy-tuning = <&usb_phy_tuning>;
};

&usbphyc_port1{
	u-boot,dm-pre-reloc;
	status = "okay";
	phy-supply = <&vdd_usb>;
	st,phy-tuning = <&usb_phy_tuning>;
};

&adc {
	vdd-supply = <&vdd>;
	vdda-supply = <&vdda>;
	vref-supply = <&vdda>;
	status = "okay";
	adc1: adc@0 {
		st,min-sample-time-nsecs = <5000>;
		st,adc-channels = <0 1>;
		status = "okay";
	};

	adc2: adc@100 {
		status = "okay";
	};

	adc_temp: temp {
		status = "okay";
	};
};

&usbh_ohci{
	phys = <&usbphyc_port0>;
};

&cpu0{
	cpu-supply = <&vddcore>;
};

&cpu1{
	cpu-supply = <&vddcore>;
};

&sram{
	dma_pool:dma_pool@0{
		reg = <0x50000 0x10000>;
		pool;
	};
};

&spi2 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&spi2_pins_mx>;
	pinctrl-1 = <&spi2_sleep_pins_mx>;
	cs-gpios = <&gpioi 0 0>;
	status = "okay";

	spidev2: spidev2@0{
		compatible = "rohm,dh2228fv";
		spi-max-frequency = <30000000>;
		reg = <0>;
	};
};

&spi4 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&spi4_pins_mx>;
	pinctrl-1 = <&spi4_sleep_pins_mx>;
	cs-gpios = <&gpioe 11 0>;
	status = "okay";

	spidev4: spidev4@0{
		compatible = "rohm,dh2228fv";
		spi-max-frequency = <30000000>;
		reg = <0>;
	};
};

&spi6 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&spi6_pins_mx>;
	pinctrl-1 = <&spi6_sleep_pins_mx>;
	cs-gpios = <&gpioz 3 0>;
	status = "okay";

	spidev6: spidev6@0{
		compatible = "rohm,dh2228fv";
		spi-max-frequency = <30000000>;
		reg = <0>;
	};
};

&usart2 {
	pinctrl-names = "default", "sleep", "idle";
	pinctrl-0 = <&usart2_pins_mx>;
	pinctrl-1 = <&usart2_sleep_pins_mx>;
	pinctrl-2 = <&usart2_idle_pins_mx>;
	status = "okay";
};

&uart5 {
	pinctrl-names = "default", "sleep", "idle";
	pinctrl-0 = <&uart5_pins_mx>;
	pinctrl-1 = <&uart5_sleep_pins_mx>;
	pinctrl-2 = <&uart5_idle_pins_mx>;
	status = "okay";
};

&uart7 {
	pinctrl-names = "default", "sleep", "idle";
	pinctrl-0 = <&uart7_pins_mx>;
	pinctrl-1 = <&uart7_sleep_pins_mx>;
	pinctrl-2 = <&uart7_idle_pins_mx>;
	status = "okay";
};

&uart8 {
	pinctrl-names = "default", "sleep", "idle";
	pinctrl-0 = <&uart8_pins_mx>;
	pinctrl-1 = <&uart8_sleep_pins_mx>;
	pinctrl-2 = <&uart8_idle_pins_mx>;
	status = "okay";
};

&m_can1 {
	pinctrl-names = "default";
	pinctrl-0 = <&m_can1_pins_mx>;
	status = "okay";
	can-transceiver {
		max-bitrate = <5000000>;
	};
};

&timers1 {
	status = "okay";
	/* spare dmas for other usage */
	/delete-property/dmas;
	/delete-property/dma-names;
	pwm1: pwm {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&pwm1_pins_mx>;
		pinctrl-1 = <&pwm1_sleep_pins_mx>;
		status = "okay";
	};
};

&timers3 {
	status = "okay";
	/* spare dmas for other usage */
	/delete-property/dmas;
	/delete-property/dma-names;
	pwm3: pwm {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&pwm3_pins_mx>;
		pinctrl-1 = <&pwm3_sleep_pins_mx>;
		status = "okay";
	};
};

&timers4 {
	status = "okay";
	/* spare dmas for other usage */
	/delete-property/dmas;
	/delete-property/dma-names;
	pwm4: pwm {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&pwm4_pins_mx>;
		pinctrl-1 = <&pwm4_sleep_pins_mx>;
		status = "okay";
	};
};

&timers8 {
	status = "okay";
	/* spare dmas for other usage */
	/delete-property/dmas;
	/delete-property/dma-names;
	pwm8: pwm {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&pwm8_pins_mx>;
		pinctrl-1 = <&pwm8_sleep_pins_mx>;
		status = "okay";
	};
};

&timers12 {
	status = "okay";
	/* spare dmas for other usage */
	/delete-property/dmas;
	/delete-property/dma-names;
	pwm12: pwm {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&pwm12_pins_mx>;
		pinctrl-1 = <&pwm12_sleep_pins_mx>;
		status = "okay";
	};
};
