Loading recipes-kernel/linux/linux-xlnx/vsc3304.patch +63 −49 Original line number Original line Diff line number Diff line Index: git/drivers/misc/Kconfig Index: git/drivers/misc/Kconfig =================================================================== =================================================================== --- git.orig/drivers/misc/Kconfig 2013-11-26 00:53:11.204122076 -0700 --- git.orig/drivers/misc/Kconfig 2013-11-26 01:01:48.820127445 -0700 +++ git/drivers/misc/Kconfig 2013-11-26 00:53:14.044122105 -0700 +++ git/drivers/misc/Kconfig 2013-11-26 01:01:51.944127477 -0700 @@ -549,6 +549,13 @@ @@ -549,6 +549,13 @@ their requirements. their requirements. Loading @@ -18,8 +18,8 @@ Index: git/drivers/misc/Kconfig source "drivers/misc/eeprom/Kconfig" source "drivers/misc/eeprom/Kconfig" Index: git/drivers/misc/Makefile Index: git/drivers/misc/Makefile =================================================================== =================================================================== --- git.orig/drivers/misc/Makefile 2013-11-26 00:53:11.204122076 -0700 --- git.orig/drivers/misc/Makefile 2013-11-26 01:01:48.820127445 -0700 +++ git/drivers/misc/Makefile 2013-11-26 00:53:14.044122105 -0700 +++ git/drivers/misc/Makefile 2013-11-26 01:01:51.944127477 -0700 @@ -55,3 +55,4 @@ @@ -55,3 +55,4 @@ obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o obj-$(CONFIG_SRAM) += sram.o obj-$(CONFIG_SRAM) += sram.o Loading @@ -28,8 +28,8 @@ Index: git/drivers/misc/Makefile Index: git/drivers/misc/vsc330x.c Index: git/drivers/misc/vsc330x.c =================================================================== =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ git/drivers/misc/vsc330x.c 2013-11-26 00:58:21.924125299 -0700 +++ git/drivers/misc/vsc330x.c 2013-11-26 09:41:58.660451163 -0700 @@ -0,0 +1,791 @@ @@ -0,0 +1,805 @@ +/*!*************************************************************************** +/*!*************************************************************************** + *! FILE NAME : vsc330x.c + *! FILE NAME : vsc330x.c + *! DESCRIPTION: control of the VSC3304 4x4 crosspoint switch + *! DESCRIPTION: control of the VSC3304 4x4 crosspoint switch Loading Loading @@ -267,17 +267,21 @@ Index: git/drivers/misc/vsc330x.c +static ssize_t address_range_show (struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t address_range_show (struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t address_range_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); +static ssize_t address_range_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); + + +static DEVICE_ATTR(connection, SYSFS_PERMISSIONS, global_connection_show, global_connection_store); +/* Global registers - writes applied to all port registers. No sense to read (so write only), but functions preserved +static DEVICE_ATTR(ISE, SYSFS_PERMISSIONS, global_ISE_show, global_ISE_store); + * Placed in "globals" directory */ +static DEVICE_ATTR(input_state, SYSFS_PERMISSIONS, global_input_state_show, global_input_state_store); +static DEVICE_ATTR(connection, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_connection_show, global_connection_store); +static DEVICE_ATTR(input_LOS, SYSFS_PERMISSIONS, global_input_LOS_show, global_input_LOS_store); +static DEVICE_ATTR(ISE, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_ISE_show, global_ISE_store); +static DEVICE_ATTR(output_PRE_long, SYSFS_PERMISSIONS, global_output_PRE_long_show, global_output_PRE_long_store); +static DEVICE_ATTR(input_state, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_input_state_show, global_input_state_store); +static DEVICE_ATTR(output_PRE_short, SYSFS_PERMISSIONS, global_output_PRE_short_show, global_output_PRE_short_store); +static DEVICE_ATTR(input_LOS, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_input_LOS_show, global_input_LOS_store); +static DEVICE_ATTR(output_level, SYSFS_PERMISSIONS, global_output_level_show, global_output_level_store); +static DEVICE_ATTR(output_PRE_long, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_output_PRE_long_show, global_output_PRE_long_store); +static DEVICE_ATTR(output_state, SYSFS_PERMISSIONS, global_output_state_show, global_output_state_store); +static DEVICE_ATTR(output_PRE_short, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_output_PRE_short_show, global_output_PRE_short_store); +static DEVICE_ATTR(status_0, SYSFS_PERMISSIONS, global_status_0_show, global_status_0_store); +static DEVICE_ATTR(output_level, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_output_level_show, global_output_level_store); +static DEVICE_ATTR(status_1, SYSFS_PERMISSIONS, global_status_1_show, global_status_1_store); +static DEVICE_ATTR(output_state, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_output_state_show, global_output_state_store); +static DEVICE_ATTR(core_config_word, SYSFS_PERMISSIONS, core_config_word_show, core_config_word_store); +static DEVICE_ATTR(status_0_on_LOS, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_status_0_show, global_status_0_store); +static DEVICE_ATTR(status_1_on_LOS, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_status_1_show, global_status_1_store); + +/* control/status registers , placed in "control" directory */ +static DEVICE_ATTR(core_word, SYSFS_PERMISSIONS, core_config_word_show, core_config_word_store); +static DEVICE_ATTR(core_left_bias_en, SYSFS_PERMISSIONS, core_left_bias_en_show, core_left_bias_en_store); +static DEVICE_ATTR(core_left_bias_en, SYSFS_PERMISSIONS, core_left_bias_en_show, core_left_bias_en_store); +static DEVICE_ATTR(core_right_bias_en,SYSFS_PERMISSIONS, core_right_bias_en_show, core_right_bias_en_store); +static DEVICE_ATTR(core_right_bias_en,SYSFS_PERMISSIONS, core_right_bias_en_show, core_right_bias_en_store); +static DEVICE_ATTR(core_buffer_on, SYSFS_PERMISSIONS, core_buffer_on_show, core_buffer_on_store); +static DEVICE_ATTR(core_buffer_on, SYSFS_PERMISSIONS, core_buffer_on_show, core_buffer_on_store); Loading @@ -295,9 +299,18 @@ Index: git/drivers/misc/vsc330x.c + &dev_attr_output_PRE_short.attr, + &dev_attr_output_PRE_short.attr, + &dev_attr_output_level.attr, + &dev_attr_output_level.attr, + &dev_attr_output_state.attr, + &dev_attr_output_state.attr, + &dev_attr_status_0.attr, + &dev_attr_status_0_on_LOS.attr, + &dev_attr_status_1.attr, + &dev_attr_status_1_on_LOS.attr, + &dev_attr_core_config_word.attr, + NULL +}; + +static const struct attribute_group dev_attr_globals_group = { + .attrs = globals_dev_attrs, + .name = "globals", +}; + +static struct attribute *control_dev_attrs[] = { + &dev_attr_core_word.attr, + &dev_attr_core_left_bias_en.attr, + &dev_attr_core_left_bias_en.attr, + &dev_attr_core_right_bias_en.attr, + &dev_attr_core_right_bias_en.attr, + &dev_attr_core_buffer_on.attr, + &dev_attr_core_buffer_on.attr, Loading @@ -308,9 +321,9 @@ Index: git/drivers/misc/vsc330x.c + NULL + NULL +}; +}; + + +static const struct attribute_group dev_attr_globals_group = { +static const struct attribute_group dev_attr_control_group = { + .attrs = globals_dev_attrs, + .attrs = control_dev_attrs, + .name = "globals", + .name = "control", +}; +}; + + + + Loading Loading @@ -373,6 +386,7 @@ Index: git/drivers/misc/vsc330x.c + struct vsc330x_data_t *clientdata = i2c_get_clientdata(client); + struct vsc330x_data_t *clientdata = i2c_get_clientdata(client); + int ports=clientdata->out_ports; + int ports=clientdata->out_ports; + int retval=0; + int retval=0; + if (&dev->kobj) { + if ((retval=make_group (dev, "connections", ports, SYSFS_PERMISSIONS, connection_show, connection_store))) return retval; + if ((retval=make_group (dev, "connections", ports, SYSFS_PERMISSIONS, connection_show, connection_store))) return retval; + if ((retval=make_group (dev, "input_ISE_short", ports, SYSFS_PERMISSIONS, input_ISE_short_show, input_ISE_short_store))) return retval; + if ((retval=make_group (dev, "input_ISE_short", ports, SYSFS_PERMISSIONS, input_ISE_short_show, input_ISE_short_store))) return retval; + if ((retval=make_group (dev, "input_ISE_medium", ports, SYSFS_PERMISSIONS, input_ISE_medium_show, input_ISE_medium_store))) return retval; + if ((retval=make_group (dev, "input_ISE_medium", ports, SYSFS_PERMISSIONS, input_ISE_medium_show, input_ISE_medium_store))) return retval; Loading @@ -391,8 +405,8 @@ Index: git/drivers/misc/vsc330x.c + if ((retval=make_group (dev, "forward_OOB", ports, SYSFS_PERMISSIONS, forward_OOB_show, forward_OOB_store))) return retval; + if ((retval=make_group (dev, "forward_OOB", ports, SYSFS_PERMISSIONS, forward_OOB_show, forward_OOB_store))) return retval; + if ((retval=make_group (dev, "status_0_on_LOS", ports, SYSFS_PERMISSIONS, status_0_on_LOS_show, status_0_on_LOS_store))) return retval; + if ((retval=make_group (dev, "status_0_on_LOS", ports, SYSFS_PERMISSIONS, status_0_on_LOS_show, status_0_on_LOS_store))) return retval; + if ((retval=make_group (dev, "status_1_on_LOS", ports, SYSFS_PERMISSIONS, status_1_on_LOS_show, status_1_on_LOS_store))) return retval; + if ((retval=make_group (dev, "status_1_on_LOS", ports, SYSFS_PERMISSIONS, status_1_on_LOS_show, status_1_on_LOS_store))) return retval; + if (&dev->kobj) { + if ((retval = sysfs_create_group(&dev->kobj, &dev_attr_globals_group))) return retval; + retval = sysfs_create_group(&dev->kobj, &dev_attr_globals_group); + if ((retval = sysfs_create_group(&dev->kobj, &dev_attr_control_group))) return retval; + } + } + return retval; + return retval; +} +} Loading Loading
recipes-kernel/linux/linux-xlnx/vsc3304.patch +63 −49 Original line number Original line Diff line number Diff line Index: git/drivers/misc/Kconfig Index: git/drivers/misc/Kconfig =================================================================== =================================================================== --- git.orig/drivers/misc/Kconfig 2013-11-26 00:53:11.204122076 -0700 --- git.orig/drivers/misc/Kconfig 2013-11-26 01:01:48.820127445 -0700 +++ git/drivers/misc/Kconfig 2013-11-26 00:53:14.044122105 -0700 +++ git/drivers/misc/Kconfig 2013-11-26 01:01:51.944127477 -0700 @@ -549,6 +549,13 @@ @@ -549,6 +549,13 @@ their requirements. their requirements. Loading @@ -18,8 +18,8 @@ Index: git/drivers/misc/Kconfig source "drivers/misc/eeprom/Kconfig" source "drivers/misc/eeprom/Kconfig" Index: git/drivers/misc/Makefile Index: git/drivers/misc/Makefile =================================================================== =================================================================== --- git.orig/drivers/misc/Makefile 2013-11-26 00:53:11.204122076 -0700 --- git.orig/drivers/misc/Makefile 2013-11-26 01:01:48.820127445 -0700 +++ git/drivers/misc/Makefile 2013-11-26 00:53:14.044122105 -0700 +++ git/drivers/misc/Makefile 2013-11-26 01:01:51.944127477 -0700 @@ -55,3 +55,4 @@ @@ -55,3 +55,4 @@ obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o obj-$(CONFIG_SRAM) += sram.o obj-$(CONFIG_SRAM) += sram.o Loading @@ -28,8 +28,8 @@ Index: git/drivers/misc/Makefile Index: git/drivers/misc/vsc330x.c Index: git/drivers/misc/vsc330x.c =================================================================== =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ git/drivers/misc/vsc330x.c 2013-11-26 00:58:21.924125299 -0700 +++ git/drivers/misc/vsc330x.c 2013-11-26 09:41:58.660451163 -0700 @@ -0,0 +1,791 @@ @@ -0,0 +1,805 @@ +/*!*************************************************************************** +/*!*************************************************************************** + *! FILE NAME : vsc330x.c + *! FILE NAME : vsc330x.c + *! DESCRIPTION: control of the VSC3304 4x4 crosspoint switch + *! DESCRIPTION: control of the VSC3304 4x4 crosspoint switch Loading Loading @@ -267,17 +267,21 @@ Index: git/drivers/misc/vsc330x.c +static ssize_t address_range_show (struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t address_range_show (struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t address_range_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); +static ssize_t address_range_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); + + +static DEVICE_ATTR(connection, SYSFS_PERMISSIONS, global_connection_show, global_connection_store); +/* Global registers - writes applied to all port registers. No sense to read (so write only), but functions preserved +static DEVICE_ATTR(ISE, SYSFS_PERMISSIONS, global_ISE_show, global_ISE_store); + * Placed in "globals" directory */ +static DEVICE_ATTR(input_state, SYSFS_PERMISSIONS, global_input_state_show, global_input_state_store); +static DEVICE_ATTR(connection, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_connection_show, global_connection_store); +static DEVICE_ATTR(input_LOS, SYSFS_PERMISSIONS, global_input_LOS_show, global_input_LOS_store); +static DEVICE_ATTR(ISE, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_ISE_show, global_ISE_store); +static DEVICE_ATTR(output_PRE_long, SYSFS_PERMISSIONS, global_output_PRE_long_show, global_output_PRE_long_store); +static DEVICE_ATTR(input_state, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_input_state_show, global_input_state_store); +static DEVICE_ATTR(output_PRE_short, SYSFS_PERMISSIONS, global_output_PRE_short_show, global_output_PRE_short_store); +static DEVICE_ATTR(input_LOS, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_input_LOS_show, global_input_LOS_store); +static DEVICE_ATTR(output_level, SYSFS_PERMISSIONS, global_output_level_show, global_output_level_store); +static DEVICE_ATTR(output_PRE_long, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_output_PRE_long_show, global_output_PRE_long_store); +static DEVICE_ATTR(output_state, SYSFS_PERMISSIONS, global_output_state_show, global_output_state_store); +static DEVICE_ATTR(output_PRE_short, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_output_PRE_short_show, global_output_PRE_short_store); +static DEVICE_ATTR(status_0, SYSFS_PERMISSIONS, global_status_0_show, global_status_0_store); +static DEVICE_ATTR(output_level, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_output_level_show, global_output_level_store); +static DEVICE_ATTR(status_1, SYSFS_PERMISSIONS, global_status_1_show, global_status_1_store); +static DEVICE_ATTR(output_state, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_output_state_show, global_output_state_store); +static DEVICE_ATTR(core_config_word, SYSFS_PERMISSIONS, core_config_word_show, core_config_word_store); +static DEVICE_ATTR(status_0_on_LOS, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_status_0_show, global_status_0_store); +static DEVICE_ATTR(status_1_on_LOS, SYSFS_PERMISSIONS & SYSFS_WRITEONLY, global_status_1_show, global_status_1_store); + +/* control/status registers , placed in "control" directory */ +static DEVICE_ATTR(core_word, SYSFS_PERMISSIONS, core_config_word_show, core_config_word_store); +static DEVICE_ATTR(core_left_bias_en, SYSFS_PERMISSIONS, core_left_bias_en_show, core_left_bias_en_store); +static DEVICE_ATTR(core_left_bias_en, SYSFS_PERMISSIONS, core_left_bias_en_show, core_left_bias_en_store); +static DEVICE_ATTR(core_right_bias_en,SYSFS_PERMISSIONS, core_right_bias_en_show, core_right_bias_en_store); +static DEVICE_ATTR(core_right_bias_en,SYSFS_PERMISSIONS, core_right_bias_en_show, core_right_bias_en_store); +static DEVICE_ATTR(core_buffer_on, SYSFS_PERMISSIONS, core_buffer_on_show, core_buffer_on_store); +static DEVICE_ATTR(core_buffer_on, SYSFS_PERMISSIONS, core_buffer_on_show, core_buffer_on_store); Loading @@ -295,9 +299,18 @@ Index: git/drivers/misc/vsc330x.c + &dev_attr_output_PRE_short.attr, + &dev_attr_output_PRE_short.attr, + &dev_attr_output_level.attr, + &dev_attr_output_level.attr, + &dev_attr_output_state.attr, + &dev_attr_output_state.attr, + &dev_attr_status_0.attr, + &dev_attr_status_0_on_LOS.attr, + &dev_attr_status_1.attr, + &dev_attr_status_1_on_LOS.attr, + &dev_attr_core_config_word.attr, + NULL +}; + +static const struct attribute_group dev_attr_globals_group = { + .attrs = globals_dev_attrs, + .name = "globals", +}; + +static struct attribute *control_dev_attrs[] = { + &dev_attr_core_word.attr, + &dev_attr_core_left_bias_en.attr, + &dev_attr_core_left_bias_en.attr, + &dev_attr_core_right_bias_en.attr, + &dev_attr_core_right_bias_en.attr, + &dev_attr_core_buffer_on.attr, + &dev_attr_core_buffer_on.attr, Loading @@ -308,9 +321,9 @@ Index: git/drivers/misc/vsc330x.c + NULL + NULL +}; +}; + + +static const struct attribute_group dev_attr_globals_group = { +static const struct attribute_group dev_attr_control_group = { + .attrs = globals_dev_attrs, + .attrs = control_dev_attrs, + .name = "globals", + .name = "control", +}; +}; + + + + Loading Loading @@ -373,6 +386,7 @@ Index: git/drivers/misc/vsc330x.c + struct vsc330x_data_t *clientdata = i2c_get_clientdata(client); + struct vsc330x_data_t *clientdata = i2c_get_clientdata(client); + int ports=clientdata->out_ports; + int ports=clientdata->out_ports; + int retval=0; + int retval=0; + if (&dev->kobj) { + if ((retval=make_group (dev, "connections", ports, SYSFS_PERMISSIONS, connection_show, connection_store))) return retval; + if ((retval=make_group (dev, "connections", ports, SYSFS_PERMISSIONS, connection_show, connection_store))) return retval; + if ((retval=make_group (dev, "input_ISE_short", ports, SYSFS_PERMISSIONS, input_ISE_short_show, input_ISE_short_store))) return retval; + if ((retval=make_group (dev, "input_ISE_short", ports, SYSFS_PERMISSIONS, input_ISE_short_show, input_ISE_short_store))) return retval; + if ((retval=make_group (dev, "input_ISE_medium", ports, SYSFS_PERMISSIONS, input_ISE_medium_show, input_ISE_medium_store))) return retval; + if ((retval=make_group (dev, "input_ISE_medium", ports, SYSFS_PERMISSIONS, input_ISE_medium_show, input_ISE_medium_store))) return retval; Loading @@ -391,8 +405,8 @@ Index: git/drivers/misc/vsc330x.c + if ((retval=make_group (dev, "forward_OOB", ports, SYSFS_PERMISSIONS, forward_OOB_show, forward_OOB_store))) return retval; + if ((retval=make_group (dev, "forward_OOB", ports, SYSFS_PERMISSIONS, forward_OOB_show, forward_OOB_store))) return retval; + if ((retval=make_group (dev, "status_0_on_LOS", ports, SYSFS_PERMISSIONS, status_0_on_LOS_show, status_0_on_LOS_store))) return retval; + if ((retval=make_group (dev, "status_0_on_LOS", ports, SYSFS_PERMISSIONS, status_0_on_LOS_show, status_0_on_LOS_store))) return retval; + if ((retval=make_group (dev, "status_1_on_LOS", ports, SYSFS_PERMISSIONS, status_1_on_LOS_show, status_1_on_LOS_store))) return retval; + if ((retval=make_group (dev, "status_1_on_LOS", ports, SYSFS_PERMISSIONS, status_1_on_LOS_show, status_1_on_LOS_store))) return retval; + if (&dev->kobj) { + if ((retval = sysfs_create_group(&dev->kobj, &dev_attr_globals_group))) return retval; + retval = sysfs_create_group(&dev->kobj, &dev_attr_globals_group); + if ((retval = sysfs_create_group(&dev->kobj, &dev_attr_control_group))) return retval; + } + } + return retval; + return retval; +} +} Loading