master/master.c
changeset 597 3a2c2d6ca5e9
parent 589 492148a329e7
child 601 d6d951b766e3
equal deleted inserted replaced
596:f2d874b2caa6 597:3a2c2d6ca5e9
    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;