direct depend on gpio