add gpio read write