162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef BCM63XX_GPIO_H
362306a36Sopenharmony_ci#define BCM63XX_GPIO_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include <linux/init.h>
662306a36Sopenharmony_ci#include <bcm63xx_cpu.h>
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciint __init bcm63xx_gpio_init(void);
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cistatic inline unsigned long bcm63xx_gpio_count(void)
1162306a36Sopenharmony_ci{
1262306a36Sopenharmony_ci	switch (bcm63xx_get_cpu_id()) {
1362306a36Sopenharmony_ci	case BCM6328_CPU_ID:
1462306a36Sopenharmony_ci		return 32;
1562306a36Sopenharmony_ci	case BCM3368_CPU_ID:
1662306a36Sopenharmony_ci		return 40;
1762306a36Sopenharmony_ci	case BCM6338_CPU_ID:
1862306a36Sopenharmony_ci		return 8;
1962306a36Sopenharmony_ci	case BCM6345_CPU_ID:
2062306a36Sopenharmony_ci		return 16;
2162306a36Sopenharmony_ci	case BCM6358_CPU_ID:
2262306a36Sopenharmony_ci	case BCM6368_CPU_ID:
2362306a36Sopenharmony_ci		return 38;
2462306a36Sopenharmony_ci	case BCM6362_CPU_ID:
2562306a36Sopenharmony_ci		return 48;
2662306a36Sopenharmony_ci	case BCM6348_CPU_ID:
2762306a36Sopenharmony_ci	default:
2862306a36Sopenharmony_ci		return 37;
2962306a36Sopenharmony_ci	}
3062306a36Sopenharmony_ci}
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#define BCM63XX_GPIO_DIR_OUT	0x0
3362306a36Sopenharmony_ci#define BCM63XX_GPIO_DIR_IN	0x1
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci#endif /* !BCM63XX_GPIO_H */
36