I have 4 ports on my board and want to control the power. I have the following connections on power-up:
p24 - GANGED pulled low
p40 - FULLPWR... pulled low
p41 - PWRCTL_POL Floating high
p45 - AUTOENZ pulled low
p39 - SMBUSZ - pulled low
3 out of 4 BATEN# pins are pulled low with 10K resistors (32, 33, 35), pin 36 is currently un-connected. (I don't care about battery charging).
pins 37 & 38 are connected to an I2C bus from my CPU and are pulled to 3.3V before GRST is released.
I can talk to the part after power up and I leave the default configuration (we don't need to change anything - but I wanted to control the port power). I then write a 0x01 to register 0xF8 and the HUB appears on the upsteam bus and the ports are alive.
The ports respond to a short by turning off the power (I have external power switches on them and the OC line comes back to the part). When the short is removed the port powers back up.
However, I want to control the power on one of the ports independently of the OVERCUR pin, and I want to be able to turn off the power on any of the ports independently of the others.
I can read and write Register 6. I wrote it to 0 and read it back and then wrote it to 0x0F and read it back. But changing the BATEN bits doesn't control the power.
I can't find any other register that allows me to control the PWRCTL function.
I there a way to do this? I can't believe that a pin called PWRCTL# doesn't control the power. Do I needed to change the p24, 40, 41, 45 pins, or some other pin to get this to work?