// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) /dts-v1/; #include #include #include #include #include "stm32mp133.dtsi" #include "stm32mp13xc.dtsi" #include "stm32mp13-pinctrl.dtsi" / { model = "Priva E-Measuringbox board"; compatible = "pri,prihmb", "st,stm32mp133"; aliases { ethernet0 = ðernet1; mdio-gpio0 = &mdio0; mmc0 = &sdmmc1; mmc1 = &sdmmc2; serial0 = &uart4; serial1 = &usart6; serial2 = &uart7; }; chosen { stdout-path = "serial0:115200n8"; }; counter-0 { compatible = "interrupt-counter"; gpios = <&gpioa 11 GPIO_ACTIVE_HIGH>; }; gpio-keys { compatible = "gpio-keys"; autorepeat; button-reset { label = "reset-button"; linux,code = ; gpios = <&gpioi 7 GPIO_ACTIVE_LOW>; }; }; leds { compatible = "gpio-leds"; led-blue { function = LED_FUNCTION_HEARTBEAT; color = ; gpios = <&gpioa 14 GPIO_ACTIVE_LOW>; linux,default-trigger = "heartbeat"; default-state = "off"; }; }; led-controller-0 { compatible = "pwm-leds-multicolor"; multi-led { color = ; function = LED_FUNCTION_STATUS; max-brightness = <255>; led-red { active-low; color = ; pwms = <&pwm2 2 1000000 1>; }; led-green { active-low; color = ; pwms = <&pwm1 1 1000000 1>; }; led-blue { active-low; color = ; pwms = <&pwm1 2 1000000 1>; }; }; }; led-controller-1 { compatible = "pwm-leds-multicolor"; multi-led { color = ; function = LED_FUNCTION_STATUS; max-brightness = <255>; led-red { active-low; color = ; pwms = <&pwm1 0 1000000 1>; }; led-green { active-low; color = ; pwms = <&pwm2 0 1000000 1>; }; led-blue { active-low; color = ; pwms = <&pwm2 1 1000000 1>; }; }; }; /* DP83TD510E PHYs have max MDC rate of 1.75MHz. Since we can't reduce * stmmac MDC clock without reducing system bus rate, we need to use * gpio based MDIO bus. */ mdio0: mdio { compatible = "virtual,mdio-gpio"; #address-cells = <1>; #size-cells = <0>; gpios = <&gpiog 2 GPIO_ACTIVE_HIGH &gpioa 2 GPIO_ACTIVE_HIGH>; /* TI DP83TD510E */ phy0: ethernet-phy@0 { compatible = "ethernet-phy-id2000.0181"; reg = <0>; interrupts-extended = <&gpioa 4 IRQ_TYPE_LEVEL_LOW>; reset-gpios = <&gpioa 3 GPIO_ACTIVE_LOW>; reset-assert-us = <10>; reset-deassert-us = <35>; }; }; memory@c0000000 { device_type = "memory"; reg = <0xc0000000 0x10000000>; }; reg_3v3: regulator-3v3 { compatible = "regulator-fixed"; regulator-name = "3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; optee@ce000000 { reg = <0xce000000 0x02000000>; no-map; }; }; }; &adc_1 { pinctrl-names = "default"; pinctrl-0 = <&adc_1_pins_a>; vdda-supply = <®_3v3>; vref-supply = <®_3v3>; status = "okay"; }; &adc1 { status = "okay"; channel@0 { /* Fan current PC0*/ reg = <0>; st,min-sample-time-ns = <10000>; /* 10µs sampling time */ }; channel@11 { /* Fan voltage */ reg = <11>; st,min-sample-time-ns = <10000>; /* 10µs sampling time */ }; channel@15 { /* Supply voltage */ reg = <15>; st,min-sample-time-ns = <10000>; /* 10µs sampling time */ }; }; &dts { status = "okay"; }; ðernet1 { status = "okay"; pinctrl-0 = <ðernet1_rmii_pins_a>; pinctrl-1 = <ðernet1_rmii_sleep_pins_a>; pinctrl-names = "default", "sleep"; phy-mode = "rmii"; phy-handle = <&phy0>; }; &i2c1 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c1_pins_a>; pinctrl-1 = <&i2c1_sleep_pins_a>; clock-frequency = <100000>; /delete-property/dmas; /delete-property/dma-names; status = "okay"; board-sensor@48 { compatible = "ti,tmp1075"; reg = <0x48>; vs-supply = <®_3v3>; }; }; &{i2c1_pins_a/pins} { pinmux = , /* I2C1_SCL */ ; /* I2C1_SDA */ bias-disable; drive-open-drain; slew-rate = <0>; }; &{i2c1_sleep_pins_a/pins} { pinmux = , /* I2C1_SCL */ ; /* I2C1_SDA */ }; &iwdg2 { timeout-sec = <32>; status = "okay"; }; /* SD card without Card-detect */ &sdmmc1 { pinctrl-names = "default", "opendrain", "sleep"; pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_clk_pins_a>; pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_clk_pins_a>; pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>; broken-cd; no-sdio; no-1-8-v; st,neg-edge; bus-width = <4>; vmmc-supply = <®_3v3>; status = "okay"; }; /* EMMC */ &sdmmc2 { pinctrl-names = "default", "opendrain", "sleep"; pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a &sdmmc2_clk_pins_a>; pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a &sdmmc2_clk_pins_a>; pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>; non-removable; no-sd; no-sdio; no-1-8-v; st,neg-edge; mmc-ddr-3_3v; bus-width = <8>; vmmc-supply = <®_3v3>; status = "okay"; }; &timers1 { status = "okay"; /delete-property/dmas; /delete-property/dma-names; pwm1: pwm { pinctrl-0 = <&pwm1_pins_a>; pinctrl-1 = <&pwm1_sleep_pins_a>; pinctrl-names = "default", "sleep"; status = "okay"; }; }; &timers4 { status = "okay"; /delete-property/dmas; /delete-property/dma-names; pwm2: pwm { pinctrl-0 = <&pwm4_pins_a>; pinctrl-1 = <&pwm4_sleep_pins_a>; pinctrl-names = "default", "sleep"; status = "okay"; }; }; /* Fan PWM */ &timers5 { status = "okay"; pwm3: pwm { pinctrl-0 = <&pwm5_pins_a>; pinctrl-1 = <&pwm5_sleep_pins_a>; pinctrl-names = "default", "sleep"; status = "okay"; }; }; &timers2 { status = "okay"; timer@1 { status = "okay"; }; }; &uart4 { pinctrl-names = "default", "sleep", "idle"; pinctrl-0 = <&uart4_pins_a>; pinctrl-1 = <&uart4_sleep_pins_a>; pinctrl-2 = <&uart4_idle_pins_a>; /delete-property/dmas; /delete-property/dma-names; status = "okay"; }; &uart7 { pinctrl-names = "default", "sleep", "idle"; pinctrl-0 = <&uart7_pins_a>; pinctrl-1 = <&uart7_sleep_pins_a>; pinctrl-2 = <&uart7_idle_pins_a>; /delete-property/dmas; /delete-property/dma-names; status = "okay"; }; &usart6 { pinctrl-names = "default", "sleep", "idle"; pinctrl-0 = <&usart6_pins_a>; pinctrl-1 = <&usart6_sleep_pins_a>; pinctrl-2 = <&usart6_idle_pins_a>; linux,rs485-enabled-at-boot-time; /delete-property/dmas; /delete-property/dma-names; status = "okay"; }; &pinctrl { adc_1_pins_a: adc1-0 { pins { pinmux = , /* ADC1 in0 */ , /* ADC1 in15 */ ; /* ADC1 in11 */ }; }; ethernet1_rmii_pins_a: rmii-0 { pins1 { pinmux = , /* ETH1_RMII_TXD0 */ , /* ETH1_RMII_TXD1 */ , /* ETH1_RMII_TX_EN */ ; /* ETH1_RMII_REF_CLK */ bias-disable; drive-push-pull; slew-rate = <2>; }; pins2 { pinmux = , /* ETH1_RMII_RXD0 */ , /* ETH1_RMII_RXD1 */ ; /* ETH1_RMII_CRS_DV */ bias-disable; }; }; ethernet1_rmii_sleep_pins_a: rmii-sleep-0 { pins1 { pinmux = , /* ETH1_RMII_TXD0 */ , /* ETH1_RMII_TXD1 */ , /* ETH1_RMII_TX_EN */ , /* ETH1_RMII_RXD0 */ , /* ETH1_RMII_RXD1 */ , /* ETH1_RMII_REF_CLK */ ; /* ETH1_RMII_CRS_DV */ }; }; pwm1_pins_a: pwm1-0 { pins { pinmux = , /* TIM1_CH1 */ , /* TIM1_CH2 */ ; /* TIM1_CH3 */ bias-pull-down; drive-push-pull; slew-rate = <0>; }; }; pwm1_sleep_pins_a: pwm1-sleep-0 { pins { pinmux = , /* TIM1_CH1 */ , /* TIM1_CH2 */ ; /* TIM1_CH3 */ }; }; pwm4_pins_a: pwm4-0 { pins { pinmux = , /* TIM4_CH1 */ , /* TIM4_CH2 */ ; /* TIM4_CH3 */ bias-pull-down; drive-push-pull; slew-rate = <0>; }; }; pwm4_sleep_pins_a: pwm4-sleep-0 { pins { pinmux = , /* TIM4_CH1 */ , /* TIM4_CH2 */ ; /* TIM4_CH3 */ }; }; pwm5_pins_a: pwm5-0 { pins { pinmux = ; /* TIM5_CH1 */ }; }; pwm5_sleep_pins_a: pwm5-sleep-0 { pins { pinmux = ; /* TIM5_CH1 */ }; }; uart7_pins_a: uart7-0 { pins1 { pinmux = ; /* UART_TX */ bias-disable; drive-push-pull; slew-rate = <0>; }; pins2 { pinmux = ; /* UART7_RX */ bias-pull-up; }; }; uart7_idle_pins_a: uart7-idle-0 { pins1 { pinmux = ; /* UART7_TX */ }; pins2 { pinmux = ; /* UART7_RX */ bias-pull-up; }; }; uart7_sleep_pins_a: uart7-sleep-0 { pins { pinmux = , /* UART7_TX */ ; /* UART7_RX */ }; }; usart6_pins_a: usart6-0 { pins1 { pinmux = , /* USART6_TX */ ; /* USART6_DE */ bias-disable; drive-push-pull; slew-rate = <0>; }; pins2 { pinmux = ; /* USART6_RX */ bias-disable; }; }; usart6_idle_pins_a: usart6-idle-0 { pins1 { pinmux = ; /* USART6_TX */ }; pins2 { pinmux = ; /* USART6_DE */ bias-disable; drive-push-pull; slew-rate = <0>; }; pins3 { pinmux = ; /* USART6_RX */ bias-disable; }; }; usart6_sleep_pins_a: usart6-sleep-0 { pins { pinmux = , /* USART6_TX */ , /* USART6_DE */ ; /* USART6_RX */ }; }; };