Justin Bieber has been criminally charged in Canada for assaulting a limo driver ... and TMZ has learned the whole dispute was triggered by the volume of the radio.
Here's what we're told by sources... Justin was cruising along in Toronto in the back seat of the limo when he wanted the driver to turn up the noise ... on the radio.
The driver turned it up ... but not as much as Justin wanted, and an argument erupted.
According to one of our sources ... the argument became physical when Justin reached his arm out to turn up the radio himself ... and the driver swatted his hand away.
The limo driver claims Justin started screaming profanities ... then smacked him several times in the head.
Bieber's lawyer, Howard Weitzman, says his client is "innocent," and a source connected with Bieber insists it was one of Justin's friends -- not Justin -- who hit the driver. The source would not reveal the identity of the friend.