int __init sdi_init_port(struct platform_device *pdev, struct device_node *port) { struct device_node *ep; u32 datapairs; int r; ep = omapdss_of_get_next_endpoint(port, NULL); if (!ep) return 0; r = of_property_read_u32(ep, "datapairs", &datapairs); if (r) { DSSERR("failed to parse datapairs\n"); goto err_datapairs; } sdi.datapairs = datapairs; of_node_put(ep); sdi.pdev = pdev; sdi_init_output(pdev); sdi.port_initialized = true; return 0; err_datapairs: of_node_put(ep); return r; }
int __init dpi_init_port(struct platform_device *pdev, struct device_node *port) { struct device_node *ep; u32 datalines; int r; ep = omapdss_of_get_next_endpoint(port, NULL); if (!ep) return 0; r = of_property_read_u32(ep, "data-lines", &datalines); if (r) { DSSERR("failed to parse datalines\n"); goto err_datalines; } dpi.data_lines = datalines; of_node_put(ep); dpi.pdev = pdev; mutex_init(&dpi.lock); dpi_init_output(pdev); dpi.port_initialized = true; return 0; err_datalines: of_node_put(ep); return r; }
struct device_node * omapdss_of_get_first_endpoint(const struct device_node *parent) { struct device_node *port, *ep; port = omapdss_of_get_next_port(parent, NULL); if (!port) return NULL; ep = omapdss_of_get_next_endpoint(port, NULL); of_node_put(port); return ep; }