Creating hexagonal grid (hexagonal grid graph)

Is there a function that can create hexagonal grid?

We have square grid graph, where we can specify m*n dimensions:

GridGraph({m, n})

We have triangular grid graph (which works only for argument n up to 10 – for unknown reason):

GraphData({"TriangularGrid", n}, "Graph")

I can not find a function that would generate a hexagonal grid graph. I would like it like it is with GridGraph something like HexagonalGridGraph({m,n,o}) where m,n,o are dimensions m*n*o of planar graph – or other way said – “lengths” of the sides of the graph.

I can make my own code, I am asking just in case there already exist implemented function.