[PATCH v4 3/3] arm64: dts: Add device tree for the Debix Model A Board

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Dec 6 02:45:57 PST 2022


On Tue, Dec 06, 2022 at 10:25:08AM +0000, Dan Scally wrote:
> Hi Ahmad - thanks for the review
> 
> On 01/12/2022 17:10, Ahmad Fatoum wrote:
> > Hello Daniel,
> >
> > On 17.10.22 17:10, Daniel Scally wrote:
> >> Add a device tree file describing the Debix Model A board from
> >> Polyhex Technology Co.
> >
> > Thanks for your patch. Some minor comments below.
> >
> >> Changes in v3 (Laurent):
> >>
> >>      - Added IOB copyright notice
> >>      - Removed the eth node for the connector that's on the separate I/O
> >>      board
> > I'd have left the FEC node in and described the PHY, but left the FEC disabled.
> > Only the magnetics are on the expansion board, while the PHY is on the
> > base board.
> 
> Fair enough, though there's quite a lot else on the base board which 
> we've left off simply because we're not currently using it. I'm inclined 
> to treat this the same for now.

Overall I think it's a good strategy, if we haven't tested a peripheral
we shouldn't include it yet. Missing pieces can be added later. Of
course if there are pieces that are easy to test already, we can include
them.

> >> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> >> +/*
> >> + * Copyright 2019 NXP
> >> + * Copyright 2022 Ideas on Board Oy
> >> + */
> >> +
> >> +/dts-v1/;
> >> +
> >> +#include <dt-bindings/gpio/gpio.h>
> >> +#include <dt-bindings/leds/common.h>
> >> +#include <dt-bindings/usb/pd.h>
> >> +
> >> +#include "imx8mp.dtsi"
> >> +
> >> +/ {
> >> +	model = "Polyhex Debix Model A i.MX8MPlus board";
> >> +	compatible = "polyhex,imx8mp-debix-model-a", "fsl,imx8mp";
> >
> > I see that Model A and Model B share the same SoC and PCB. Could you
> > add polyhex,imx8mp-debix as a second compatible? That way, bootloader
> > may match against that compatible when they support both.
> > You'll need to adjust the binding accordingly.
> 
> Sure, makes sense to me
> 
> >> +
> >> +	chosen {
> >> +		stdout-path = &uart2;
> >> +	};
> >> +
> >> +	gpio-leds {
> >> +		compatible = "gpio-leds";
> >> +		pinctrl-names = "default";
> >> +		pinctrl-0 = <&pinctrl_gpio_led>;
> >> +
> >> +		status-led {
> >> +			function = LED_FUNCTION_POWER;
> >> +			color = <LED_COLOR_ID_RED>;
> >> +			gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
> >> +			default-state = "on";
> >> +		};
> >> +	};
> >> +
> >> +	reg_usdhc2_vmmc: regulator-usdhc2 {
> >> +		compatible = "regulator-fixed";
> >> +		pinctrl-names = "default";
> >> +		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
> >> +		regulator-name = "VSD_3V3";
> >> +		regulator-min-microvolt = <3300000>;
> >> +		regulator-max-microvolt = <3300000>;
> >> +		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
> >> +		enable-active-high;
> >> +	};
> >> +};
> >> +
> >> +&A53_0 {
> >> +	cpu-supply = <&buck2>;
> >> +};
> >> +
> >> +&A53_1 {
> >> +	cpu-supply = <&buck2>;
> >> +};
> >> +
> >> +&A53_2 {
> >> +	cpu-supply = <&buck2>;
> >> +};
> >> +
> >> +&A53_3 {
> >> +	cpu-supply = <&buck2>;
> >> +};
> >> +
> >> +&eqos {
> >> +	pinctrl-names = "default";
> >> +	pinctrl-0 = <&pinctrl_eqos>;
> >> +	phy-connection-type = "rgmii-id";
> >> +	phy-handle = <&ethphy0>;
> >> +	status = "okay";
> >> +
> >> +	mdio {
> >> +		compatible = "snps,dwmac-mdio";
> >> +		#address-cells = <1>;
> >> +		#size-cells = <0>;
> >> +
> >> +		ethphy0: ethernet-phy at 0 {
> >
> > Could you append a /* RTL8211E */ comment here? This can be very useful for others
> > who need to bring up the same chip in the future.
> 
> Sure
> 
> >> +			compatible = "ethernet-phy-ieee802.3-c22";
> >> +			reg = <0>;
> >
> > Is the PHY really at address 0 or does it just answer at this address
> > because it's the broadcast address?
> 
> I confess I'm unsure here, the number here comes from the downstream 
> .dts, which in this instance I've trusted...is there any way I can check?
> 
> >> +&iomuxc {
> >> +	pinctrl-names = "default";
> >> +	pinctrl-0 = <&pinctrl_hog>;
> >> +
> >> +	pinctrl_hog: hoggrp {
> >> +		fsl,pins = <
> >> +			MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL			0x400001c3
> >> +			MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA			0x400001c3
> >> +			MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD				0x40000019
> >> +			MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC				0x40000019
> >
> > Why do you hog these?
> >
> >> +	pinctrl_usb1_vbus: usb1grp {
> >
> > This is unused.
> 
> Ah both for other elements of the board which aren't included in this 
> set, as they don't work properly yet. Apologies; I'll remove those.
> 
> >> +	pinctrl_usdhc2: usdhc2grp {
> >> +		fsl,pins = <
> >> +			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK				0x190
> >> +			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD				0x1d0
> >> +			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0				0x1d0
> >> +			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1				0x1d0
> >> +			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2				0x1d0
> >> +			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3				0x1d0
> >> +			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT				0xc1
> >
> > Just to make sure this doesn't fry SD-Cards by mistake: VSELECT is indeed
> > connected to a 1.8V/3.3V switch powering vqmmc?
> >
> >> +/* SD Card */
> >> +&usdhc2 {
> >> +	assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
> >> +	assigned-clock-rates = <400000000>;
> >
> > I wonder why this is necessary. Do you see a difference
> > in /sys/kernel/debug/mmcX/ios between having this and leaving
> > it out?
> 
> I don't actually...it's present in the imx8mp-evk.dts which this is 
> based on, but in addition to not seeing any difference there the SD card 
> still seems fine as far as I can tell (same read / write speed in 
> practice) - I'll take it out, thanks
> 
> >> +	status = "okay";
> >> +};
> >> +
> >> +/* eMMc */
> >
> > eMMC
> 
> Ack
>
> >> +&usdhc3 {
> >> +	assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
> >> +	assigned-clock-rates = <400000000>;
> >> +	pinctrl-names = "default", "state_100mhz", "state_200mhz";
> >> +	pinctrl-0 = <&pinctrl_usdhc3>;
> >> +	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
> >> +	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
> >> +	bus-width = <8>;
> >> +	non-removable;
> >> +	status = "okay";
> >> +};
> >> +
> >> +&wdog1 {
> >> +	pinctrl-names = "default";
> >> +	pinctrl-0 = <&pinctrl_wdog>;
> >> +	fsl,ext-reset-output;
> >> +	status = "okay";
> >> +};

-- 
Regards,

Laurent Pinchart



More information about the linux-arm-kernel mailing list