From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v3,2/3] lan78xx: Read LED states from Device Tree From: Andrew Lunn Message-Id: <20180419151921.GC29658@lunn.ch> Date: Thu, 19 Apr 2018 17:19:21 +0200 To: Phil Elwell Cc: Woojung Huh , Microchip Linux Driver Support , Rob Herring , Mark Rutland , "David S. Miller" , Mauro Carvalho Chehab , Greg Kroah-Hartman , Linus Walleij , Andrew Morton , Randy Dunlap , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org List-ID: PiBAQCAtMjA3Nyw2ICsyMDg1LDI4IEBAIHN0YXRpYyBpbnQgbGFuNzh4eF9waHlfaW5pdChzdHJ1 Y3QgbGFuNzh4eF9uZXQgKmRldikKPiAgCW1paV9hZHYgPSAodTMyKW1paV9hZHZlcnRpc2VfZmxv d2N0cmwoZGV2LT5mY19yZXF1ZXN0X2NvbnRyb2wpOwo+ICAJcGh5ZGV2LT5hZHZlcnRpc2luZyB8 PSBtaWlfYWR2X3RvX2V0aHRvb2xfYWR2X3QobWlpX2Fkdik7Cj4gIAo+ICsJaWYgKHBoeWRldi0+ bWRpby5kZXYub2Zfbm9kZSkgewo+ICsJCXUzMiByZWc7Cj4gKwkJaW50IGxlbjsKPiArCj4gKwkJ bGVuID0gb2ZfcHJvcGVydHlfY291bnRfZWxlbXNfb2Zfc2l6ZShwaHlkZXYtPm1kaW8uZGV2Lm9m X25vZGUsCj4gKwkJCQkJCSAgICAgICJtaWNyb2NoaXAsbGVkLW1vZGVzIiwKPiArCQkJCQkJICAg ICAgc2l6ZW9mKHUzMikpOwo+ICsJCWlmIChsZW4gPj0gMCkgewo+ICsJCQkvKiBFbnN1cmUgdGhl IGFwcHJvcHJpYXRlIExFRHMgYXJlIGVuYWJsZWQgKi8KPiArCQkJbGFuNzh4eF9yZWFkX3JlZyhk ZXYsIEhXX0NGRywgJnJlZyk7Cj4gKwkJCXJlZyAmPSB+KEhXX0NGR19MRUQwX0VOXyB8Cj4gKwkJ CQkgSFdfQ0ZHX0xFRDFfRU5fIHwKPiArCQkJCSBIV19DRkdfTEVEMl9FTl8gfAo+ICsJCQkJIEhX X0NGR19MRUQzX0VOXyk7Cj4gKwkJCXJlZyB8PSAobGVuID4gMCkgKiBIV19DRkdfTEVEMF9FTl8g fAo+ICsJCQkJKGxlbiA+IDEpICogSFdfQ0ZHX0xFRDFfRU5fIHwKPiArCQkJCShsZW4gPiAyKSAq IEhXX0NGR19MRUQyX0VOXyB8Cj4gKwkJCQkobGVuID4gMykgKiBIV19DRkdfTEVEM19FTl87Cj4g KwkJCWxhbjc4eHhfd3JpdGVfcmVnKGRldiwgSFdfQ0ZHLCByZWcpOwo+ICsJCX0KPiArCX0KPiAr CgpIdW1tLiBOb3QgbmljZS4gQnV0IGkgY2Fubm90IHRoaW5rIG9mIGEgY2xlYW5lciB3YXkgb2Yg ZG9pbmcgdGhpcy4KClJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+Cgog ICAgQW5kcmV3Ci0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGlu ZSAidW5zdWJzY3JpYmUgbGludXgtdXNiIiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFq b3Jkb21vQHZnZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdl ci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Lunn Subject: Re: [PATCH v3 2/3] lan78xx: Read LED states from Device Tree Date: Thu, 19 Apr 2018 17:19:21 +0200 Message-ID: <20180419151921.GC29658@lunn.ch> References: <1524148325-78945-1-git-send-email-phil@raspberrypi.org> <1524148325-78945-4-git-send-email-phil@raspberrypi.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1524148325-78945-4-git-send-email-phil@raspberrypi.org> Sender: linux-kernel-owner@vger.kernel.org To: Phil Elwell Cc: Woojung Huh , Microchip Linux Driver Support , Rob Herring , Mark Rutland , "David S. Miller" , Mauro Carvalho Chehab , Greg Kroah-Hartman , Linus Walleij , Andrew Morton , Randy Dunlap , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org List-Id: devicetree@vger.kernel.org > @@ -2077,6 +2085,28 @@ static int lan78xx_phy_init(struct lan78xx_net *dev) > mii_adv = (u32)mii_advertise_flowctrl(dev->fc_request_control); > phydev->advertising |= mii_adv_to_ethtool_adv_t(mii_adv); > > + if (phydev->mdio.dev.of_node) { > + u32 reg; > + int len; > + > + len = of_property_count_elems_of_size(phydev->mdio.dev.of_node, > + "microchip,led-modes", > + sizeof(u32)); > + if (len >= 0) { > + /* Ensure the appropriate LEDs are enabled */ > + lan78xx_read_reg(dev, HW_CFG, ®); > + reg &= ~(HW_CFG_LED0_EN_ | > + HW_CFG_LED1_EN_ | > + HW_CFG_LED2_EN_ | > + HW_CFG_LED3_EN_); > + reg |= (len > 0) * HW_CFG_LED0_EN_ | > + (len > 1) * HW_CFG_LED1_EN_ | > + (len > 2) * HW_CFG_LED2_EN_ | > + (len > 3) * HW_CFG_LED3_EN_; > + lan78xx_write_reg(dev, HW_CFG, reg); > + } > + } > + Humm. Not nice. But i cannot think of a cleaner way of doing this. Reviewed-by: Andrew Lunn Andrew