[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YCR4TNHYjxmROPe2@lunn.ch>
Date: Thu, 11 Feb 2021 01:20:28 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Robert Marko <robert.marko@...tura.hr>
Cc: agross@...nel.org, bjorn.andersson@...aro.org, robh+dt@...nel.org,
linux-kernel@...r.kernel.org, linux-arm-msm@...r.kernel.org,
devicetree@...r.kernel.org, davem@...emloft.net, kuba@...nel.org,
netdev@...r.kernel.org, hkallweit1@...il.com,
linux@...linux.org.uk, Luka Perkov <luka.perkov@...tura.hr>
Subject: Re: [PATCH v2 net-next 3/4] net: phy: Add Qualcomm QCA807x driver
> +static int qca807x_psgmii_config(struct phy_device *phydev)
> +{
> + struct device_node *node = phydev->mdio.dev.of_node;
> + int psgmii_az, tx_amp, ret = 0;
> + u32 tx_driver_strength_dt;
> +
> + /* Workaround to enable AZ transmitting ability */
> + if (of_property_read_bool(node, "qcom,psgmii-az")) {
> + psgmii_az = phy_read_mmd(phydev, MDIO_MMD_PMAPMD, PSGMII_MODE_CTRL);
> + psgmii_az &= ~PSGMII_MODE_CTRL_AZ_WORKAROUND_MASK;
> + psgmii_az |= FIELD_PREP(PSGMII_MODE_CTRL_AZ_WORKAROUND_MASK, 0xc);
> + ret = phy_write_mmd(phydev, MDIO_MMD_PMAPMD, PSGMII_MODE_CTRL, psgmii_az);
> + psgmii_az = phy_read_mmd(phydev, MDIO_MMD_PMAPMD, PSGMII_MODE_CTRL);
> + }
> +
> + /* PSGMII/QSGMII TX amp set to DT defined value instead of default 600mV */
> + if (!of_property_read_u32(node, "qcom,tx-driver-strength", &tx_driver_strength_dt)) {
> + int tx_driver_strength;
> +
> + switch (tx_driver_strength_dt) {
> + case 140:
> + tx_driver_strength = 0;
> + break;
> + case 160:
> + tx_driver_strength = 1;
> + break;
> + case 180:
> + tx_driver_strength = 2;
> + break;
> + case 200:
> + tx_driver_strength = 3;
> + break;
> + case 220:
> + tx_driver_strength = 4;
> + break;
> + case 240:
> + tx_driver_strength = 5;
> + break;
> + case 260:
> + tx_driver_strength = 6;
> + break;
> + case 280:
> + tx_driver_strength = 7;
> + break;
> + case 300:
> + tx_driver_strength = 8;
> + break;
> + case 320:
> + tx_driver_strength = 9;
> + break;
> + case 400:
> + tx_driver_strength = 10;
> + break;
> + case 500:
> + tx_driver_strength = 11;
> + break;
> + case 600:
> + tx_driver_strength = 12;
> + break;
> + default:
> + tx_driver_strength = 12;
> + break;
Please return -EINVAL here. The value in DT is not valid, so you
should error out. If there is no value at all, then it is O.K. to
default to 12.
Andrew
Powered by blists - more mailing lists