Ok !
I created a pseudo sysfs for testing:
ls -R ~/sys :
sys:
bus
sys/bus:
i2c
sys/bus/i2c:
drivers
sys/bus/i2c/drivers:
apds990x bma150 bmp085 cma3000_accl eeprom hmc5843 mpu3050_gyro
tsl2771 w83781d
sys/bus/i2c/drivers/apds990x:
0-0039
sys/bus/i2c/drivers/apds990x/0-0039:
lux0_input power_state
sys/bus/i2c/drivers/bma150:
4-0038
sys/bus/i2c/drivers/bma150/4-0038:
delay enable
sys/bus/i2c/drivers/bmp085:
4-0077
sys/bus/i2c/drivers/bmp085/4-0077:
sys/bus/i2c/drivers/cma3000_accl:
4-001c
sys/bus/i2c/drivers/cma3000_accl/4-001c:
delay enable
sys/bus/i2c/drivers/eeprom:
0-0050 0-0051 0-0052
sys/bus/i2c/drivers/eeprom/0-0050:
sys/bus/i2c/drivers/eeprom/0-0051:
sys/bus/i2c/drivers/eeprom/0-0052:
sys/bus/i2c/drivers/hmc5843:
4-001e
sys/bus/i2c/drivers/hmc5843/4-001e:
enable rate
sys/bus/i2c/drivers/mpu3050_gyro:
4-0068
sys/bus/i2c/drivers/mpu3050_gyro/4-0068:
sys/bus/i2c/drivers/tsl2771:
4-0039
sys/bus/i2c/drivers/tsl2771/4-0039:
als_enable prox_enable
sys/bus/i2c/drivers/w83781d:
0-002d 0-0048 0-0049
sys/bus/i2c/drivers/w83781d/0-002d:
sys/bus/i2c/drivers/w83781d/0-0048:
can you try this patch in a real sysfs ?
/*
* lsi2c implementation for busybox
*
* Copyright (C) 2013 Alison Chaiken [email protected]
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
//usage:#define lsi2c_trivial_usage NOUSAGE_STR
//usage:#define lsi2c_full_usage ""
#include "libbb.h"
static int FAST_FUNC dirAction(const char *instring,
struct stat *statbuf UNUSED_PARAM,
void *userData UNUSED_PARAM, int depth)
{
const char *sysfs_node, *drivername;
char *address;
if (depth != 2)
return TRUE;
sysfs_node = bb_basename(instring);
if (!isdigit(sysfs_node[0]))
return TRUE;
drivername = bb_basename(dirname((char *)instring));
address = strchr(sysfs_node, '-');
if (*address++)
printf("Controller %c for driver %s at address 0x%s.\n", *sysfs_node, drivername, address);
return TRUE;
}
int lsi2c_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int lsi2c_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
{
const char *fileName = "/sys/bus/i2c/drivers";
recursive_action(fileName,
ACTION_RECURSE,
NULL, /* fileAction */
dirAction,
NULL, /* userData */
0 /* depth */);
return EXIT_SUCCESS;
}
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox