示例#1
0
static struct config_item *gpiommc_make_item(struct config_group *group,
					     const char *name)
{
	struct gpiommc_configfs_device *dev;

	if (strlen(name) > GPIOMMC_MAX_NAMELEN) {
		printk(KERN_ERR PFX "configfs: device name too long\n");
		return NULL;
	}

	dev = kzalloc(sizeof(*dev), GFP_KERNEL);
	if (!dev)
		return NULL;

	mutex_init(&dev->mutex);
	config_item_init_type_name(&dev->item, name,
				   &gpiommc_dev_ci_type);

	/* Assign default configuration */
	dev->pdata.pins.gpio_di = GPIO_INVALID;
	dev->pdata.pins.gpio_do = GPIO_INVALID;
	dev->pdata.pins.gpio_clk = GPIO_INVALID;
	dev->pdata.pins.gpio_cs = GPIO_INVALID;
	dev->pdata.pins.cs_activelow = 1;
	dev->pdata.mode = SPI_MODE_0;
	dev->pdata.no_spi_delay = 0;
	dev->pdata.max_bus_speed = 5000000; /* 5 MHz */

	return &(dev->item);
}
示例#2
0
/**
 * dtbocfg_overlay_group_make_item() - Make Device Tree Overlay Group Item
 * @group: Pointer to Configuration Group
 * @name : Pointer to Group Name
 * Return  Pointer to Device Tree Overlay Group Item
 */
static struct config_item *dtbocfg_overlay_group_make_item(struct config_group *group, const char *name)
{
    struct dtbocfg_overlay_item *overlay;

    pr_debug("%s\n", __func__);

    overlay = kzalloc(sizeof(*overlay), GFP_KERNEL);

    if (!overlay)
        return ERR_PTR(-ENOMEM);
    overlay->id        = -1;
    overlay->dtbo      = NULL;
    overlay->dtbo_size = 0;

    config_item_init_type_name(&overlay->item, name, &dtbocfg_overlay_item_type);
    return &overlay->item;
}