1
     #ˆÉÈƒÏ;Ç¿Å _    #/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (C) 2018 BayLibre SAS
 * Author: Bartosz Golaszewski <bgolaszewski@baylibre.com>
 *
 * Common definitions for MAXIM 77650/77651 charger/power-supply.
 */

#ifndef MAX77650_H
#define MAX77650_H

#include <linux/bits.h>

#define MAX77650_REG_INT_GLBL		0x00
#define MAX77650_REG_INT_CHG		0x01
#define MAX77650_REG_STAT_CHG_A		0x02
#define MAX77650_REG_STAT_CHG_B		0x03
#define MAX77650_REG_ERCFLAG		0x04
#define MAX77650_REG_STAT_GLBL		0x05
#define MAX77650_REG_INTM_GLBL		0x06
#define MAX77650_REG_INTM_CHG		0x07
#define MAX77650_REG_CNFG_GLBL		0x10
#define MAX77650_REG_CID		0x11
#define MAX77650_REG_CNFG_GPIO		0x12
#define MAX77650_REG_CNFG_CHG_A		0x18
#define MAX77650_REG_CNFG_CHG_B		0x19
#define MAX77650_REG_CNFG_CHG_C		0x1a
#define MAX77650_REG_CNFG_CHG_D		0x1b
#define MAX77650_REG_CNFG_CHG_E		0x1c
#define MAX77650_REG_CNFG_CHG_F		0x1d
#define MAX77650_REG_CNFG_CHG_G		0x1e
#define MAX77650_REG_CNFG_CHG_H		0x1f
#define MAX77650_REG_CNFG_CHG_I		0x20
#define MAX77650_REG_CNFG_SBB_TOP	0x28
#define MAX77650_REG_CNFG_SBB0_A	0x29
#define MAX77650_REG_CNFG_SBB0_B	0x2a
#define MAX77650_REG_CNFG_SBB1_A	0x2b
#define MAX77650_REG_CNFG_SBB1_B	0x2c
#define MAX77650_REG_CNFG_SBB2_A	0x2d
#define MAX77650_REG_CNFG_SBB2_B	0x2e
#define MAX77650_REG_CNFG_LDO_A		0x38
#define MAX77650_REG_CNFG_LDO_B		0x39
#define MAX77650_REG_CNFG_LED0_A	0x40
#define MAX77650_REG_CNFG_LED1_A	0x41
#define MAX77650_REG_CNFG_LED2_A	0x42
#define MAX77650_REG_CNFG_LED0_B	0x43
#define MAX77650_REG_CNFG_LED1_B	0x44
#define MAX77650_REG_CNFG_LED2_B	0x45
#define MAX77650_REG_CNFG_LED_TOP	0x46

#define MAX77650_CID_MASK		GENMASK(3, 0)
#define MAX77650_CID_BITS(_reg)		(_reg & MAX77650_CID_MASK)

#define MAX77650_CID_77650A		0x03
#define MAX77650_CID_77650C		0x0a
#define MAX77650_CID_77651A		0x06
#define MAX77650_CID_77651B		0x08

#endif /* MAX77650_H */
     %ˆÉÈ„€ ÿÇ¿Å .á    %/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
/*
 * INET		An implementation of the TCP/IP protocol suite for the LINUX
 *		operating system.  INET is implemented using the  BSD Socket
 *		interface as the means of communication with the user level.
 *
 *		Definitions for the TCP protocol.
 *
 * Version:	@(#)tcp.h	1.0.2	04/28/93
 *
 * Author:	Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
 *
 *		This program is free software; you can redistribute it and/or
 *		modify it under the terms of the GNU General Public License
 *		as published by the Free Software Foundation; either version
 *		2 of the License, or (at your option) any later version.
 */
#ifndef _UAPI_LINUX_TCP_H
#define _UAPI_LINUX_TCP_H

#include <linux/types.h>
#include <asm/byteorder.h>
#include <linux/socket.h>

struct tcphdr {
	__be16	source;
	__be16	dest;
	__be32	seq;
	__be32	ack_seq;
#if defined(__LITTLE_ENDIAN_BITFIELD)
	__u16	res1:4,
		doff:4,
		fin:1,
		syn:1,
		rst:1,
		psh:1,
		ack:1,
		urg:1,
		ece:1,
		cwr:1;
#elif defined(__BIG_ENDIAN_BITFIELD)
	__u16	doff:4,
		res1:4,
		cwr:1,
		ece:1,
		urg:1,
		ack:1,
		psh:1,
		rst:1,
		syn:1,
		fin:1;
#else
#error	"Adjust your <asm/byteorder.h> defines"
#endif
	__be16	window;
	__sum16	check;
	__be16	urg_ptr;
};

/*
 *	The union cast uses a gcc extension to avoid aliasing problems
 *  (union is compatible to any of its members)
 *  This means this part of the code is -fstrict-aliasing safe now.
 */
union tcp_word_hdr {
	struct tcphdr hdr;
	__be32        words[5];
};

#define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3])

enum {
	TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000),
	TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000),
	TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000),
	TCP_FLAG_ACK = __constant_cpu_to_be32(0x00100000),
	TCP_FLAG_PSH = __constant_cpu_to_be32(0x00080000),
	TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000),
	TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000),
	TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000),
	TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000),
	TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000)
};

/*
 * TCP general