1f5fbb83fSMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0 */ 29d4fa1a1SMauro Carvalho Chehab /* 39d4fa1a1SMauro Carvalho Chehab * Support for Intel Camera Imaging ISP subsystem. 49d4fa1a1SMauro Carvalho Chehab * Copyright (c) 2015, Intel Corporation. 59d4fa1a1SMauro Carvalho Chehab * 69d4fa1a1SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify it 79d4fa1a1SMauro Carvalho Chehab * under the terms and conditions of the GNU General Public License, 89d4fa1a1SMauro Carvalho Chehab * version 2, as published by the Free Software Foundation. 99d4fa1a1SMauro Carvalho Chehab * 109d4fa1a1SMauro Carvalho Chehab * This program is distributed in the hope it will be useful, but WITHOUT 119d4fa1a1SMauro Carvalho Chehab * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 129d4fa1a1SMauro Carvalho Chehab * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 139d4fa1a1SMauro Carvalho Chehab * more details. 149d4fa1a1SMauro Carvalho Chehab */ 159d4fa1a1SMauro Carvalho Chehab 169d4fa1a1SMauro Carvalho Chehab #ifndef __ISP_GLOBAL_H_INCLUDED__ 179d4fa1a1SMauro Carvalho Chehab #define __ISP_GLOBAL_H_INCLUDED__ 189d4fa1a1SMauro Carvalho Chehab 19f90e73ceSMauro Carvalho Chehab #include <system_local.h> 209d4fa1a1SMauro Carvalho Chehab 2194688110SMauro Carvalho Chehab #include "mamoiada_params.h" 229d4fa1a1SMauro Carvalho Chehab 239d4fa1a1SMauro Carvalho Chehab #define ISP_PMEM_WIDTH_LOG2 ISP_LOG2_PMEM_WIDTH 249d4fa1a1SMauro Carvalho Chehab #define ISP_PMEM_SIZE ISP_PMEM_DEPTH 259d4fa1a1SMauro Carvalho Chehab 269d4fa1a1SMauro Carvalho Chehab #define ISP_NWAY_LOG2 6 279d4fa1a1SMauro Carvalho Chehab #define ISP_VEC_NELEMS_LOG2 ISP_NWAY_LOG2 289d4fa1a1SMauro Carvalho Chehab 299d4fa1a1SMauro Carvalho Chehab #ifdef PIPE_GENERATION 309d4fa1a1SMauro Carvalho Chehab #define PIPEMEM(x) MEM(x) 319d4fa1a1SMauro Carvalho Chehab #define ISP_NWAY BIT(ISP_NWAY_LOG2) 329d4fa1a1SMauro Carvalho Chehab #else 339d4fa1a1SMauro Carvalho Chehab #define PIPEMEM(x) 349d4fa1a1SMauro Carvalho Chehab #endif 359d4fa1a1SMauro Carvalho Chehab 369d4fa1a1SMauro Carvalho Chehab /* The number of data bytes in a vector disregarding the reduced precision */ 379d4fa1a1SMauro Carvalho Chehab #define ISP_VEC_BYTES (ISP_VEC_NELEMS * sizeof(uint16_t)) 389d4fa1a1SMauro Carvalho Chehab 399d4fa1a1SMauro Carvalho Chehab /* ISP SC Registers */ 409d4fa1a1SMauro Carvalho Chehab #define ISP_SC_REG 0x00 419d4fa1a1SMauro Carvalho Chehab #define ISP_PC_REG 0x07 429d4fa1a1SMauro Carvalho Chehab #define ISP_IRQ_READY_REG 0x00 439d4fa1a1SMauro Carvalho Chehab #define ISP_IRQ_CLEAR_REG 0x00 449d4fa1a1SMauro Carvalho Chehab 459d4fa1a1SMauro Carvalho Chehab /* ISP SC Register bits */ 469d4fa1a1SMauro Carvalho Chehab #define ISP_RST_BIT 0x00 479d4fa1a1SMauro Carvalho Chehab #define ISP_START_BIT 0x01 489d4fa1a1SMauro Carvalho Chehab #define ISP_BREAK_BIT 0x02 499d4fa1a1SMauro Carvalho Chehab #define ISP_RUN_BIT 0x03 509d4fa1a1SMauro Carvalho Chehab #define ISP_BROKEN_BIT 0x04 519d4fa1a1SMauro Carvalho Chehab #define ISP_IDLE_BIT 0x05 /* READY */ 529d4fa1a1SMauro Carvalho Chehab #define ISP_SLEEPING_BIT 0x06 539d4fa1a1SMauro Carvalho Chehab #define ISP_STALLING_BIT 0x07 549d4fa1a1SMauro Carvalho Chehab #define ISP_IRQ_CLEAR_BIT 0x08 559d4fa1a1SMauro Carvalho Chehab #define ISP_IRQ_READY_BIT 0x0A 569d4fa1a1SMauro Carvalho Chehab #define ISP_IRQ_SLEEPING_BIT 0x0B 579d4fa1a1SMauro Carvalho Chehab 589d4fa1a1SMauro Carvalho Chehab /* ISP Register bits */ 599d4fa1a1SMauro Carvalho Chehab #define ISP_CTRL_SINK_BIT 0x00 609d4fa1a1SMauro Carvalho Chehab #define ISP_PMEM_SINK_BIT 0x01 619d4fa1a1SMauro Carvalho Chehab #define ISP_DMEM_SINK_BIT 0x02 629d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO0_SINK_BIT 0x03 639d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO1_SINK_BIT 0x04 649d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO2_SINK_BIT 0x05 659d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO3_SINK_BIT 0x06 669d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO4_SINK_BIT 0x07 679d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO5_SINK_BIT 0x08 689d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO6_SINK_BIT 0x09 699d4fa1a1SMauro Carvalho Chehab #define ISP_VMEM_SINK_BIT 0x0A 709d4fa1a1SMauro Carvalho Chehab #define ISP_VAMEM1_SINK_BIT 0x0B 719d4fa1a1SMauro Carvalho Chehab #define ISP_VAMEM2_SINK_BIT 0x0C 729d4fa1a1SMauro Carvalho Chehab #define ISP_VAMEM3_SINK_BIT 0x0D 739d4fa1a1SMauro Carvalho Chehab #define ISP_HMEM_SINK_BIT 0x0E 749d4fa1a1SMauro Carvalho Chehab 759d4fa1a1SMauro Carvalho Chehab #define ISP_CTRL_SINK_REG 0x08 769d4fa1a1SMauro Carvalho Chehab #define ISP_PMEM_SINK_REG 0x08 779d4fa1a1SMauro Carvalho Chehab #define ISP_DMEM_SINK_REG 0x08 789d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO0_SINK_REG 0x08 799d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO1_SINK_REG 0x08 809d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO2_SINK_REG 0x08 819d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO3_SINK_REG 0x08 829d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO4_SINK_REG 0x08 839d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO5_SINK_REG 0x08 849d4fa1a1SMauro Carvalho Chehab #define ISP_FIFO6_SINK_REG 0x08 859d4fa1a1SMauro Carvalho Chehab #define ISP_VMEM_SINK_REG 0x08 869d4fa1a1SMauro Carvalho Chehab #define ISP_VAMEM1_SINK_REG 0x08 879d4fa1a1SMauro Carvalho Chehab #define ISP_VAMEM2_SINK_REG 0x08 889d4fa1a1SMauro Carvalho Chehab #define ISP_VAMEM3_SINK_REG 0x08 899d4fa1a1SMauro Carvalho Chehab #define ISP_HMEM_SINK_REG 0x08 909d4fa1a1SMauro Carvalho Chehab 919d4fa1a1SMauro Carvalho Chehab /* ISP2401 */ 929d4fa1a1SMauro Carvalho Chehab #define BAMEM VMEM 939d4fa1a1SMauro Carvalho Chehab #define XNR3_DOWN_BAMEM_BASE_ADDRESS (0x16880) 949d4fa1a1SMauro Carvalho Chehab #define XNR3_UP_BAMEM_BASE_ADDRESS (0x12880) 959d4fa1a1SMauro Carvalho Chehab #define bmem_ldrow(fu, pid, offset, data) bmem_ldrow_s(fu, pid, offset, data) 969d4fa1a1SMauro Carvalho Chehab #define bmem_strow(fu, pid, offset, data) bmem_strow_s(fu, pid, offset, data) 979d4fa1a1SMauro Carvalho Chehab #define bmem_ldblk(fu, pid, offset, data) bmem_ldblk_s(fu, pid, offset, data) 989d4fa1a1SMauro Carvalho Chehab #define bmem_stblk(fu, pid, offset, data) bmem_stblk_s(fu, pid, offset, data) 999d4fa1a1SMauro Carvalho Chehab 1009d4fa1a1SMauro Carvalho Chehab #endif /* __ISP_GLOBAL_H_INCLUDED__ */ 101