Thread (11 messages) flat view 11 messages, 5 authors, 2021-02-11

Re: [PATCH v2 net-next 3/4] net: phy: Add Qualcomm QCA807x driver

From: Andrew Lunn <andrew@lunn.ch>
Date: 2021-02-11 00:21:32
Also in: linux-arm-msm, linux-devicetree, lkml

+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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help