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); }
/** * 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; }