stat_density2d used to pass the ellipses to stat_contour. That way one could specify the number of bins.
Pre-v2.0.0:
m <- ggplot(faithful, aes(x = eruptions, y = waiting)) +
  geom_point() +
  xlim(0.5, 6) +
  ylim(40, 110)
m + geom_density2d(bins = 3)
 
Since stat_density_2d doesn't do that anymore, I don't see a way to specify the number of bins. If I'm  not missing something that seems like a regression.