Integration Development Question (async_setup vs async_setup_entry)

I am writing an integration for a python library CHS Tides I created that gets tide information from the Canadian Hydrographic Service. I have been going through any information I can find in rewriting an integration I had written a couple of years ago. I am trying to do best practices in the rewrite.
I had a question on when to use async_setup and async_setup_entry. What should be put in async_setup. I don’t see many using this call in existing integrations.

Thanks

Ron

Hello,

Looking forward to testing/using your integration in Canada!

My understanding is that integrations relying on a config entry (set by the user in UI) would use async_setup_entry:

whereas async_setup:
Creating your first integration | Home Assistant Developer Docs

Blockquote
To load this, add hello_state: to your configuration.yaml file and create a file <config_dir>/custom_components/hello_state/__init__.py with one of the two codeblocks above to test it locally.