static int set_manual_sw(struct tsu6721_muic_data *muic_data, bool on) { int shift = CTRL_MANUAL_SW_SHIFT; int ret = 0; ret = set_ctrl_reg(muic_data, shift, on); return ret; }
static int set_int_mask(struct tsu6721_muic_data *muic_data, bool on) { int shift = CTRL_INT_MASK_SHIFT; int ret = 0; ret = set_ctrl_reg(muic_data, shift, on); return ret; }
static int set_raw_data(struct tsu6721_muic_data *muic_data, bool on) { int shift = CTRL_RAW_DATA_SHIFT; int ret = 0; ret = set_ctrl_reg(muic_data, shift, on); return ret; }
static int xylonfb_parse_vmode_info(struct device_node *np, struct xylonfb_init_data *init_data) { struct device_node *dn, *vmode_dn; u32 const *prop; char *c; unsigned long pix_data_invert, pix_clk_act_high; int size, tmp; init_data->active_layer = 0; init_data->vmode_params_set = false; dn = of_find_node_by_name(NULL, "xylon-video-params"); if (dn == NULL) { pr_err("Error getting video mode parameters\n"); return -ENOENT; } pix_data_invert = 0; prop = of_get_property(dn, "xlnx,pixel-data-invert", &size); if (!prop) pr_err("Error getting pixel data invert\n"); else pix_data_invert = be32_to_cpup(prop); pix_clk_act_high = 0; prop = of_get_property(dn, "xlnx,pixel-clock-active-high", &size); if (!prop) pr_err("Error getting pixel active edge\n"); else pix_clk_act_high = be32_to_cpup(prop); prop = of_get_property(dn, "xlnx,pixel-component-format", &size); if (prop) { if (!strcmp("ABGR", (char *)prop)) { prop = of_get_property(dn, "xlnx,pixel-component-layer", &size); if (prop) { while(size > 0) { tmp = be32_to_cpup(prop); init_data->layer_ctrl[tmp] = LOGICVC_SWAP_RB; prop++; size -= sizeof(prop); } } } } prop = of_get_property(dn, "active-layer", &size); if (prop) { tmp = be32_to_cpup(prop); init_data->active_layer = (unsigned char)tmp; } else { pr_info("xylonfb setting default layer to %d\n", init_data->active_layer); } prop = of_get_property(dn, "videomode", &size); if (prop) { if (strlen((char *)prop) <= VMODE_NAME_SZ) { strcpy(init_data->vmode_data.fb_vmode_name, (char *)prop); vmode_dn = of_find_node_by_name(dn, init_data->vmode_data.fb_vmode_name); c = strchr((char *)prop, '_'); if (c) *c = 0; strcpy(init_data->vmode_data.fb_vmode_name, (char *)prop); } else { vmode_dn = NULL; pr_err("Error videomode name to long\n"); } if (vmode_dn) { prop = of_get_property(vmode_dn, "refresh", &size); if (!prop) pr_err("Error getting refresh rate\n"); else init_data->vmode_data.fb_vmode.refresh = be32_to_cpup(prop); prop = of_get_property(vmode_dn, "xres", &size); if (!prop) pr_err("Error getting xres\n"); else init_data->vmode_data.fb_vmode.xres = be32_to_cpup(prop); prop = of_get_property(vmode_dn, "yres", &size); if (!prop) pr_err("Error getting yres\n"); else init_data->vmode_data.fb_vmode.yres = be32_to_cpup(prop); prop = of_get_property(vmode_dn, "pixclock-khz", &size); if (!prop) pr_err("Error getting pixclock-khz\n"); else init_data->vmode_data.fb_vmode.pixclock = KHZ2PICOS(be32_to_cpup(prop)); prop = of_get_property(vmode_dn, "left-margin", &size); if (!prop) pr_err("Error getting left-margin\n"); else init_data->vmode_data.fb_vmode.left_margin = be32_to_cpup(prop); prop = of_get_property(vmode_dn, "right-margin", &size); if (!prop) pr_err("Error getting right-margin\n"); else init_data->vmode_data.fb_vmode.right_margin = be32_to_cpup(prop); prop = of_get_property(vmode_dn, "upper-margin", &size); if (!prop) pr_err("Error getting upper-margin\n"); else init_data->vmode_data.fb_vmode.upper_margin = be32_to_cpup(prop); prop = of_get_property(vmode_dn, "lower-margin", &size); if (!prop) pr_err("Error getting lower-margin\n"); else init_data->vmode_data.fb_vmode.lower_margin = be32_to_cpup(prop); prop = of_get_property(vmode_dn, "hsync-len", &size); if (!prop) pr_err("Error getting hsync-len\n"); else init_data->vmode_data.fb_vmode.hsync_len = be32_to_cpup(prop); prop = of_get_property(vmode_dn, "vsync-len", &size); if (!prop) pr_err("Error getting vsync-len\n"); else init_data->vmode_data.fb_vmode.vsync_len = be32_to_cpup(prop); prop = of_get_property(vmode_dn, "sync", &size); if (!prop) pr_err("Error getting sync\n"); else init_data->vmode_data.fb_vmode.sync = be32_to_cpup(prop); prop = of_get_property(vmode_dn, "vmode", &size); if (!prop) pr_err("Error getting vmode\n"); else init_data->vmode_data.fb_vmode.vmode = be32_to_cpup(prop); init_data->vmode_params_set = true; } else { init_data->vmode_data.fb_vmode.refresh = 60; } } else { pr_info("xylonfb using default driver video mode\n"); } set_ctrl_reg(init_data, pix_data_invert, pix_clk_act_high); return 0; }