Lines Matching defs:control

120 	 * from a control. In theory this would mean reading from the hardware,
123 * Drivers have to query the properties for the control
127 "mipi-sdca-control-0x5-subproperties");
131 ret = fwnode_property_read_u32(control5, "mipi-sdca-control-dc-value",
250 const struct sdca_control *control)
252 switch (SDCA_CTL_TYPE(entity->type, control->sel)) {
538 return devm_kasprintf(dev, GFP_KERNEL, "Imp-Def %#x", control->sel);
543 const struct sdca_control *control)
545 switch (SDCA_CTL_TYPE(entity->type, control->sel)) {
612 const struct sdca_control *control)
614 switch (SDCA_CTL_TYPE(entity->type, control->sel)) {
791 num_range = fwnode_property_count_u8(control_node, "mipi-sdca-control-range");
801 fwnode_property_read_u8_array(control_node, "mipi-sdca-control-range",
822 struct sdca_control *control,
830 snprintf(property, sizeof(property), "mipi-sdca-control-%s", label);
839 for_each_set_bit(cn, (unsigned long *)&control->cn_list,
840 BITS_PER_TYPE(control->cn_list)) {
843 "mipi-sdca-control-cn-%d-%s", cn, label);
850 control->values[i] = tmp;
863 struct sdca_control *control)
868 ret = fwnode_property_read_u32(control_node, "mipi-sdca-control-access-mode", &tmp);
870 dev_err(dev, "%s: control %#x: access mode missing: %d\n",
871 entity->label, control->sel, ret);
875 control->mode = tmp;
877 ret = fwnode_property_read_u32(control_node, "mipi-sdca-control-access-layer", &tmp);
879 dev_err(dev, "%s: control %#x: access layer missing: %d\n",
880 entity->label, control->sel, ret);
884 control->layers = tmp;
886 ret = fwnode_property_read_u64(control_node, "mipi-sdca-control-cn-list",
887 &control->cn_list);
890 control->cn_list = 0x1;
891 } else if (ret || !control->cn_list) {
892 dev_err(dev, "%s: control %#x: cn list missing: %d\n",
893 entity->label, control->sel, ret);
897 control->values = devm_kzalloc(dev, hweight64(control->cn_list), GFP_KERNEL);
898 if (!control->values)
901 switch (control->mode) {
903 ret = find_sdca_control_value(dev, entity, control_node, control,
906 dev_err(dev, "%s: control %#x: dc value missing: %d\n",
907 entity->label, control->sel, ret);
911 control->has_fixed = true;
915 ret = find_sdca_control_value(dev, entity, control_node, control,
918 control->has_default = true;
920 ret = find_sdca_control_value(dev, entity, control_node, control,
923 control->has_fixed = true;
926 control->deferrable = fwnode_property_read_bool(control_node,
927 "mipi-sdca-control-deferrable");
933 ret = find_sdca_control_range(dev, control_node, &control->range);
935 dev_err(dev, "%s: control %#x: range missing: %d\n",
936 entity->label, control->sel, ret);
941 "mipi-sdca-control-interrupt-position",
944 control->interrupt_position = tmp;
946 control->interrupt_position = SDCA_NO_INTERRUPT;
948 control->label = find_sdca_control_label(dev, entity, control);
949 if (!control->label)
952 control->type = find_sdca_control_datatype(entity, control);
953 control->nbits = find_sdca_control_bits(entity, control);
955 dev_info(dev, "%s: %s: control %#x mode %#x layers %#x cn %#llx int %d %s\n",
956 entity->label, control->label, control->sel,
957 control->mode, control->layers, control->cn_list,
958 control->interrupt_position, control->deferrable ? "deferrable" : "");
973 ret = fwnode_property_read_u64(entity_node, "mipi-sdca-control-list", &control_list);
975 /* Allow missing control lists, assume no controls. */
976 dev_warn(dev, "%s: missing control list\n", entity->label);
979 dev_err(dev, "%s: failed to read control list: %d\n", entity->label, ret);
998 "mipi-sdca-control-0x%X-subproperties", control_sel);
1002 dev_err(dev, "%s: control node %s not found\n",
1979 struct sdca_control *control = &entity->controls[i];
1981 if (control->sel == sel)
1982 return control;
1985 dev_err(dev, "%s: control %#x: missing\n", entity->label, sel);
1992 struct sdca_control *control,
1995 struct sdca_control_range *range = &control->range;
1999 dev_err(dev, "%s: control %#x: ranges invalid (%d,%d)\n",
2000 entity->label, control->sel, range->cols, range->rows);
2012 struct sdca_control *control;
2014 control = sdca_selector_find_control(dev, entity, sel);
2015 if (!control)
2018 return sdca_control_find_range(dev, entity, control, cols, rows);