Minecraft wiki entry for Crop_farming, associated text: It is directly above a block of farmland. If the farmland is removed or reverts to dirt, the crop breaks.
A light level of 9 or higher at the plant. This doesn't have to be sunlight, so torches let crops grow at night or underground.
The chunk the crop is in is receiving chunk ticks, on Bedrock Edition this only requires that the chunk is loaded, while on Java Edition the chunk also has to be within 128 blocks of the nearest player.