gpio function update