Uplink power control is used both on the PUSCH and on the PUCCH channels.
In both cases, a parameterized open loop combined with a closed loop mechanism is used.
Roughly explained, the open loop part is used to set a point of operation, around which the closed loop component operates. Different parameters (targets and ‘partial compensation factors’) for user and control plane are used.
PUSCH Power Control
For the PUSCH the UE sets the output power PUSCH according to the formula:
Power PUSCH = min {Pmax, 10logM + P0_PUSCH + αPL + f( i )+MCS} [dBm](1)
where
The closed loop correction i is sent in UL grants on the PDCCH, or in special TPC_PUSCH messages on the PDCCH. For all other parameters, cell specific values are broadcast in SIB 2. For a subset of the parameters (e.g. P0), it is possible to send UE specific values via RRC.
PUCCH Power Control
For PUCCH, the UE sets the power according to the formula
Power PUCCH = min {Pmax, P0_PUCCH + PL + f( j ) } [dBm] (2)
Note that for PUCCH, full pathloss compensation is always used, and the resource allocation is always one resource block. Further, the function f for the PUCCH always represents accumulation. The closed loop correction j is sent in DL assignments on the PDCCH, or in special TPC _PUCCH messages on the PDCCH. The latter may be configured to be the same as the TPC_PDCCH_PUSCH.
For extensive details about Uplink power control. You can take a look here.