68 /*****************************************************************************/ |
68 /*****************************************************************************/ |
69 |
69 |
70 /** \cond */ |
70 /** \cond */ |
71 |
71 |
72 EC_SYSFS_READ_ATTR(info); |
72 EC_SYSFS_READ_ATTR(info); |
73 EC_SYSFS_READ_WRITE_ATTR(eeprom_write_enable); |
|
74 EC_SYSFS_READ_WRITE_ATTR(debug_level); |
73 EC_SYSFS_READ_WRITE_ATTR(debug_level); |
75 |
74 |
76 static struct attribute *ec_def_attrs[] = { |
75 static struct attribute *ec_def_attrs[] = { |
77 &attr_info, |
76 &attr_info, |
78 &attr_eeprom_write_enable, |
|
79 &attr_debug_level, |
77 &attr_debug_level, |
80 NULL, |
78 NULL, |
81 }; |
79 }; |
82 |
80 |
83 static struct sysfs_ops ec_sysfs_ops = { |
81 static struct sysfs_ops ec_sysfs_ops = { |
151 |
149 |
152 master->internal_lock = SPIN_LOCK_UNLOCKED; |
150 master->internal_lock = SPIN_LOCK_UNLOCKED; |
153 master->request_cb = NULL; |
151 master->request_cb = NULL; |
154 master->release_cb = NULL; |
152 master->release_cb = NULL; |
155 master->cb_data = NULL; |
153 master->cb_data = NULL; |
156 |
|
157 master->eeprom_write_enable = 0; |
|
158 |
154 |
159 master->sdo_request = NULL; |
155 master->sdo_request = NULL; |
160 master->sdo_seq_user = 0; |
156 master->sdo_seq_user = 0; |
161 master->sdo_seq_master = 0; |
157 master->sdo_seq_master = 0; |
162 init_MUTEX(&master->sdo_sem); |
158 init_MUTEX(&master->sdo_sem); |
1001 return ec_master_info(master, buffer); |
997 return ec_master_info(master, buffer); |
1002 } |
998 } |
1003 else if (attr == &attr_debug_level) { |
999 else if (attr == &attr_debug_level) { |
1004 return sprintf(buffer, "%i\n", master->debug_level); |
1000 return sprintf(buffer, "%i\n", master->debug_level); |
1005 } |
1001 } |
1006 else if (attr == &attr_eeprom_write_enable) { |
|
1007 return sprintf(buffer, "%i\n", master->eeprom_write_enable); |
|
1008 } |
|
1009 |
1002 |
1010 return 0; |
1003 return 0; |
1011 } |
1004 } |
1012 |
1005 |
1013 /*****************************************************************************/ |
1006 /*****************************************************************************/ |
1023 size_t size /**< size of data to store */ |
1016 size_t size /**< size of data to store */ |
1024 ) |
1017 ) |
1025 { |
1018 { |
1026 ec_master_t *master = container_of(kobj, ec_master_t, kobj); |
1019 ec_master_t *master = container_of(kobj, ec_master_t, kobj); |
1027 |
1020 |
1028 if (attr == &attr_eeprom_write_enable) { |
1021 if (attr == &attr_debug_level) { |
1029 if (!strcmp(buffer, "1\n")) { |
|
1030 master->eeprom_write_enable = 1; |
|
1031 EC_INFO("Slave EEPROM writing enabled.\n"); |
|
1032 return size; |
|
1033 } |
|
1034 else if (!strcmp(buffer, "0\n")) { |
|
1035 master->eeprom_write_enable = 0; |
|
1036 EC_INFO("Slave EEPROM writing disabled.\n"); |
|
1037 return size; |
|
1038 } |
|
1039 |
|
1040 EC_ERR("Invalid value for eeprom_write_enable!\n"); |
|
1041 |
|
1042 if (master->eeprom_write_enable) { |
|
1043 master->eeprom_write_enable = 0; |
|
1044 EC_INFO("Slave EEPROM writing disabled.\n"); |
|
1045 } |
|
1046 } |
|
1047 else if (attr == &attr_debug_level) { |
|
1048 if (!strcmp(buffer, "0\n")) { |
1022 if (!strcmp(buffer, "0\n")) { |
1049 master->debug_level = 0; |
1023 master->debug_level = 0; |
1050 } |
1024 } |
1051 else if (!strcmp(buffer, "1\n")) { |
1025 else if (!strcmp(buffer, "1\n")) { |
1052 master->debug_level = 1; |
1026 master->debug_level = 1; |