|
@@ -22,6 +22,9 @@
|
|
|
#include <linux/mfd/syscon.h>
|
|
|
#include <linux/phy/phy.h>
|
|
|
|
|
|
+#define PHYPARAM_REG 1
|
|
|
+#define PHYCTRL_REG 2
|
|
|
+
|
|
|
/* Default PHY_SEL and REFCLKSEL configuration */
|
|
|
#define STIH407_USB_PICOPHY_CTRL_PORT_CONF 0x6
|
|
|
#define STIH407_USB_PICOPHY_CTRL_PORT_MASK 0x1f
|
|
@@ -93,7 +96,7 @@ static int stih407_usb2_picophy_probe(struct platform_device *pdev)
|
|
|
struct device_node *np = dev->of_node;
|
|
|
struct phy_provider *phy_provider;
|
|
|
struct phy *phy;
|
|
|
- struct resource *res;
|
|
|
+ int ret;
|
|
|
|
|
|
phy_dev = devm_kzalloc(dev, sizeof(*phy_dev), GFP_KERNEL);
|
|
|
if (!phy_dev)
|
|
@@ -123,19 +126,19 @@ static int stih407_usb2_picophy_probe(struct platform_device *pdev)
|
|
|
return PTR_ERR(phy_dev->regmap);
|
|
|
}
|
|
|
|
|
|
- res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ctrl");
|
|
|
- if (!res) {
|
|
|
- dev_err(dev, "No ctrl reg found\n");
|
|
|
- return -ENXIO;
|
|
|
+ ret = of_property_read_u32_index(np, "st,syscfg", PHYPARAM_REG,
|
|
|
+ &phy_dev->param);
|
|
|
+ if (ret) {
|
|
|
+ dev_err(dev, "can't get phyparam offset (%d)\n", ret);
|
|
|
+ return ret;
|
|
|
}
|
|
|
- phy_dev->ctrl = res->start;
|
|
|
|
|
|
- res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "param");
|
|
|
- if (!res) {
|
|
|
- dev_err(dev, "No param reg found\n");
|
|
|
- return -ENXIO;
|
|
|
+ ret = of_property_read_u32_index(np, "st,syscfg", PHYCTRL_REG,
|
|
|
+ &phy_dev->ctrl);
|
|
|
+ if (ret) {
|
|
|
+ dev_err(dev, "can't get phyctrl offset (%d)\n", ret);
|
|
|
+ return ret;
|
|
|
}
|
|
|
- phy_dev->param = res->start;
|
|
|
|
|
|
phy = devm_phy_create(dev, NULL, &stih407_usb2_picophy_data);
|
|
|
if (IS_ERR(phy)) {
|