More nit picking :-) Should > Message ID Root ID R T Gap Count > 00(2 bits) (5 bits) 1 1 (6 bits) be Message ID Root ID R T Gap Count 00(2 bits) (6 bits) 1 1 (6 bits) send_phy_config() ANDs root_node with 0x3f, and the "Physical ID" field in the controller register is 6 bits.